当写修改的方法时,里面的参数是个User对象,那么在UserMappwe.xml中values中要和对象的属性名相对应,并且需要创建对象,输入它的多个属性值需要更改的进行修改,比较麻烦,就可以考虑使用map

重复的代码不在写,只写更新过的:6. 7. 8.

UserDAO:

package com.kuang.dao;import com.kuang.pojo.User11;import java.util.List;
import java.util.Map;public interface UserDao {//查询所有用户List<User11> getUserList();//2.根据id查询User11 getUserById(int id);//3.添加一个用户int addUser(User11 user11);//4.修改用户int updateUser(User11 user11);//5.删除一个用户int deleteUser(int id);//6.万能的Map,添加用户int addUser2(Map<String,Object> map);//7.万能Map,查询用户User11 getUserById2(Map<String,Object> map);//8.模糊查询List<User11> getUserLike(String value);
}

UserMappper.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.kuang.dao.UserDao"><!--使用insert,update,delete,select标签来写sql语句resultType="com.kuang.pojo.User11":返回数据的类型--><select id="getUserList" resultType="com.kuang.pojo.User11">select * from mybatis.user11</select>
<!--    2.根据id查询--><select id="getUserById" parameterType="int" resultType="com.kuang.pojo.User11">select * from mybatis.user11 where id=#{id}</select><!--    3.插入一条数据,对象中的属性可直接取出来 ,如果parameterType传递的是User11对象,则values必须和对象的属性名一样--><insert id="addUser" parameterType="com.kuang.pojo.User11">insert into mybatis.user11(id,name,pwd) values (#{id},#{name},#{pwd});</insert><!--    4.修改用户--><update id="updateUser" parameterType="com.kuang.pojo.User11">update mybatis.user11 set name=#{name},pwd=#{pwd} where id=#{id};</update><!--    5.删除用户--><delete id="deleteUser" parameterType="int">delete from mybatis.user11 where id=#{id}</delete>
<!--    6.万能的Map来添加用户 如果parameterType是map,values中可以随便,命名要和map的key对应就行,传递Map的key--><insert id="addUser2" parameterType="map">insert into mybatis.user11(id,name,pwd) values (#{userid},#{username},#{password});</insert><!--    7.万能Map来查询数据--><select id="getUserById2" parameterType="map" resultType="com.kuang.pojo.User11">select * from mybatis.user11 where id=#{userid} and name=#{username};</select><!--    8.迷糊查询第一种select * from mybatis.user11 where name like #{value}
--><select id="getUserLike" resultType="com.kuang.pojo.User11">select * from mybatis.user11 where name like "%"#{value}"%"</select>
</mapper>

UserDAOTest:

package com.kuang.dao;import com.kuang.dao.UserDao;
import com.kuang.pojo.User11;
import com.kuang.utils.MybaitsUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;import java.util.HashMap;
import java.util.List;
import java.util.Map;public class UserDAOTest {//测试查询所有用户@Testpublic void test(){//第一步:获取SqlSession对象SqlSession sqlSession= MybaitsUtils.getSqlSession();//方式一:getMapper  获取代理对象daoUserDao userDao=sqlSession.getMapper(UserDao.class);List<User11> user11List=userDao.getUserList();//方式二:不推荐使用// List<User11> user11List = sqlSession.selectList("com.kuang.dao.UserDao.getUserList");for (User11 user:user11List){System.out.println(user);}//关闭SqlSessionsqlSession.close();}//2.根据id查询@Testpublic void getUserByid(){//第一步:获取SqlSession对象SqlSession sqlSession= MybaitsUtils.getSqlSession();//方式一:getMapper  获取代理对象daoUserDao userDao=sqlSession.getMapper(UserDao.class);User11 user11=userDao.getUserById(1);System.out.println(user11);sqlSession.close();}//3.插入一条数据,增删改,需要提交事务@Testpublic void addUser(){//第一步:获取SqlSession对象SqlSession sqlSession= MybaitsUtils.getSqlSession();//方式一:getMapper  获取代理对象daoUserDao userDao=sqlSession.getMapper(UserDao.class);int res=userDao.addUser(new User11(4,"哈哈","123456"));if (res>0){System.out.println("插入成功");}//提交事务sqlSession.commit();sqlSession.close();}//4.修改用户信息@Testpublic void updateUser(){//第一步:获取SqlSession对象SqlSession sqlSession= MybaitsUtils.getSqlSession();//方式一:getMapper  获取代理对象daoUserDao userDao=sqlSession.getMapper(UserDao.class);int res=userDao.updateUser(new User11(4,"呵呵","123"));if (res>0){System.out.println("修改成功");}//提交事务sqlSession.commit();sqlSession.close();}//5.根据id删除用户@Testpublic void deleteUser(){//第一步:获取SqlSession对象SqlSession sqlSession= MybaitsUtils.getSqlSession();//方式一:getMapper  获取代理对象daoUserDao userDao=sqlSession.getMapper(UserDao.class);int res=userDao.deleteUser(4);if (res>0){System.out.println("删除成功");}//提交事务sqlSession.commit();sqlSession.close();}//6.万能的Map来添加一条数据@Testpublic void addUser2(){//第一步:获取SqlSession对象SqlSession sqlSession= MybaitsUtils.getSqlSession();//方式一:getMapper  获取代理对象daoUserDao userDao=sqlSession.getMapper(UserDao.class);Map<String,Object> map=new HashMap<String, Object>();map.put("userid",5);map.put("username","hellow");map.put("password","123");int res = userDao.addUser2(map);if (res>0){System.out.println("插入成功");}//提交事务sqlSession.commit();sqlSession.close();}//7.万能的Map来查询数据@Testpublic void getUserById2(){//第一步:获取SqlSession对象SqlSession sqlSession= MybaitsUtils.getSqlSession();//方式一:getMapper  获取代理对象daoUserDao userDao=sqlSession.getMapper(UserDao.class);Map<String,Object> map=new HashMap<String, Object>();map.put("userid",5);map.put("username","hellow");User11 userById2 = userDao.getUserById2(map);System.out.println(userById2);sqlSession.close();}//8.模糊查询@Testpublic void getUserLike(){//第一步:获取SqlSession对象SqlSession sqlSession= MybaitsUtils.getSqlSession();//方式一:getMapper  获取代理对象daoUserDao userDao=sqlSession.getMapper(UserDao.class);//List<User11> user11List=userDao.getUserLike("%李%");List<User11> user11List=userDao.getUserLike("李");for (User11 user11 : user11List) {System.out.println(user11);}sqlSession.close();}}

6.

7.

8.

MyBatis:万能Map和模糊查询(狂神)相关推荐

  1. Mybatis基础学习之万能的Map和模糊查询

    前言: 小伙伴们,大家好,我是狂奔の蜗牛rz,当然你们可以叫我蜗牛君,我是一个学习Java半年多时间的小菜鸟,同时还有一个伟大的梦想,那就是有朝一日,成为一个优秀的Java架构师. 这个Mybatis ...

  2. key map 模糊查找_使用Map和模糊查询

    Map和模糊查询 在某些时候我们只需要给MyBatis传递几个参数而不是一个完整的对象,如仅仅update表中的两三个属性.此时parameterType设置为一个pojo显然不合适.可以考虑使用Ma ...

  3. MyBatis注解实现like模糊查询

    问题描述 SpringBoot下使用mybatis注解方式进行模糊查询时发生错误,结果报错:Parameter index out of range (1 > number of paramet ...

  4. 【Mybatis+springBoot】实现模糊查询

    [Mybatis+springBoot]实现模糊查询 pojo 数据库 Mapper接口类 Service ServiceImpl Mapper.xml配置文件 Controller 测试 参考资料 ...

  5. MyBatis中万能的Map和模糊查询

    文章目录 1.假设实体类或者数据库中的表的字段过多,应当考虑使用Map 2.使用Map,可以不用把表的属性全写出来,只要写需要的属性 3.模糊查询 Map传递参数,直接在sql中取出key即可 对象传 ...

  6. Mybatis中(#{ })模糊查询like(使用oracle的concat函数嵌套拼接SQL)

    需求: 模糊查询需要左右各拼接一个'%',如:like %key% . 项目情况: mybatis中动态传参一般采用占位符#{key}.使用数据库:orecle. 错误的尝试: 尝试使用: like ...

  7. mybatis学习之路----模糊查询实现

    点滴记载,点滴进步,愿自己更上一层楼. 废话不多说,进入主题. 项目还是在上篇  mybatis学习之路----非代理方式的增删改查用法 基础之上进行开发 一个简单的模糊查询sql. SELECT * ...

  8. Mybatis学习笔记6 模糊查询like

    1.模糊 like 模糊查询的实现有两种方式, 一是java代码中给查询数据加上"%"; 二是在mapper文件sql语句的条件位置加上"%". 需求:查询姓名 ...

  9. @MyBatis注解实现动态模糊查询

    @使用MyBatis注解的方式实现动态模糊且多表查询 一.使用环境及基本信息: 1.项目环境及框架:JDK1.8 + Maven + SpringBoot + MyBatis 2.使用的插件:TkMa ...

最新文章

  1. 物联网架构成长之路(3)-EMQ消息服务器了解
  2. hdu5384(AC自动机+纪录重复单词出现的次数)
  3. JS中的Math.ceil和Math.floor函数的用法
  4. 干不掉的钉钉:从哪来,往哪去?
  5. win10 vscode 无法激活python 虚拟环境的解决办法
  6. 陈国良院士将出席“首届对象存储技术与应用大会”
  7. 基于深度卷积神经网络的玉米病害识别
  8. Kubernetes之持久化存储
  9. 11月热门下载资源TOP100强力推荐!
  10. springmvc jsp java_java-jsp springmvc-controller 传值到页面的方法
  11. 深度卷积神经网络是什么,卷积神经网络结构设计
  12. 笔记本电脑设置WIFI热点(解决:校园网一个账号只能一台设备登录)
  13. mysql 创建utf-8数据库_mysql 创建utf-8数据库
  14. 离散数学中求合取范式析取范式
  15. 【金融项目】尚融宝项目(七)
  16. 原生JS如何在在指定位置插入元素,前面、后面
  17. 那些在一个公司死磕了5-10年的人,最后都怎么样了?
  18. 手机尾号(%d的深度使用)
  19. CHAP7 软件项目进度计划
  20. oracle 分区表 变大,Oracle11G新特性:分区表分区默认segment大小64k变为8M

热门文章

  1. 鸿蒙手机会在千元机吗,鸿蒙OS升级计划表曝光,华为千元机也有份!
  2. Cibersort 算法 分析肿瘤样本免疫细胞组分
  3. iPhone的来电铃声
  4. raptor流程图编程
  5. weblogic10 配置 domian
  6. Unity | 基础逻辑
  7. java倒序查询数据库_数据库 倒序查询
  8. Android开发者上手宝典(三)
  9. Python爬虫爬取纵横中文网小说
  10. python宣传海报_用Python做一个令人发疯的海报