1、hibernate的原理:是通过配置对象与表映射关系xml,实现ORM对象关系映射,从而实现数据库操作的简化。
2、需要的jar包:
3、工程结构:
4、User类:建立用户实体类,与数据库表结构对应
package com.hibernateDemo.bean;
public class User {
private int userid;
private String username;
private String password;
public User(){
}
public User(int userid, String username, String password, String sex, String moblie, String address) {
this.userid = userid;
this.username = username;
this.password = password;
}
public User(String username, String password, String sex, String moblie, String address) {
this.username = username;
this.password = password;
}
public int getUserid() {
return userid;
}
public void setUserid(int userid) {
this.userid = userid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return ("userid = " + userid + ",username = "+username + ",password =" + password);
}
}
5、建立数据库相关表结构
CREATE TABLE hibernate_demo_user
(
userid Number,
username VARCHAR2(255),
password VARCHAR2(255),
)
6、hibernate.cfg.xml:hibernate基础配置信息
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.url">jdbc:oracle:thin:@127.0.0.1:1521:orcl
</property>
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.password">test</property>
<property name="hibernate.connection.username">test</property>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle9iDialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<mapping resource="com/hibernateDemo/bean/user.hbm.xml" />
</session-factory>
</hibernate-configuration>
7、user.hbm.xml :建立对象与表的对应关系
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.hibernateDemo.bean.User" table="hibernate_demo_user">
<id name="userid" type="int">
<column name="userid" />
<generator class="native" /><!-- 自动生成主键 -->
</id>
<property name="username" type="java.lang.String">
<column name="username" />
</property>
<property name="password" type="java.lang.String">
<column name="password" />
</property>
</class>
</hibernate-mapping>
8、Test.java :测试类
package com.hibernateDemo.bean;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.MetadataSources;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
public class Test {
public static void main(String[] args) {
Test test = new Test();
test.insertUser();//增
test.deleteUser();//删
test.updateUser();//改
test.queryUser();//查
}
public SessionFactory createSessionFactory(){
// 创建工厂
SessionFactory sessionFaction = null;
// 加载
Configuration configuration = new Configuration().configure();
ServiceRegistry serviceRegistry = configuration.getStandardServiceRegistryBuilder().build();
sessionFaction = new MetadataSources(serviceRegistry).buildMetadata().buildSessionFactory();
return sessionFaction;
}
public void insertUser(){
SessionFactory sessionFaction = createSessionFactory();
// 创建、打开会话
Session session = sessionFaction.openSession();
// 创建事务
Transaction transaction = session.beginTransaction();
User user = new User("test", "test123");
User user01 = new User("test01", "test123");
User user02 = new User("test02", "test123");
User user03 = new User("test03", "test123");
session.save(user);
session.save(user01);
session.save(user02);
session.save(user03);
// 提交事务
transaction.commit();
// 关闭会话
session.close();
// 关闭工厂类
sessionFaction.close();
}
public void queryUser(){
SessionFactory sessionFaction = createSessionFactory();
Session session = sessionFaction.openSession();
String querySql = "from User";
List<User> list = session.createQuery(querySql).list();
for(User user : list){
System.out.println(user);
}
User user = session.get(User.class,1);//默认根据userid来查询用户信息
System.out.println(user);
session.close();
sessionFaction.close();
}
public void updateUser(){
SessionFactory sessionFaction = createSessionFactory();
// 创建、打开会话
Session session = sessionFaction.openSession();
// 创建事务
Transaction transaction = session.beginTransaction();
User user = session.get(User.class,21);//默认根据userid来查询用户信息
user.setPassword("1234");
session.update(user);
transaction.commit();
session.close();
sessionFaction.close();
}
public void deleteUser(){
SessionFactory sessionFaction = createSessionFactory();
Session session = sessionFaction.openSession();
Transaction transaction = session.beginTransaction();
User user = session.get(User.class,22);//默认根据userid来查询用户信息
user.setUsername("test02");
session.delete(user);
transaction.commit();
session.close();
sessionFaction.close();
}
}