mybaits 配置insert 主鍵自動增長失效原因
阿新 • • 發佈:2019-01-24
初次涉獵mybaits 框架和mysql 資料庫導致框架使用出現很多的低階失誤,在此分享給大家避免此類錯誤:
配置檔案
<insert id="insertUser1" parameterType="domain.User"
useGeneratedKeys="true" keyProperty="ID">
</insert>
javabean
public class User {
private Integer id ;
private String username;
private Date birthday;
private int sex;
private String address;
.
.
.
測試類
public void insertData() throws Exception{
//通過sqlSessionFactory工廠來生成sqlSessioin
SqlSession sqlSession = sqlSessionFactory.openSession();
//namespace+sql語句的ID
User user = new User();
user.setUsername ("NB1121");
user.setBirthday(new Date());
user.setSex(1);
//user.setId(1231);
user.setAddress("遼寧瀋陽");
sqlSession.insert("test.insertUser", user);
System.out.println(user.getId());
sqlSession.commit();
sqlSession.close();
System.out .println(total);
}
* 出現了 以下兩種錯誤*
- mybaits 設定為主鍵自增長,但是每次插入插入的主鍵都是0導致主鍵衝突
- 插入時主鍵為空。
- 第一種情況 是因為mysql資料庫建表的時候沒有設定為主鍵自動增長
2.插入主鍵為空的原因是因為id 主鍵的型別為Integer 不是int原生型別,插入時沒能自動拆箱、所以就將主鍵設定為空了。(應該是這樣)