mybatis 开发dao层(基于接口代理的方式)

1、定义dao的接口

public interface Usermapper {
	//根据id查询用户信息
	public User getUserById(int id);			
	//插入用户信息
	public void insertUser(User user);
}

2、定义mapper的配置文件(不要忘记在SqlMapConfig.xml加载这个配置文件)

<mapper namespace="mybatis.mapper.Usermapper">
	<select id="getUserById" parameterType="int" resultType="mybatis.domain.User">
		select * from user where id=#{id}
	</select>

	<!-- 添加用户 -->
	<insert id="insertUser" parameterType="mybatis.domain.User">
		insert into user(username,birthday,sex,address)
		VALUES(#{username},#{birthday},#{sex},#{address})
	</insert>
</mapper>

在SqlMapConfig.xml中加载上述文件

  <mappers>
  <mapper resource="Usermapper.xml"/>
  </mappers>

重点强调四个规范:

(1)namespace ======== 接口的类路径名称一致

(2)sql语句的id  ======== 接口中方法的名称保持一致

(3)parameterType ======接口中方法的输入参数类型一致

(4)resultType =========接口中方法的返回值类型保持一致

3、编写单元测试

(1)加载核心配置文件

(2)创建sqlSessionFactory

(3)创建sqlSession

(4)获取代理对象(UserMapper接口的代理对象)---------和原来不一样的地方

(5)调用接口代理对象的方法

(6)关闭sqlSession

	InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");	
	SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);	
	SqlSession sqlSession = sqlSessionFactory.openSession();
	//获取代理对象(UserMapper接口的代理对象)
	Usermapper userMapper = sqlSession.getMapper(Usermapper.class);	
	User user = userMapper.getUserById(31);
	System.out.println(user);	
	sqlSession.close();

猜你喜欢

转载自blog.csdn.net/qicui2835/article/details/80785821