美文网首页
mapper代理

mapper代理

作者: 李洋codingfarmer | 来源:发表于2018-11-28 19:11 被阅读0次

配置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.neuedu.day02.mapper.UserMapper">
<select id="findUserById" parameterType="int" resultType="user">
select * from t_user where user_id = #{user_id}
</select>
</mapper>

接口(四种配对原则)

public interface UserMapper {
    //第一种mapper代理,保留xml
    public User findUserById(int id);
  //第二种mapper代理,添加注释
    @Select("select * from t_user where user_id = #{user_id}")
    public User selectUserById(int id);
    @Insert("insert into t_user(user_id,user_name,user_pwd,user_email,user_idcard,user_power) values (null,#{user_name},#{user_pwd},#{user_email},#{user_idCard},#{user_power})")
    public int insertUser(User user);
    @Update("update t_user set user_name=#{user_name},user_pwd=#{user_pwd},user_email=#{user_email},user_idcard=#{user_idCard} where user_id=#{user_id}")
    public int updateUser(User user);
    @Delete("delete  from t_user where user_id=#{user_id}")
    public int deleteUser(int id);}

sqlmapconfig.xml (mapper 终极 整包扫描)

   <mappers>
   <!-- 整包扫描 -->
   <package name="com.neuedu.day02.mapper"/>
   </mappers>

DaoImpl dao层实现类

    @Override
public User findUserById(int id) throws IOException {
     //第一步读取SqlMapConfig
      //指定文件位置
      //String resource="config/SqlMapConfig.xml";
      //读取资源文件
      //InputStream input=Resources.getResourceAsStream(resource);
      //获取SqlSessionFactory
      //SqlSessionFactory factory= new SqlSessionFactoryBuilder().build(input);
      //获取SqlSession
      SqlSession session=factory.openSession();
      //执行查询
      UserMapper userMapper=session.getMapper(UserMapper.class);
      User u=userMapper.findUserById(id);
      //关闭连接
      session.close();
      return u;
}


@Override
public int delUser(int id) throws IOException {
      //第一步读取SqlMapConfig
      //指定文件位置
      //String resource="config/SqlMapConfig.xml";
      //读取资源文件
      //InputStream input=Resources.getResourceAsStream(resource);
      //获取SqlSessionFactory
      //SqlSessionFactory factory= new SqlSessionFactoryBuilder().build(input);
      //获取SqlSession
      SqlSession session=factory.openSession();
      //执行查询
      int count=session.delete("user.delUser",6);
      System.out.println(count);
      //关闭连接
      session.close();
      return count;
}

@Override
public User selectUserById(int id) {
      SqlSession session=factory.openSession();
      //执行查询
      UserMapper userMapper=session.getMapper(UserMapper.class);
      User u=userMapper.selectUserById(id);
      //关闭连接
      session.close();
      return u;
    
}

@Override
public int insertUser(User user) {
      SqlSession session=factory.openSession();
      //执行查询
      UserMapper userMapper=session.getMapper(UserMapper.class);
      int count=userMapper.insertUser(user);
      //关闭连接
      session.close();
      return count;
}

@Override
public int updateUser(User user) {
    SqlSession session=factory.openSession();
      //执行查询
      UserMapper userMapper=session.getMapper(UserMapper.class);
      int count=userMapper.updateUser(user);
      //关闭连接
      session.close();
      return count;
}

@Override
public int deleteUserById(int id) {
    SqlSession session=factory.openSession();
      //执行查询
      UserMapper userMapper=session.getMapper(UserMapper.class);
      int count=userMapper.deleteUser(id);
      //关闭连接
      session.close();;
      return count;
}

测试类

   @Test
 public void testFind() throws IOException{
   IUserDao userDao=new UserDaoImpl(factory);
   User u=userDao.findUserById(1);
   System.out.println(u.getUser_name());
}
 @Test
 public void testSelect() throws IOException{
   IUserDao userDao=new UserDaoImpl(factory);
   User u=userDao.selectUserById(1);
   System.out.println(u.getUser_name());
}
 @Test
 public void testInsert() throws IOException{
   IUserDao userDao=new UserDaoImpl(factory);
   User user=new User();
   user.setUser_name("chenhao");
   user.setUser_pwd("654321");
   user.setUser_power(0);
   user.setUser_email("chenhao.newedu.com");
   user.setUser_idCard("210101200006061234");
   int count=userDao.insertUser(user);
   System.out.println(count);
}
 @Test
public void testUpdate() throws IOException{
   IUserDao userDao=new UserDaoImpl(factory);
   User user=new User();
   user.setUser_id(8);
   user.setUser_name("chenhao");
   user.setUser_pwd("123456");
   user.setUser_email("chenhao.newedu.com");
   user.setUser_idCard("210101200006061234");
   int count=userDao.updateUser(user);
   System.out.println(count);
}
@Test
public void testDelete() throws IOException{
   IUserDao userDao=new UserDaoImpl(factory);
   int count=userDao.deleteUserById(9);
   System.out.println(count);
}

相关文章

  • mapper代理

    配置usermapper.xml 接口(四种配对原则) sqlmapconfig.xml (mapper 终极 整...

  • Mapper代理开发

    Mapper代理开发 目的解决原生方式中的硬编码问题简化后期执行SQL 使用Mapper代理开发完成快速入门案例 ...

  • mybatis的mapper接口开发替代原始dao

    Mapper动态代理开发 原来dao接口和实现类用mapper接口替代 map映射xml文件和mapper接口的名...

  • Mybatis开发Dao的方式(二)

    一、Mapper代理开发方式(非常重要!!!) 思路: Mapper代理的开发方式,我们只需要写出dao层的接口即...

  • MyBatis(五): 手写Insert

    1. 定义Mapper接口 2. 动态代理执行Mapper接口方法 自定义InvocationHandler 自定...

  • mybatis开发dao的动态代理

    Mapper动态代理方式 1、实现原理 Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口...

  • MyBatis(二)Mapper代理、SqlMapConfig.

    一 Mapper代理 之前的形式开发不方便,也不利于维护。mybatis提供了Mapper动态代理我们只需要写da...

  • 动态代理Mapper

  • Mybatis

    Mybatis 博客链接 本文主要对Mybatis中启动流程、Mapper解析、Mapper代理、四大对象、SQL...

  • Mybatis

    Mybatis 博客链接 本文主要对Mybatis中启动流程、Mapper解析、Mapper代理、四大对象、SQL...

网友评论

      本文标题:mapper代理

      本文链接:https://www.haomeiwen.com/subject/agbzqqtx.html