首先见一个包,在该包下建一个实体类Person
package com.java.hibernate;
public class Person {
private Integer Id;
private String name;
private int age;
public Integer getId() {
return Id;
}
public void setId(Integer id) {
Id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Person() {
super();
}
public Person(Integer id, String name, int age) {
super();
Id = id;
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person [Id=" + Id + ", name=" + name + ", age=" + age + "]";
}
}
最后在建好的包(与Person同层)下建HibernateTestpackage com.java.hibernate; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry; import org.hibernate.service.ServiceRegistryBuilder; import org.junit.Test; public class HibernateTest { @Test public void test() { //1. 创建一个 SessionFactory 对象 SessionFactory sessionFactory = null; //1). 创建 Configuration对象: 对应 hibernate的基本配置信息和对象关系 Configuration configuration = new Configuration().configure(); //4.0之前这样创建 // sessionFactory = configuration.buildSessionFactory(); //2)创建一个 ServiceRegistry 对象: hibernate 4.x新添对象 //hibernate 的任何配置和服务都需要在该对象中注册后才能有效 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()) .buildServiceRegistry(); //3). sessionFactory = configuration.buildSessionFactory(serviceRegistry); //2. 打开session对象 Session session = sessionFactory.openSession(); //3. 开始一个事务(增删改操作必须,查询操作可选) Transaction transaction = session.beginTransaction(); //4. 数据库操作(基本功能在该步骤下实现,即关键实行的代码打在该步骤之下。且在执行时,不是同一个要求的代码在该操作下需要注释不需要的代码。 //比如说执行get方法时,要把插入数据和load方法和load方法以下的代码都需要注释掉)
//在Person对象中插入数据 Person person = new Person(1, "Tom", 20); session.save(person);
//用get方法查询数据
Person personGet = (Person)session.get(Person.class,1);
//用load方法查询数据
Person personLoad = (Person)session.load(Person.class,1);
//修改数据
personLoad.setName("jack");Person personLoad = (Person)session.load(Person.class,1);
personLoad.setAge(2);
//hql查询的不是表而是对象
String hql = "from Person"; Query query = session.createQuery(hql);//导入的包是org.hibernate下的包 List<Person> personList = query.list(); String hql = "from Person where id = ? and age =?"; Query query = session.createQuery(hql); query.setInteger(0,2); query.setInteger(1,21); List<Person> personList = query.list(); System.out.println(personList.size()); //5. 鎻愪氦浜嬪姟 transaction.commit(); //6. 鍏抽棴 Session session.close(); //7. 鍏抽棴 SessionFactory 瀵硅薄 sessionFactory.close(); } }
今天暂时这么多,注意:该代码连接的数据库是oracle数据库。