hql Demo
package com.cn.hql;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;
import com.cn.domain.Customer;
/*学习SessionFactory
* SessionFactory功能:用于创建操作数据库核心对象session对象的工厂
* 简单说功能就一个----创建session对象
* 注意:1.sessionfactory负责保存和使用所有的配置信息,消耗内存资源非常大
* 2.sessionFacory属于线程安全的对象设计
*
*
* 学习session对象功能
*表达hibernate框架与数据库之间的连接(会话),session类似于JDBC年代的connection对象,
*还可以完成对数据库中数据的增删改查操作。
*session是hibernate操作数据库的核心对象。
*
*
* transaction对象
* 封装了事务的操作
* 打开事务
* 提交事务
* 回滚事务
*/
/*HQL语句中,不可能出现任何数据库相关的信息的
*/
public class Demo {
@Test
public void fun1(){
//1.创建,调用空参构造
//2.读取指定主配置文件=>空参加载方法,加载src下的Hibernate.cfg
Configuration conf = new Configuration().configure();
//3.根据配置信息,创建Sessionfactory对象
SessionFactory sessionFactory = conf.buildSessionFactory();
//4.获取session
Session session = sessionFactory.openSession();
//5.开启事务并获得操作事务的tx对象
Transaction tx = session.beginTransaction();
//----------------------------------
//1.书写HQL语句
// String hql= " from com.cn.domain.Customer";//查询所有 Customer对象
String hql = " from Customer";
//2根据HQL语句创建查询对象
Query query = session.createQuery(hql);
//3、根据查询对象获得查询结果
List<Customer> list = query.list();
//--------------------------------------
tx.commit();//提交事务
session.close();
sessionFactory.close();
//openSession.get(arg0, arg1);
}
//HQL语句条件查询
@Test
public void fun2(){
//1.创建,调用空参构造
//2.读取指定主配置文件=>空参加载方法,加载src下的Hibernate.cfg
Configuration conf = new Configuration().configure();
//3.根据配置信息,创建Sessionfactory对象
SessionFactory sessionFactory = conf.buildSessionFactory();
//4.获取session
Session session = sessionFactory.openSession();
//5.开启事务并获得操作事务的tx对象
Transaction tx = session.beginTransaction();
//----------------------------------
//1.书写HQL语句
// String hql= " from com.cn.domain.Customer";//查询所有 Customer对象
// String hql = " from Customer where cust_id = ?";
String hql = " from Customer where cust_id = :cust_id";
//2根据HQL语句创建查询对象
Query query = session.createQuery(hql);
query.setParameter(0, 1L);
query.setParameter("cust_id", 1L);
//3、根据查询对象获得查询结果
Customer c = (Customer) query.uniqueResult();
//--------------------------------------
tx.commit();//提交事务
session.close();
sessionFactory.close();
//openSession.get(arg0, arg1);
}
//分页查询
@Test
public void fun3(){
//1.创建,调用空参构造
//2.读取指定主配置文件=>空参加载方法,加载src下的Hibernate.cfg
Configuration conf = new Configuration().configure();
//3.根据配置信息,创建Sessionfactory对象
SessionFactory sessionFactory = conf.buildSessionFactory();
//4.获取session
Session session = sessionFactory.openSession();
//5.开启事务并获得操作事务的tx对象
Transaction tx = session.beginTransaction();
//----------------------------------
//1.书写HQL语句
// String hql= " from com.cn.domain.Customer";//查询所有 Customer对象
String hql = " from Customer";
//2根据HQL语句创建查询对象
Query query = session.createQuery(hql);
//设置分页信息limit ?,?
query.setFirstResult(0);
query.setMaxResults(1);
//3、根据查询对象获得查询结果
Customer c = (Customer) query.list();
//--------------------------------------
tx.commit();//提交事务
session.close();
sessionFactory.close();
//openSession.get(arg0, arg1);
}
}
criteria Demo
package com.itheima.criteria;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.junit.Test;
import com.cn.domain.Customer;
/*学习SessionFactory
* SessionFactory功能:用于创建操作数据库核心对象session对象的工厂
* 简单说功能就一个----创建session对象
* 注意:1.sessionfactory负责保存和使用所有的配置信息,消耗内存资源非常大
* 2.sessionFacory属于线程安全的对象设计
*
*
* 学习session对象功能
*表达hibernate框架与数据库之间的连接(会话),session类似于JDBC年代的connection对象,
*还可以完成对数据库中数据的增删改查操作。
*session是hibernate操作数据库的核心对象。
*
*
* transaction对象
* 封装了事务的操作
* 打开事务
* 提交事务
* 回滚事务
*/
//测试c
public class Demo {
@Test
public void fun1(){
//1.创建,调用空参构造
//2.读取指定主配置文件=>空参加载方法,加载src下的Hibernate.cfg.xml文件
Configuration conf = new Configuration().configure();
//3.根据配置信息,创建Sessionfactory对象
SessionFactory sessionFactory = conf.buildSessionFactory();
//4.获取session
Session session = sessionFactory.openSession();
//5.开启事务并获得操作事务的tx对象
Transaction tx = session.beginTransaction();
//----------------------------------
Criteria criteria = session.createCriteria(Customer.class);//查询所有的Customer对象
List<Customer> list = criteria.list();
// Customer c =(Customer) criteria.uniqueResult();
//--------------------------------------
tx.commit();//提交事务
session.close();
sessionFactory.close();
//openSession.get(arg0, arg1);
}
//条件查询
@Test
public void fun2(){
//1.创建,调用空参构造
//2.读取指定主配置文件=>空参加载方法,加载src下的Hibernate.cfg.xml文件
Configuration conf = new Configuration().configure();
//3.根据配置信息,创建Sessionfactory对象
SessionFactory sessionFactory = conf.buildSessionFactory();
//4.获取session
Session session = sessionFactory.openSession();
//5.开启事务并获得操作事务的tx对象
Transaction tx = session.beginTransaction();
//----------------------------------
Criteria criteria = session.createCriteria(Customer.class);//查询所有的Customer对象
//添加查询参数
//查询cust_id为1的Customer对象
criteria.add(Restrictions.eq("cust_id", 1L));
//执行查询,获得结果,
List<Customer> list = criteria.list();
//执行查询,获得结果
Customer c =(Customer) criteria.uniqueResult();
//--------------------------------------
tx.commit();//提交事务
session.close();
sessionFactory.close();
//openSession.get(arg0, arg1);
}
//分页查询
@Test
public void fun3(){
//1.创建,调用空参构造
//2.读取指定主配置文件=>空参加载方法,加载src下的Hibernate.cfg.xml文件
Configuration conf = new Configuration().configure();
//3.根据配置信息,创建Sessionfactory对象
SessionFactory sessionFactory = conf.buildSessionFactory();
//4.获取session
Session session = sessionFactory.openSession();
//5.开启事务并获得操作事务的tx对象
Transaction tx = session.beginTransaction();
//----------------------------------
Criteria criteria = session.createCriteria(Customer.class);//查询所有的Customer对象
// limit ?,?
criteria.setFirstResult(0);
criteria.setMaxResults(1);
//--------------------------------------
tx.commit();//提交事务
session.close();
sessionFactory.close();
//openSession.get(arg0, arg1);
}
//分页查询
@Test
public void fun4(){
//1.创建,调用空参构造
//2.读取指定主配置文件=>空参加载方法,加载src下的Hibernate.cfg.xml文件
Configuration conf = new Configuration().configure();
//3.根据配置信息,创建Sessionfactory对象
SessionFactory sessionFactory = conf.buildSessionFactory();
//4.获取session
Session session = sessionFactory.openSession();
//5.开启事务并获得操作事务的tx对象
Transaction tx = session.beginTransaction();
//----------------------------------
Criteria criteria = session.createCriteria(Customer.class);//查询所有的Customer对象
//设置查询的聚合函数=>总行数
criteria.setProjection(Projections.rowCount());
//执行查询
Long count = (Long)criteria.uniqueResult();
//--------------------------------------
tx.commit();//提交事务
session.close();
sessionFactory.close();
}
}
//> gt
//>= ge
//< lt
//<= le
//== eq
//!= ne
//in in
//between and between
//like like
//is not null isNotNull
//is null isNUll
//or
//and
sql Demo
package com.itheima.sql;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.junit.Test;
import com.cn.domain.Customer;
/*学习SessionFactory
* SessionFactory功能:用于创建操作数据库核心对象session对象的工厂
* 简单说功能就一个----创建session对象
* 注意:1.sessionfactory负责保存和使用所有的配置信息,消耗内存资源非常大
* 2.sessionFacory属于线程安全的对象设计
*
*
* 学习session对象功能
*表达hibernate框架与数据库之间的连接(会话),session类似于JDBC年代的connection对象,
*还可以完成对数据库中数据的增删改查操作。
*session是hibernate操作数据库的核心对象。
*
*
* transaction对象
* 封装了事务的操作
* 打开事务
* 提交事务
* 回滚事务
*/
//测试原生SQL查询
public class Demo {
//基本查询
@Test
public void fun1(){
//1.创建,调用空参构造
//2.读取指定主配置文件=>空参加载方法,加载src下的Hibernate.cfg.xml文件
Configuration conf = new Configuration().configure();
//3.根据配置信息,创建Sessionfactory对象
SessionFactory sessionFactory = conf.buildSessionFactory();
//4.获取session
Session session = sessionFactory.openSession();
//5.开启事务并获得操作事务的tx对象
Transaction tx = session.beginTransaction();
//----------------------------------
//1.书写sql语句
String sql = "select * from cst_customer";
//2.创建sql查询对象
SQLQuery query = session.createSQLQuery(sql);
//指定将结果集封装到哪个对象中
query.addEntity(Customer.class);
List<Customer> list = query.list();
System.out.println(list);
//--------------------------------------
tx.commit();//提交事务
session.close();
sessionFactory.close();
//openSession.get(arg0, arg1);
}
//条件查询
@Test
public void fun2(){
//1.创建,调用空参构造
//2.读取指定主配置文件=>空参加载方法,加载src下的Hibernate.cfg.xml文件
Configuration conf = new Configuration().configure();
//3.根据配置信息,创建Sessionfactory对象
SessionFactory sessionFactory = conf.buildSessionFactory();
//4.获取session
Session session = sessionFactory.openSession();
//5.开启事务并获得操作事务的tx对象
Transaction tx = session.beginTransaction();
//----------------------------------
String sql = "select * from cst_customer where id = ?";
//2.创建sql查询对象
SQLQuery sqlQuery= session.createSQLQuery(sql);
sqlQuery.setParameter(0, 1l);
sqlQuery.addEntity(Customer.class);
Customer cus = (Customer)sqlQuery.uniqueResult();
System.out.println(cus);
//--------------------------------------
tx.commit();//提交事务
session.close();
sessionFactory.close();
//openSession.get(arg0, arg1);
}
//分页查询
@Test
public void fun3(){
//1.创建,调用空参构造
//2.读取指定主配置文件=>空参加载方法,加载src下的Hibernate.cfg.xml文件
Configuration conf = new Configuration().configure();
//3.根据配置信息,创建Sessionfactory对象
SessionFactory sessionFactory = conf.buildSessionFactory();
//4.获取session
Session session = sessionFactory.openSession();
//5.开启事务并获得操作事务的tx对象
Transaction tx = session.beginTransaction();
//----------------------------------
String sql = "select * from cst_customer limit ?,?";
//2.创建sql查询对象
SQLQuery query = session.createSQLQuery(sql);
//从0开始查,一次查取1个
query.setParameter(0, 0);
query.setParameter(1, 1);
//3.指定将结果集放入到哪个对象中
query.addEntity(Customer.class);
//4.调用方法查询结果
List<Customer> list = query.list();
System.out.println(list);
//--------------------------------------
tx.commit();//提交事务
session.close();
sessionFactory.close();
//openSession.get(arg0, arg1);
}
//分页查询
@Test
public void fun4(){
//1.创建,调用空参构造
//2.读取指定主配置文件=>空参加载方法,加载src下的Hibernate.cfg.xml文件
Configuration conf = new Configuration().configure();
//3.根据配置信息,创建Sessionfactory对象
SessionFactory sessionFactory = conf.buildSessionFactory();
//4.获取session
Session session = sessionFactory.openSession();
//5.开启事务并获得操作事务的tx对象
Transaction tx = session.beginTransaction();
//----------------------------------
Criteria criteria = session.createCriteria(Customer.class);//查询所有的Customer对象
//设置查询的聚合函数=>总行数
criteria.setProjection(Projections.rowCount());
//执行查询
Long count = (Long)criteria.uniqueResult();
//--------------------------------------
tx.commit();//提交事务
session.close();
sessionFactory.close();
}
}
//> gt
//>= ge
//< lt
//<= le
//== eq
//!= ne
//in in
//between and between
//like like
//is not null isNotNull
//is null isNUll
//or
//and