1、配置数据库映射文件(User.xml)

在其中加入如下代码:

[html] view plain copy

  1. <!--  
  2. 添加用户  
  3. parameterType:指定输入的参数类型是pojo  
  4. #{}中指定pojo的属性名,接收到pojo对象的属性值,mybatis也是通过OGNL来获取对象的属性值  
  5.  -->  
  6. <insert id="insertUser" parameterType="pojo.User">  
  7.     INSERT INTO USER VALUES(#{id},#{username},#{birthday},#{sex},#{address});  
  8. </insert>  

 

注意:在此处的parameterType中,指定的是对象名,而不是简单数据类型,在下方指定pojo的各属性名

 

2、编写程序

[java] view plain copy

  1. //添加用户  
  2.     @Test  
  3.     public void insertUser(){  
  4.         //mybatis配置文件  
  5.         String resource = "SqlMapConfig.xml";  
  6.         SqlSession sqlSession = null;  
  7.         try {  
  8.             InputStream inputStream = Resources.getResourceAsStream(resource);  
  9.             //创建会话工厂,传入mybatis的配置信息  
  10.             SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);  
  11.             //通过工厂得到SqlSession  
  12.             sqlSession = sqlSessionFactory.openSession();  
  13.             //通过SqlSession来操作数据库  
  14.             //List中的User泛型,和resultType中指定的类型一致  
  15.             User user = new User();  
  16.             user.setUsername("fjnmbb1234");  
  17.             user.setBirthday(new Date());  
  18.             user.setSex("1");  
  19.             user.setAddress("湖南长沙");  
  20.             sqlSession.insert("test.insertUser",user);  
  21.             //提交事务  
  22.             sqlSession.commit();  
  23.         }catch (IOException e){  
  24.             e.printStackTrace();  
  25.         }finally {  
  26.             //释放资源  
  27.             sqlSession.close();  
  28.         }  
  29.     }  

注意:在此处,因为添加用户没有返回值,所以在此处没有定义来接受返回值的变量。在添加完成后,最后记得commit一下,因为mybatis默认没有开启自动提交事务。在与spring整合后就可不再考虑提交事务的问题。

 

程序运行结果:

 

mybatis添加新用户

 

3、获取自增主键ID

3.1 在映射文件中配置insert语句,在其中加入如下:

[html] view plain copy

  1. <!--  
  2.         将insert插入数据后生成的主键返回到user对象中  
  3.         SELECT LAST_INSERT_ID() 得到刚才插入的进去的记录的主键值,只能是自增主键  
  4.         keyProperty: 将查询到的主键值设置到这个parameterType指定的哪个属性  
  5.         order : 相对于sql语句来说的执行顺序  
  6.          -->  
  7.         <selectKey keyProperty="id" order="AFTER" resultType="int">  
  8.             SELECT LAST_INSERT_ID()  
  9.         </selectKey>  

 

3.2 在程序编写中,插入如下:

[java] view plain copy

  1. System.out.print(user.getId());  

 

可以直接get到值

 

相关文章: