1、配置数据库映射文件(User.xml)
在其中加入如下代码:
[html] view plain copy
- <!--
- 添加用户
- parameterType:指定输入的参数类型是pojo
- #{}中指定pojo的属性名,接收到pojo对象的属性值,mybatis也是通过OGNL来获取对象的属性值
- -->
- <insert id="insertUser" parameterType="pojo.User">
- INSERT INTO USER VALUES(#{id},#{username},#{birthday},#{sex},#{address});
- </insert>
注意:在此处的parameterType中,指定的是对象名,而不是简单数据类型,在下方指定pojo的各属性名
2、编写程序
[java] view plain copy
- //添加用户
- @Test
- public void insertUser(){
- //mybatis配置文件
- String resource = "SqlMapConfig.xml";
- SqlSession sqlSession = null;
- try {
- InputStream inputStream = Resources.getResourceAsStream(resource);
- //创建会话工厂,传入mybatis的配置信息
- SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
- //通过工厂得到SqlSession
- sqlSession = sqlSessionFactory.openSession();
- //通过SqlSession来操作数据库
- //List中的User泛型,和resultType中指定的类型一致
- User user = new User();
- user.setUsername("fjnmbb1234");
- user.setBirthday(new Date());
- user.setSex("1");
- user.setAddress("湖南长沙");
- sqlSession.insert("test.insertUser",user);
- //提交事务
- sqlSession.commit();
- }catch (IOException e){
- e.printStackTrace();
- }finally {
- //释放资源
- sqlSession.close();
- }
- }
注意:在此处,因为添加用户没有返回值,所以在此处没有定义来接受返回值的变量。在添加完成后,最后记得commit一下,因为mybatis默认没有开启自动提交事务。在与spring整合后就可不再考虑提交事务的问题。
程序运行结果:
3、获取自增主键ID
3.1 在映射文件中配置insert语句,在其中加入如下:
[html] view plain copy
- <!--
- 将insert插入数据后生成的主键返回到user对象中
- SELECT LAST_INSERT_ID() 得到刚才插入的进去的记录的主键值,只能是自增主键
- keyProperty: 将查询到的主键值设置到这个parameterType指定的哪个属性
- order : 相对于sql语句来说的执行顺序
- -->
- <selectKey keyProperty="id" order="AFTER" resultType="int">
- SELECT LAST_INSERT_ID()
- </selectKey>
3.2 在程序编写中,插入如下:
[java] view plain copy
- System.out.print(user.getId());
可以直接get到值