package com.eudask.ht1.test;
import java.sql.Date;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Restrictions;
import org.junit.Test;
import com.eudask.ht1.Stu;
import com.eudask.ht1.util.HibernateUtil;
public class TestSt {
@Test
public void addStu() {
Stu stu = new Stu();
stu.setXm("郭德纲2");
stu.setSex("男2");
stu.setSr(Date.valueOf("2016-10-21"));
// 获取session
Session session = HibernateUtil.getSession();
// 开启事务
Transaction ts = session.beginTransaction();
try {
session.save(stu);
ts.commit();
} catch (Exception e) {
e.printStackTrace();
ts.rollback();
} finally {
session.close();
}
}
@Test
public void testCritetoa(){
// 获取session
Session session = HibernateUtil.getSession();
Criteria cr=session.createCriteria(Stu.class);
cr.add(Restrictions.eq("id",1));
List<Stu> Stus=cr.list();
for(Stu stu:Stus){
System.out.print(stu);
}
session.close();
}
@Test
public void testSql(){
// 获取session
Session session = HibernateUtil.getSession();
String sql="select * from stu";
SQLQuery SQ=session.createSQLQuery(sql);
List<Object[]> Stus=SQ.list();
for(Object[] stu:Stus){
for(Object stuo:stu){
System.out.println(stuo);
}
}
session.close();
}
// 根据id查询数据
@Test
public void findById() {
Session session = HibernateUtil.getSession();
Stu stu = (Stu) session.get(Stu.class, 1);
System.out.println(stu.getId());
System.out.println(stu.getSex());
System.out.println(stu.getXm());
System.out.println(stu.getSr());
session.close();
}
// 修改数据
@Test
public void update() {
Session session = HibernateUtil.getSession();
Stu stu = (Stu) session.get(Stu.class, 1);
// 开启事务
Transaction ts = session.beginTransaction();
try {
stu.setXm("岳云鹏");
session.update(stu);
ts.commit();
} catch (Exception e) {
e.printStackTrace();
ts.rollback();
} finally {
session.close();
}
}
// 查询所有
@Test
public void selectAll() {
//获得HibernateSession对象
Session session = HibernateUtil.getSession();
//编写HQL语句
String hql = "from Stu where id=:input";
// String hql = "from Stu as s where id=?";
//以hql语句做为参数调用session的createQuery创建Query对象
Query query = session.createQuery(hql);
//如果有参数通过query.setXX()方法 设置查询条件
query.setInteger("input", 1);
// query.setInteger(0, 1);
//通过query的list等方法遍历查询结果
List<Stu> stus = query.list();
for (Stu s : stus) {
System.out.println(s);
}
session.close();
}
// 删除
@Test
public void delete() {
Session session = HibernateUtil.getSession();
Stu stu = (Stu) session.get(Stu.class, 2);
Transaction ts = session.beginTransaction();
try {
session.delete(stu);
ts.commit();
} catch (Exception e) {
e.printStackTrace();
ts.rollback();
} finally {
session.close();
}
}
//分页of hibernate
public void fenye(int page,int pageItems){
Session session = HibernateUtil.getSession();
String hql="from Stu";
Query query=session.createQuery(hql);
query.setFirstResult((page-1)*pageItems);
query.setMaxResults(pageItems);
List<Stu> list=query.list();
for(Stu stu:list){
System.out.println(stu);
}
}
public static void main(String[] args) {
TestSt t=new TestSt();
t.fenye(1, 10);
System.out.println("=======================");
t.fenye(2, 10);
}
}