Hibernate初学小笔记1《2017-09-06》
来源:互联网 发布:35vb化学成分 编辑:程序博客网 时间:2024/06/07 12:34
一、
实体类对象在Hibernate中有3种状态,分别是瞬时,持久和脱管
瞬时:指的是没有和hibernate发生任何关系,在数据库中也没有对应的记录,一旦JVM结束,这个对象也就消失了
持久:指得是一个对象和hibernate发生联系,有对应的session,并且在数据库中有对应的一条记录
脱管:指的是一个对象虽然在数据库中有对应的一条记录,但是它所对应的session已经关闭了
严格来说,应该是在commit之后才算持久状态,单纯save之后,数据库中是无法查询到记录的
文章来源于
http://how2j.cn/k/hibernate/hibernate-status/53.html
二、 **Object** o = (**Object**)s.get(**Object.class**,id);
o.setName("AQMi");
s.update(o);
根据hql创建一个Query对象(Query是基于0的,PreparedStatement是基于1的),通过Query对象的list()方法即返回查询的结果。
PS:使用hql的时候,不需要在前面加 select *
public class TestHibernate { public static void main(String[] args) { SessionFactory sf = new Configuration().configure().buildSessionFactory(); Session s = sf.openSession(); s.beginTransaction(); **String q = "AQM"; Query query = s.createQuery("FROM Product p WHERE p.name like ?"); query.setString(0,"%"+q+"%"); List<Product> list = query.list(); for (Product p:list) { System.out.println(p.getId()+","+p.getName()); }**//前后都不用变,只需要修改这些 s.getTransaction().commit(); s.close(); sf.close(); }}
文章来源于
http://how2j.cn/k/hibernate/hibernate-hql/37.html#nowhere
三、
使用Criteria,根据name进行模糊查询
1. 通过session的createCriteria创建一个Criteria 对象
Criteria.add 增加约束。 在本例中增加一个对name的模糊查询(like)
调用list()方法返回查询结果的集合
Criteria c= s.createCriteria(Product.class); c.add(Restrictions.like("name", "%"+name+"%")); List<Product> ps = c.list(); for (Product p : ps) { System.out.println(p.getName()); }
文章来源于
http://how2j.cn/k/hibernate/hibernate-sql/38.html
四、
Hibernate依然保留了对标准SQL语句的支持,在一些场合,比如多表联合查询,并且有分组统计函数的情况下,标准SQL语句依然是效率较高的一种选择。
String sql = "select * from product_ p where p.name like '%"+name+"%'"; Query q= s.createSQLQuery(sql); List<Object[]> list= q.list(); for (Object[] os : list) { for (Object filed: os) { System.out.print(filed+"\t"); } System.out.println(); }
文章来源于
http://how2j.cn/k/hibernate/hibernate-sql/39.html
- Hibernate初学小笔记1《2017-09-06》
- Hibernate初学小笔记2《2017-09-07》
- hibernate初学笔记3《2017-09-09》
- Struts初学小笔记1《2017-09-08》
- Spring初学小笔记1《2017-09-08》
- Struts初学小笔记2《2017-09-19》
- 初学hibernate笔记
- 初学hibernate笔记
- Hibernate框架初学笔记
- opencl初学笔记--经典初学小案例
- hibernate之初学篇笔记
- 初学java的小笔记
- 初学小程序1
- hibernate 的小笔记
- 小白的docker初学笔记
- Git初学 小白笔记(一)
- Git初学 小白笔记(二)
- Oracle初学笔记(1)
- 异步过滤器-19
- 今日总结
- Mybatis错误:Result Maps collection already contains value for ***
- Maven载入包速度慢
- 最小生成树-Kruskal算法
- Hibernate初学小笔记1《2017-09-06》
- sqlalchemy学习笔记
- Poj1064:二分搜索+可行性判定问题
- 矩形覆盖
- Java并发编程:(4)volatile关键字的使用
- 阻止点击<a>标签链接跳转
- C# MQTT客户端--M2MQTT
- Metasploit启动时Failed to connect to the database
- 常用数据结构和算法(上)