Hibernate的学习案例(一)

首先见一个包,在该包下建一个实体类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同层)下建HibernateTest

package 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);
                //修改数据		
                Person personLoad = (Person)session.load(Person.class,1);
personLoad.setName("jack");

                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数据库。







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值