这一篇在上一篇的基础上简单讲解如何进行增删改查操作。
一、在mybatis的配置文件conf.xml中注册xml与注解映射
二、在这个com.mybatis.crud包下面新建userMapper.xml文件与IUserMapper接口
1、userMapper.xml明细如下
insert into users(id_id,name_n,age_a) values(#{id},#{name},#{age}) delete from users where id_id=#{id} update users set name_n=#{name},age_a=#{age} where id_id =#{id}
2、IUserMapper接口定义如下
package com.mybatis.crud;import java.util.List;import java.util.Properties;import org.apache.ibatis.annotations.Delete;import org.apache.ibatis.annotations.Insert;import org.apache.ibatis.annotations.Result;import org.apache.ibatis.annotations.Results;import org.apache.ibatis.annotations.Select;import org.apache.ibatis.annotations.Update;import org.apache.ibatis.type.JdbcType;public interface IUserMapper { @Insert("insert into users(id_id,name_n,age_a) values(#{id},#{name},#{age})") public int add(User user); @Delete("delete from users where id_id=#{id}") public int deleteById(int id); @Update("update users set name_n=#{name},age_a=#{age} where id_id =#{id}") public int update(User user); @Select("select * from Users where id_id=#{id}") @Results({ @Result(property = "id", column = "id_id", jdbcType = JdbcType.INTEGER), @Result(property = "name", column = "name_n", jdbcType = JdbcType.VARCHAR), @Result(property= "age", column = "age_a", jdbcType = JdbcType.INTEGER) }) public User getById(int id); @Select("select * from Users") @Results({ @Result(property = "id", column = "id_id", jdbcType = JdbcType.INTEGER), @Result(property = "name", column = "name_n", jdbcType = JdbcType.VARCHAR), @Result(property= "age", column = "age_a", jdbcType = JdbcType.INTEGER) }) public ListgetAll();}
三、新建一个获取SqlSessionFactory的工具类
package com.mybatis.util;import java.io.InputStream;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import com.mybatis.demo.test;public class MybatisUtils { public static SqlSessionFactory getFactory(){ String resource = "conf.xml"; InputStream inputStream = test.class.getClassLoader().getResourceAsStream(resource); SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream); return sessionFactory; } }
四、实际测试代码如下
package com.mybatis.crud;import java.util.List;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.junit.Test;import com.mybatis.util.MybatisUtils;public class TestCrud { //方法名称上面F11键 即可运行测试方法 @Test public void testAdd() { SqlSessionFactory factory = MybatisUtils.getFactory(); SqlSession session = factory.openSession(true); String statement = "com.mybatis.crud.userMapper.addUser"; User user1 = new User(); user1.setId(199); user1.setName("wrrrugggcj"); user1.setAge(296); System.out.println("[xml]新增影响行数:"+session.insert(statement, user1)); User user2 = new User(); user2.setId(198); user2.setName("wrrrugggcjeee"); user2.setAge(26); IUserMapper userMapper = session.getMapper(IUserMapper.class); System.out.println("[注解]新增影响行数:"+userMapper.add( user2)); session.close(); } @Test public void testUpdate() { SqlSessionFactory factory = MybatisUtils.getFactory(); //默认手动提交 SqlSession session = factory.openSession(); String statement = "com.mybatis.crud.userMapper.updateUser"; User user1 = new User(); user1.setId(199); user1.setName("199"); user1.setAge(89); System.out.println("[xml]修改影响行数:"+session.update(statement, user1)); User user2 = new User(); user2.setId(198); user2.setName("198"); user2.setAge(89); IUserMapper userMapper = session.getMapper(IUserMapper.class); System.out.println("[注解]修改影响行数:"+userMapper.update(user2)); //提交 session.commit(); session.close(); } @Test public void testDelete() { SqlSessionFactory factory = MybatisUtils.getFactory(); SqlSession session = factory.openSession(true); String statement = "com.mybatis.crud.userMapper.deleteUser"; System.out.println("[xml]删除影响行数:"+session.delete(statement,199)); IUserMapper userMapper = session.getMapper(IUserMapper.class); System.out.println("[注解]删除影响行数:"+userMapper.deleteById(198)); session.close(); } @Test public void testGetAllusers() { SqlSessionFactory factory = MybatisUtils.getFactory(); SqlSession session = factory.openSession(true); String statement = "com.mybatis.crud.userMapper.getAllUsers"; Listusers = session.selectList(statement); System.out.println("[xml]查询用户列表:"+users); IUserMapper userMapper = session.getMapper(IUserMapper.class); System.out.println("[注解]查询用户列表:"+userMapper.getAll()); session.close(); }}
至此,一个基于mybatis的简单增删改就完成了,不过建议在阅读这篇文章的时候先将入门篇看一遍就可以了。