Mybatis实现增删改查

​1、CRUD
1.1namespace
namespace中的包名必须和Dao/mapper接口包名一致
1.2select
选择,查询语句

id:就是对应的namespace中的方法名
resultType:Sql语句执行的返回值类型
parameterType:参数类型

编写接口

User getUserById(int id);

编写接口对应的Mapper中语句

测试:

@Test
    public void getUserById() {
        //获得sqlSession对象
        SqlSession sqlsession = MybatisUtil.getSqlsession();
        //执行SQL
        UserMapper mapper = sqlsession.getMapper(UserMapper.class);
        User user = mapper.getUserById(1);
        System.out.println(user);
        //关闭sqlSession
        sqlsession.close();
    }

1.3Insert



        insert into mybatis.user (id, name, pwd) values (#{id},#{name},#{pwd})

1.4update


        update mybatis.user set name = #{name},pwd = #{pwd} where id = #{id}

1.5delete


        delete from mybatis.user where id = #{id}

注意点:增删改查需要提交事务
分许错误:

标签不要匹配错误:例如:select标签中必须写select语句
resources绑定mapper,需要使用路径
程序配置文件必须符合规范!
NullPointException,没有注册到资源!
输出的xml文件中存在中文乱码问题
maven资源没有导出问题!
mybatis核心配置文件中mapper映射器路径不能带.,需要用/代替


    

2、Map和模糊查询拓展
2.1假设我们的实体类、或者数据库中的表、字段或者参数过多,我们应该考虑使用Map!


        insert into mybatis.user (id, name, pwd) values (#{userId},#{userName},#{userPwd})
public void addUser2() {
        //获得sqlSession对象
        SqlSession sqlsession = MybatisUtil.getSqlsession();
        UserMapper mapper = sqlsession.getMapper(UserMapper.class);
        HashMap userMap = new HashMap();
        userMap.put("userId",10);
        userMap.put("userName","11234");
        userMap.put("userPwd","1234343");
        int result = mapper.addUserMap(userMap);
        if(result>0){
            System.out.println("插入成功");
        }
        //提交事务
        sqlsession.commit();
        //关闭sqlSession
        sqlsession.close();
   }

Map传递参数,直接在sql中取出对象即可
对象传递参数,直接在sql中取对象的属性即可
只有一个基本类型参数的情况下,可以直接在sql取到!
多个参数用Map,或者注解!
2.2模糊查询
1、Java代码执行的时候,传递通配符% %

List userLike = mapper.getUserLike("%李%");

2、在sql拼接中使用通配符!

 

你可能感兴趣的:(Mybatis实现增删改查)