今日学习之Hibernate(二)
1.问题:org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update at org.hibernate.
解决办法:
--设置对应方言,把下图修改为org.hibernate.dialect.MySQL5Dialect
--检查其他错误
犯了一个低级错误,在设置ID自动增长的时候,配置的id是String类型,也导致出现该错误。
注意点,设置ID为String类型时候,配置类型应为UUID。
2.对实体类crud操作
- session.get(Students.class, 1);
- session.save(stu);
- stu.setPassWord("eee")--->session.update(stu);
- session.delete(stu);
3.hibernate缓存特点:
hibernate的一级缓存:
(1)hibernate的一级缓存默认打开的。
(2)hibernate的一级缓存使用范围,是session范围,从session创建到session关闭范围。
(3)hibernate的一级缓存中,存储数据必须 持久态数据。
注意:两个user不是同一个对象。user2是在缓存中拼接数据形成的。
持久态数据自动更新数据库。
首先修改实体类数据,然后修改一级缓存的数据,然后把一级缓存的数据和快照区的数据做比较,如果不相同,直接把一级缓存的数据更新到数据库里面去(不调用update方法也会更新)。
4.hibernate api 使用
三种查询方式: