⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hibernatetest1.java

📁 Hibernate的学习代码
💻 JAVA
字号:
package test;

import java.sql.Date;
import java.util.Iterator;
import java.util.List;

import junit.framework.TestCase;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import domain.Emp;

public class HibernateTest1 extends TestCase {
	public void testSaveEmp() {
		
		Configuration conf = new Configuration(); // 封装配置信息
		conf.configure(); // 装载 hibernate.cfg.xml
		SessionFactory factory = conf.buildSessionFactory();
		Session session = factory.openSession();

		Emp emp = new Emp();
		emp.setId("005");
		emp.setName("黄河大虾");
		emp.setPosition("厨师");
		emp.setHireDate(new Date(System.currentTimeMillis()));//产生一个当前的毫秒

		Transaction tx = session.getTransaction();
		tx.begin();  //update,load不用这句,其他都用这句来执行操作
		session.save(emp);
		tx.commit();

		session.close();
	}

	public void testDeleteEmp() {
		Configuration conf = new Configuration(); // 封装配置信息
		conf.configure(); // 装载hibernate.cfg.xml
		SessionFactory factory = conf.buildSessionFactory();
		Session session = factory.openSession();

		Transaction tx = session.beginTransaction();
		Emp emp = (Emp) session.load(Emp.class, "005");//load和get都是读取
		session.delete(emp); //先读取,再删除
		tx.commit();

		session.close();
	}

	public void testUpdateEmp() {
		Configuration conf = new Configuration(); // 封装配置信息
		conf.configure(); // 装载hibernate.cfg.xml
		SessionFactory factory = conf.buildSessionFactory();
		Session session = factory.openSession();

		Emp emp = new Emp();
		emp.setId("005");
		emp.setName("黄河虾米");
		emp.setPosition("厨师"); //不能插入多条,只能一条一条的插入
		emp.setHireDate(new Date(System.currentTimeMillis()));

		Transaction tx = session.beginTransaction();
		session.update(emp);
		tx.commit();

		session.close();
	}

	public void testQueryEmp1() {
		Configuration conf = new Configuration(); // 封装配置信息
		conf.configure(); // 装载hibernate.cfg.xml
		SessionFactory factory = conf.buildSessionFactory();
		Session session = factory.openSession();

		Query query = session.createQuery("from Emp"); // HQL,from 加类名
		// List empList = query.list();
		Iterator it = query.iterate();

		System.out.println("----------");//query得到结果但是不执行
		// Iterator it = empList.iterator();
		while (it.hasNext()) {
			Emp emp = (Emp) it.next();
			System.out.println(emp.getId() + " " + emp.getName() + " "
					+ emp.getPosition());
		}
		session.close();
	}

	public void testQueryEmp2() {
		Configuration conf = new Configuration(); // 封装配置信息
		conf.configure(); // 装载hibernate.cfg.xml
		SessionFactory factory = conf.buildSessionFactory();
		Session session = factory.openSession();

		Query query = session.createQuery("from Emp"); // HQL

		query.setFirstResult(1); //PO对象的值的第一个位置
		query.setMaxResults(2);

		List empList = query.list();

		Iterator it = empList.iterator();
		while (it.hasNext()) {
			Emp emp = (Emp) it.next();
			System.out.println(emp.getId() + " " + emp.getName() + " "
					+ emp.getPosition());
			/*打印出来的顺序是:
			 * 008 大牛 牛人
				006 大铁 经理
				打印的顺序是和插入的顺序有关,而同在Mysql中修改的顺序无关
			*/
		}
		session.close();
	}

	public void testQueryEmp3() {
		Configuration conf = new Configuration(); // 封装配置信息
		conf.configure(); // 装载hibernate.cfg.xml
		SessionFactory factory = conf.buildSessionFactory();
		Session session = factory.openSession();
		
		Query query = session.createQuery("from Emp as emp where emp.name=?");
		query.setParameter(0, "java");
		
		List list = query.list();
		Iterator it = list.iterator();
		
		while (it.hasNext()) {
			Emp emp = (Emp) it.next();
			System.out.println(emp.getId() + " " + emp.getName() + " "
					+ emp.getPosition());
		}
		session.close();
	}

	/**
	 * 延迟加载
	 * lazy="false"
	 */
	public void testLoadEmp() {
		Configuration conf = new Configuration();
		conf.configure();
		SessionFactory factory = conf.buildSessionFactory();
		Session session = factory.openSession();

		Emp emp = (Emp) session.load(Emp.class, "001");//得到值,但不执行

		System.out.println("----------");

		System.out.println(emp.getId() + " " + emp.getName() + " "
				+ emp.getPosition() + " " + emp.getHireDate());

		session.close();
		
		/*lazy为false时:(对HQL语句而言)
		 * Hibernate: select emp0_.id as id0_1_, emp0_.name as name0_1_, emp0_.position as position0_1_, emp0_.hire_date as hire4_0_1_, emp0_.dept_id as dept5_0_1_, dept1_.id as id1_0_, dept1_.name as name1_0_ from t_emp emp0_ left outer join t_dept dept1_ on emp0_.dept_id=dept1_.id where emp0_.id=?
			----------
			006 java 经理 2008-10-13
			
			
			true时:要打印时,才调用HQL语句,显示结果
			----------
			 Hibernate: select emp0_.id as id0_1_, emp0_.name as name0_1_, emp0_.position as position0_1_, emp0_.hire_date as hire4_0_1_, emp0_.dept_id as dept5_0_1_, dept1_.id as id1_0_, dept1_.name as name1_0_ from t_emp emp0_ left outer join t_dept dept1_ on emp0_.dept_id=dept1_.id where emp0_.id=?
			006 java 经理 2008-10-13
		 * */
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -