📄 hibernatetest1.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 + -