首页 > 其他分享 >3.CRUD--增删改查

3.CRUD--增删改查

时间:2023-01-04 00:55:06浏览次数:31  
标签:mapper Map -- userMapper CRUD sqlSession user sql 改查

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)其中#{参数名}是提取数据的作用,参数是对象#{对象的属性名}

 

标签:mapper,Map,--,userMapper,CRUD,sqlSession,user,sql,改查
From: https://www.cnblogs.com/zuok/p/17023804.html

相关文章

  • Node.js
    @目录Node.js引入环境安装以及测试fs文件系统模块读取文件写入内容path路径模块http模块模块化npm与包包包的下载npm初体验模块的加载机制Express初识ExpressExpress的基本......
  • Apache HTTPD 换行解析漏洞(CVE-2017-15715)
    1.漏洞原理ApacheHTTPD是一款HTTP服务器,它可以通过mod_php来运行PHP网页。其2.4.0~2.4.29版本中存在一个解析漏洞,在解析PHP时,a.php\x0a将被按照PHP后缀进行解析,导致绕过......
  • RR隔离级别是否能彻底解决幻读问题
    文章目录前一、幻读是什么?二、建立表和插入数据测试1.建表2.测试幻读1.快照读场景【即没有数据更新的场景】2.当前读场景3.当前读,插入区间外的数据,插入区间外的......
  • Android笔记--如何在Android studio里面打开数据库
    具体操作1、找到界面内的DeviceFileExplorer这里找可以;这里直接打开也行2、在里面找到与java下面的第一个package名称相同的文件夹3、找到下面的databases会看......
  • 猫狗大战 数据集 下载
    猫狗大战数据集下载,主要用于学习CNN等网络结构,有问题也可以与我交流,一起学习。 关注公众号:后厂村搬砖工。发送:猫狗大战即可    ......
  • 在线客服系统实现消息声音提醒效果 - 在线客服系统源码
    在在线客服系统中实现消息声音提醒效果可以带来许多好处,包括:改善用户体验:通知声音可以帮助提醒用户有新消息,鼓励他们及时回复,提高整体用户体验。提高生产率:通过提醒......
  • safety-gym 环境配置
    safety-gym safety-gym的安装还是相当繁琐的,这里记录一下如何在linux系统上配置safety-gym  1.到mojuco官网下载mujoco200的压缩包和密钥 mujoco200压缩......
  • Ubuntu使程序脱离终端运行
    应用场景:远程登陆Linux服务器运行模型训练代码,如果关闭本地终端则服务器代码中断运行!目标操作:在本地终端运行服务器代码,当关闭终端时代码能够继续在服务器上运行,且再次打......
  • 搭建个人Leanote云笔记本
    Leanote是目前为止发现的最有bigger的云笔记,具备markdown输入,代码高亮,多人协作,笔记历史记录,笔记内导航,直接发布为博客等等能力。下载启动MongoDBLeanote依赖MongoDB......
  • 程序员的数学 电子书 pdf
    共三本书,分别侧重离散组合、概率统计、线性代数,供大家参考学习。《程序员的数学》《程序员的数学2:概率统计》《程序员的数学3:线性代数》 关注公众号:后厂村搬砖工......