为了账号安全,请及时绑定邮箱和手机立即绑定
org.hibernate.exception.SQLGrammarException: could not execute statement
出现这个问题的------数据库表名用了MySQL关键字
private Blob blob; (这样就会发生上面错误)
改成private Blob image; 让后从新映射
opensession用起来方便,但是一定要记得close,保证不会读写溢出
1 2 楼陈独秀同学请坐下
感谢老师的课程!2018-02-06
我也用的idea 现在开发基本上推广idea的
友情推荐,1.25倍的速度最合适
5.2版本的
//创建会话工厂对象
sessionFactory = new Configuration().configure().buildSessionFactory();
//创建会话对象
session = sessionFactory.openSession();
//开启事务
transaction = session.beginTransaction();
踩坑了。hibernate.hbm2ddl.auto值为create,每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。引自https://www.cnblogs.com/feilong3540717/archive/2011/12/19/2293038.html
这老师讲得蛮好的,打卡
@墨上清 这位同学明显理解错老师这么演示的意思,诚然打印两个session的hashcode不同不能证明这两个session没有关闭。但是老师想要表达的意思是使用openSession()方式获得是session是使用新的connection的,所以如果你在程序中不设置关闭session释放资源的话,那么就有可能会造成连接池溢出的状况
报MappingNotFoundException这个错误的同学们,注意一下自己mapping的路径是否正确,检查了一下发现自己漏写了Students最后面的这个s,加上去就OK了,因为用的jar包是老师提供的,所以没遇到版本问题

最赞回答 / qq_22_7
自己已经解决啦,其实还是版本的问题,所以代码改了一下public void init() {         // 创建配置对象            ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build();        //创建会话工厂对象        sessionFactory = new MetadataSources(serviceRegistry).buildM...
真心 感觉还算是简单的
hibernate5.2.10使用自动提交,Junit测试会报错javax.persistence.TransactionRequiredException: no transaction is in progress ,这时你学要开启事务,但不用提交事务。
我即使是死了,钉在棺材里了,也要在墓里,用这腐朽的声带喊出:“不要用java9来!!!!!!!!!!!!!!!!!”
课程须知
小伙伴们,学习本门课程前需要具备Java基础知识和面向对象编程思想,并能够熟练使用JDBC操作Mysql数据库。
老师告诉你能学到什么?
1、理解ORM模型 2、掌握Hibernate基本概念 3、能够熟练创建Hibernate实例

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消