代理开发方式
代理的方式是将 UserMapper.xml 的命名空间指向 UserDao 接口的全限定名,不需要写UserDaoImpl实现类.并修改执行语句为:
复制复制复制复制
复制
UserDao userDao = sqlSession.getMapper(UserDao.class);
修改后的UserMapper.xml
复制复制复制
复制
<?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="com.itheibai.dao.UserDao">
<!--查询用户-->
<select id="findAll" resultType="user">
select * from user
</select>
<!--插入用户-->
<insert id="save" parameterType="user">
insert into user values (#{id},#{username},#{password})
</insert>
<!--更新用户-->
<update id="updateById" parameterType="user">
update user set username=#{username},password=#{password} where id=#{id}
</update>
<!--删除用户-->
<delete id="deleteById" parameterType="Integer">
delete from user where id=#{id}
</delete>
</mapper>
测试dao层代理
复制复制
复制
package com.itheibai.service;
import com.itheibai.dao.UserDao;
import com.itheibai.entity.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class ServiceDemo {
public static void main(String[] args) throws IOException {
InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
UserDao userDao = sqlSession.getMapper(UserDao.class);
List<User> all = userDao.findAll();
System.out.println(all);
}
}
此时的目录结构

点击阅读余下全文
评论前必须登录!
注册