3.CRUD--增删改查

1.namespace
    namespace中的包名要和Dao/Mapper接口的包名一致!

2.select
    选择,查询语句
    id:对应namespace中的方法名
    resultType:sql执行的返回类型
    parameterType:参数的类型
    
    1.编写接口

//查询
List<User> getUserList();    

  
    2.在对应Mapper.xml中实现接口(编写sql语句)     

<mapper namespace="com.zuo.dao.userMapper">
    <select id="getUserList" resultType="com.zuo.entity.User" >
        select * from mybatis.user
    </select>
</mapper>


    3.测试
        

@Test
public void test(){
    //1.获取sqlSession对象
    SqlSession sqlSession = MyBatisUtils.getSqlSession();
    //获取对应的接口
    userMapper mapper = sqlSession.getMapper(userMapper.class);
    List<User> userList = mapper.getUserList();
    for (User user:userList) {
        System.out.println(user);
    }
    //关闭sqlSession对象
    sqlSession.close();
}


3.Insert
    userMapper.java

//添加
int addUser(User user);


    userMapper.xml
        

<insert id="addUser" parameterType="com.zuo.entity.User">
     Insert into mybatis.user values(#{id},#{name},#{pwd})
</insert>


    UserDaoTest.java
        

@Test
public void addUser(){
    //获取执行sql的对象 sqlSession
    SqlSession sqlSession = MyBatisUtils.getSqlSession();
    //获取接口
    userMapper mapper = sqlSession.getMapper(userMapper.class);
    mapper.addUser(new User(4, "haha", "123456"));
    //提交事务
    sqlSession.commit();
    //关闭sqlSession
    sqlSession.close();
}


4.Update
5.Delete

6.万能的Map
    假设,实体类的或数据库中的表,字段和参数过多,考虑使用Map!
    当进行修改某一些字段时,考虑使用Map!

int updateUser2(Map<String,Object> map);

<update id="updateUser2" parameterType="map">
   update mybatis.user set name=#{name} where id=#{id}
</update>

@Test
public void updateUser2(){
    SqlSession sqlSession = MyBatisUtils.getSqlSession();
    userMapper mapper = sqlSession.getMapper(userMapper.class);
    Map<String, Object> map = new HashMap<>();
    map.put("id",3);
    map.put("name","wangwu");
    int i = mapper.updateUser2(map);
    System.out.println("受影响的行数:"+i);
    sqlSession.commit();
    sqlSession.close();
}


    Map传递参数,直接在sql中取出key即可!
    对象传递参数,直接在sql中取对象的属性即可!
    只有一个基本类型参数的情况下,可以直接在sql中取到!
    多个参数用Map,或者是注解!!
    
7.模糊查询
    1.Java代码执行的时候,传递通配符%%
        List<User> userList = mapper.getUserLike("%李%");
    2.在sql拼接中使用通配符!(防止sql注入问题)
        select * from mybatis.user where name Tike "%#{value}%"


注意:
    (1)增删改需要提交事务 ---> sqlSession.commit();
    (2)其中#{参数名}是提取数据的作用,参数是对象#{对象的属性名}

 

posted on   人无远虑必有近忧  阅读(62)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示