UserMapper.xml中namespace的值要与mapper.java的完全限定地址一样
<?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="zzu.qg.mybatis.dao.UserMapper"> <select id="findUserById" parameterType="int" resultType="zzu.qg.mybatis.entity.User"> select * from [user] where id=#{value} </select> <insert id="insertUser" parameterType="zzu.qg.mybatis.entity.User"> insert into [user] values(#{userName},#{password},#{sex},#{birthday}) </insert> </mapper>UserMapper.java 方法名,,输入参数类型,,返回值类型
public interface UserMapper { public User findUserById(int id); public void insertUser(User user); }测试类
public class TestUserDao { private SqlSessionFactory sqlSessionFactory; private InputStream inputStream; @Before public void initSqlSessionFactory(){ String resource="config/mybatis/mybatis-config.xml"; try { inputStream = Resources.getResourceAsStream(resource); } catch (IOException e) { e.printStackTrace(); } sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream); } @Test public void testFindUserById(){ SqlSession sqlSession=sqlSessionFactory.openSession(); //将mapper接口的字节码对象当作参数传给sqlSession.getMapper(),sqlSession自动创建mapper接口的代理对象 UserMapper userMapper=sqlSession.getMapper(UserMapper.class); User user=userMapper.findUserById(1); System.out.println(user); sqlSession.close(); } @Test public void testInsertUser(){ SqlSession sqlSession=sqlSessionFactory.openSession(); //将mapper接口的字节码对象当作参数传给sqlSession.getMapper(),sqlSession自动创建mapper接口的代理对象 UserMapper userMapper=sqlSession.getMapper(UserMapper.class); User user=new User("张三","suibianle","女","2000-9-23"); userMapper.insertUser(user); sqlSession.commit(); System.out.println(user.getId()); sqlSession.close(); } }定义完mapper映射文件后,接下来就要开发mapper接口,编写mapper接口需要遵循以下四个基本规范:
1、在mapper.xml中namespace的值等于mapper接口的完全限定地址
2、mapper.java中的方法名要与mapper.xml的statement的id一致
3、mapper.java中的方法输入参数类型要与mapper.xml的parameterType的类型一致
4、mapper.java中的返回值类型要与mapper.xml的resultType的类型一致(注意:resultType指的是返回单个结果的类型)
执行结果:
执行testFindUserById时
执行insertUser时