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

 

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

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

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

[html] view plain copy
 
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE mapper  
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"  
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
  5. <mapper namespace="user">  
  6.      <resultMap id="userResultMap" type="user">   
  7.         <id property="id" column="id"/>   
  8.         <result property="userName" column="name"/>   
  9.         <result property="password" column="pass"/>   
  10.      </resultMap>  
  11.       
  12.     <!--resultType 表示com.jefry.User这样一个实体对象 -->  
  13.     <select id="selectUser" parameterType="int"  resultMap="userResultMap" >  
  14.         select * from t_user where id = #{id}  
  15.     </select>  
  16.       
  17.     <!--增加操作-->  
  18.     <insert id="addUser" parameterType="user"   
  19.             useGeneratedKeys="true" keyProperty="id">   
  20.             insert into t_user(name,pass) values(#{userName},#{password})    
  21.     </insert>   
  22.       
  23.     <!--更新操作-->  
  24.     <update id="modifyUser" parameterType="user">  
  25.          update t_user set name=#{userName}, pass=#{password} where id=#{id}   
  26.     </update>  
  27.       
  28.     <delete id="deleteUser" parameterType="int">   
  29.        delete from t_user where id=#{id}  
  30.     </delete>   
  31.        
  32. </mapper>  


测试代码

[java] view plain copy
 
  1. public class Test {  
  2.     static String resource = "mybatis-config.xml";  
  3.   
  4.     public static void main(String[] args) throws IOException {  
  5.         // TODO Auto-generated method stub  
  6.         InputStream inputStream = Resources.getResourceAsStream(resource);  
  7.         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);  
  8.         SqlSession session = sqlSessionFactory.openSession();  
  9.         try {  
  10.             //User.selectUser中User对应UserMapper.xml文件中标签<mapper namespace="User"> namespace的值  
  11.             //selectUser 对应UserMapper.xml文件中标签<select id="selectUser" parameterType="int" resultType="com.jefry.User">中id值  
  12.             User user = session.selectOne("user.selectUser", 1);  
  13.             System.out.println("user.getName()=" +  user.getPassword());  
  14.               
  15.             User addUser = new User();  
  16.             addUser.setUserName("NEWWWWW");  
  17.             addUser.setPassword("111111");  
  18.             session.insert("user.addUser", addUser);  
  19.               
  20.             //插入操作  
  21.             User modifyUser = new User();  
  22.             modifyUser.setUserName("NEWWWWW");  
  23.             modifyUser.setPassword("111111");  
  24.             modifyUser.setId(1);  
  25.               
  26.             //修改用户  
  27.             session.update("user.modifyUser", addUser);  
  28.               
  29.             //删除操作  
  30.             session.delete("user.deleteUser",2);  
  31.               
  32.             //这里必须commit,否则增删改无效  
  33.             session.commit();  
  34.               
  35.             //与hibernate一样,插入数据后会把id值赋值给缓存中的id  
  36.             System.out.println("addUser.getId()" + addUser.getId() );  
  37.               
  38.         } finally {  
  39.             session.close();  
  40.         }  
  41.     }  
  42.   
  43. }
原文地址:https://www.cnblogs.com/shijiaoyun/p/5157530.html