MyBitis(iBitis)系列随笔之三:简单实现CRUD

MyBitis(iBitis)系列随笔之一:MyBitis入门实例

MyBitis(iBitis)系列随笔之二:类型别名(typeAliases)与表-对象映射(ORM)

MyBitis(iBitis)系列随笔之三:简单实现CRUD

MyBitis(iBitis)系列随笔之四:多表(多对一查询操作)

MyBitis(iBitis)系列随笔之五:多表(一对多关联查询)

MyBitis(iBitis)系列随笔之六:mybitis与spring集成

Mybitis(iBitis)实现对对象增删改查操作要借助<select/>查询,<insert/>增加,<update/>更新,<delete/>删除 标签来操作

值得注意的有两点:
  1、在对对象进行增删改时,SqlSession session = sqlSessionFactory.openSession();获取的session。必选执行session.commit();否则操作无效。
  2、Mybitis与hibernate一样,插入数据后会把id值赋值给缓存中对象

还是接着上一讲的代码继续改动
UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="user">
	 <resultMap id="userResultMap" type="user"> 
	    <id property="id" column="id"/> 
	    <result property="userName" column="name"/> 
	    <result property="password" column="pass"/> 
     </resultMap>
	
	<!--resultType 表示com.jefry.User这样一个实体对象 -->
	<select id="selectUser" parameterType="int"  resultMap="userResultMap" >
        select * from t_user where id = #{id}
	</select>
	
	<!--增加操作-->
	<insert id="addUser" parameterType="user" 
			useGeneratedKeys="true" keyProperty="id"> 
			insert into t_user(name,pass) values(#{userName},#{password})  
	</insert> 
	
	<!--更新操作-->
	<update id="modifyUser" parameterType="user">
	 	 update t_user set name=#{userName}, pass=#{password} where id=#{id} 
	</update>
	
	<delete id="deleteUser" parameterType="int"> 
	   delete from t_user where id=#{id}
	</delete> 
	 
</mapper>


测试代码

public class Test {
	static String resource = "mybatis-config.xml";

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		InputStream inputStream = Resources.getResourceAsStream(resource);
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		SqlSession session = sqlSessionFactory.openSession();
		try {
			//User.selectUser中User对应UserMapper.xml文件中标签<mapper namespace="User"> namespace的值
			//selectUser 对应UserMapper.xml文件中标签<select id="selectUser" parameterType="int" resultType="com.jefry.User">中id值
			User user = session.selectOne("user.selectUser", 1);
			System.out.println("user.getName()=" +  user.getPassword());
			
			User addUser = new User();
			addUser.setUserName("NEWWWWW");
			addUser.setPassword("111111");
			session.insert("user.addUser", addUser);
			
			//插入操作
			User modifyUser = new User();
			modifyUser.setUserName("NEWWWWW");
			modifyUser.setPassword("111111");
			modifyUser.setId(1);
			
			//修改用户
			session.update("user.modifyUser", addUser);
			
			//删除操作
			session.delete("user.deleteUser",2);
			
			//这里必须commit,否则增删改无效
			session.commit();
			
			//与hibernate一样,插入数据后会把id值赋值给缓存中的id
			System.out.println("addUser.getId()" + addUser.getId() );
			
		} finally {
			session.close();
		}
	}

}


 

你可能感兴趣的:(MyBitis(iBitis)系列随笔之三:简单实现CRUD)