日韩精品欧美激情国产一区_中文无码精品一区二区三区在线_岛国毛片AV在线无码不卡_亞洲歐美日韓精品在線_使劲操好爽好粗视频在线播放_日韩一区欧美二区_八戒八戒网影院在线观看神马_亚洲怡红院在线色网_av无码不卡亚洲电影_国产麻豆媒体MDX

用mybatis中的insert方法插入數(shù)據(jù),返回值為1,但數(shù)據(jù)庫卻沒有數(shù)據(jù)

時(shí)間:2020-01-28 22:06:15 類型:JAVA
字號(hào):    

  用mybatis中的insert方法插入數(shù)據(jù),返回值為1,但數(shù)據(jù)庫卻沒有數(shù)據(jù)

用Mapper中的

<!-- 添加一個(gè)用戶,#{uname}為com.mybatis.po.MyUser的屬性值 -->
	<insert id="addUser" parameterType="com.mybatis.po.MyUser">
		insert into user(uname,usex)values(#{uname},#{usex})
	</insert>

在測(cè)試類中寫了這個(gè)

//讀取配置文件 mybatis-config.xml
			InputStream config = Resources.getResourceAsStream("mybatis-config.xml");
			//根據(jù)配置文件構(gòu)建SqlSessionFactory
			SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(config);
			//通過 SqlSessionFactory 創(chuàng)建SqlSession
			SqlSession ss = ssf.openSession();
			//SqlSession執(zhí)行映射文件中定義的SQL,并返回映射結(jié)果
			//com.mybatis.mapper.UserMapper.selectUserById為UserMapper.xml中的命名空間+select 的id
			//查詢一個(gè)用戶
			/*MyUser mu = ss.selectOne("com.mybatis.mapper.UserMapper.selectUserById", 1);
			System.out.println(mu.getUname() + mu.getUid());*/
			//添加一個(gè)用戶
			 MyUser addmu = new MyUser();
	            addmu.setUname("小李");
	            addmu.setUsex("男");
	            Integer one = ss.insert("com.mybatis.mapper.UserMapper.addUser", addmu);
	            System.out.println(one);

結(jié)果是 one = 1; 但是到數(shù)據(jù)庫的表中查詢,卻沒有數(shù)據(jù)

最后找到解決方案如下:

1.    ssf.openSession();的時(shí)候(默認(rèn)為false),設(shè)置了沒有自動(dòng)提交

  在返回one后面加上 ssf.commit();  就可以了,提交事務(wù)  

2.    ssf.openSession(true), 那么就會(huì)自動(dòng)提交事務(wù)

以上兩種方案, 都會(huì)真正添加數(shù)據(jù)到數(shù)據(jù)庫中

<