hibernate中原生态sql语句以及加入Ehcache二级缓存
来源:互联网 发布:淘宝店家投诉电话 编辑:程序博客网 时间:2024/05/29 17:53
Hibernate3.x允许使用手写SQL语句,包括存储过程,所有的创建,更新,删除和load操作。
应用程序将从会话创建一个原生SQL查询(Session接口上)createSQLQuery()方法:
public SQLQuery createSQLQuery(String sqlString) throws HibernateException
当传递一个包含SQL查询到createSQLQuery()方法,可以将SQL结果与任何现有的Hibernate实体,联接,或者一个标量结果使用addEntity()方法,addJoin(),和addScalar()方法关联的字符串。
标量查询:
最基本的SQL查询是从一个或多个表中得到标量(数值)的列表。以下是语法使用原生SQL标量的值:
String sql =
"SELECT first_name, salary FROM EMPLOYEE"
;
SQLQuery query = session.createSQLQuery(sql);
query.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);
List results = query.list();
上面的查询都是返回标量值,也就是从resultset中返回的“裸”数据。以下是语法通过addEntity()方法来从原生SQL查询获得实体对象作为一个整体。
String sql =
"SELECT * FROM EMPLOYEE"
;
SQLQuery query = session.createSQLQuery(sql);
query.addEntity(Employee.
class
);
List results = query.list();
命名SQL查询:
以下是语法通过addEntity()方法来从原生SQL查询获得实体对象和使用命名SQL查询。
1
2
3
4
5
String sql =
"SELECT * FROM EMPLOYEE WHERE id = :employee_id"
;
SQLQuery query = session.createSQLQuery(sql);
query.addEntity(Employee.
class
);
query.setParameter(
"employee_id"
,
10
);
List results = query.list();
直接上测试代码
- @Test
- public void testSQLQuery(){
- Session s = sf.openSession();
- Transaction tr = s.beginTransaction();
- SQLQuery q = s.createSQLQuery("select * from customers where id=1");
- q.setCacheable(true);
- Customer c= (Customer) q.addEntity(Customer.class).uniqueResult();
- tr.commit();
- s.close();
- //上述代码会发出sql语句, 关闭session再开一个session, 以同样条件再次查询
- s = sf.openSession();
- tr = s.beginTransaction();
- q = s.createSQLQuery("select * from customers where id=1");
- q.setCacheable(true);
- c= (Customer) q.addEntity(Customer.class).uniqueResult();
- System.out.println(c.getName()); //再次查询, 没有发出sql,说明是从缓存中取的
- tr.commit();
- s.close();
- }
阅读全文
0 0
- hibernate中原生态sql语句以及加入Ehcache二级缓存
- Hibernate二级缓存以及ehcache的搭建配置
- Hibernate二级缓存以及ehcache的搭建配置
- Hibernate ehcache配置二级缓存[加入自己的意见]
- hibernate + ehcache 二级缓存技术
- Hibernate+ehcache二级缓存技术
- Hibernate+ehcache二级缓存技术
- Hibernate+ehcache二级缓存技术
- Hibernate ehcache二级缓存技术
- Hibernate+ehcache二级缓存技术
- Hibernate+ehcache二级缓存技术
- Hibernate使用EHCache二级缓存
- Hibernate+ehcache二级缓存技术
- Hibernate+ehcache二级缓存配置
- Hibernate+ehcache二级缓存技术
- Hibernate ehcache配置二级缓存
- hibernate + ehcache 二级缓存技术
- Hibernate+ehcache二级缓存技术
- 基本数据类型介绍
- C#中获取系统当前时间是星期几
- Maven常用命令
- js运动技术--匀速运动
- 常用类
- hibernate中原生态sql语句以及加入Ehcache二级缓存
- GC学习
- 文件操作工具类Files
- 【C语言】二维数组
- 线程池与Threadlocal
- 使用poi导出excel表格
- 决策树(decision tree)
- java笔记(一)
- 【网络实验】IP checksum的变化规律