解决方案一
对我们运行代码时,发现并未报错但是却进不去数据例:
检查可知我未写
**session.commit();**把这句代码写在事务完成后,意思是完成事务的提交。
为什么要写session.commit();
因为在数据库中间,数据库语言分为两类
一类为DML(数据操作语言)
增 INSERT 删DELETE 改UPDATE
一类为DDL(数据定义语言)
创建表(create table ) 修改表(alter table) 删除表 ( drop table)等等(除了增删改的语句)
在DDL语句里面自带了commit()事务的提交,而DMl语句里面未带,当DML完成操作后,并不会被数据库接收到,所以数据库认为未写common();DML进行的数据变更为“脏数据”,写不进去数据库。
更改后
id变为四就是因为脏数据有记录但是未写进去。‘’
解决方案二
类里面存在参数构造方法,但是并未实现参数的传递,从而使参数只接受到而未传递。
User的构造方法
public User(int i, String name, int j) {
//错误写法,传不进去数据
}
----------------------------------
public User(int i, String name, int j) {
//正确方法
this.id=i;
this.name=name;
this.age=j;
}