修改字段
Client.java

package client;import java.io.*;
import java.util.List;
import org.apache.ibatis.io.*;
import org.apache.ibatis.session.*;
import domain.*;public class Client {public static void main(String args[]) throws IOException {InputStream in = Resources.getResourceAsStream("mybatis-config.xml");SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);SqlSession sqlSession = factory.openSession(true);Employee emp = new Employee();emp.setUsername("王朝 ");emp.setPassword("999");sqlSession.update("updateEmployeeByUsername", emp);List<Employee> list = sqlSession.selectList("findEmployees");System.out.println("Modify password :");for (Employee em : list)System.out.println("Username: " + em.getUsername() + " Sex :" + em.getSex() + " Password :" + em.getPassword());emp = new Employee();emp.setUsername("王朝 ");emp.setSex(9);sqlSession.update("updateEmployeeByUsername", emp);list = sqlSession.selectList("findEmployees");System.out.println("Modify sex :");for (Employee em : list)System.out.println("Username: " + em.getUsername() + " Sex :" + em.getSex() + " Password :" + em.getPassword());emp.setPassword("888");emp.setSex(8);sqlSession.update("updateEmployeeByUsername", emp);list = sqlSession.selectList("findEmployees");System.out.println("Modify password and sex :");for (Employee em : list)System.out.println("Username: " + em.getUsername() + " Sex :" + em.getSex() + " Password :" + em.getPassword());sqlSession.close();}
}

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="/"><select id="findEmployees" resultType="domain.Employee">select * from employee3</select><update id="updateEmployeeByUsername"parameterType="domain.Employee"><trim prefix="update employee3 set" suffixOverrides=","suffix="where username=#{username}"><if test="password!=null">password=#{password},</if><if test="sex!=null">sex=#{sex},</if></trim></update></mapper>

employee3表:

查询结果:

trim标签中的suffixOverrides会自动判断后缀是否覆盖

查询字段
Client.java

package client;import java.io.*;
import java.util.List;
import org.apache.ibatis.io.*;
import org.apache.ibatis.session.*;
import domain.*;public class Client {public static void main(String args[]) throws IOException {InputStream in = Resources.getResourceAsStream("mybatis-config.xml");SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);SqlSession sqlSession = factory.openSession(true);Employee emp = new Employee();emp.setUsername("赵虎");Employee em = sqlSession.selectOne("findEmployeeByParam", emp);System.out.println("username is 赵虎  :");System.out.println("Username: " + em.getUsername() + " Sex :" + em.getSex() + " Password :" + em.getPassword());emp = new Employee();emp.setPassword("333");em = sqlSession.selectOne("findEmployeeByParam", emp);System.out.println("password is 333  :");System.out.println("Username: " + em.getUsername() + " Sex :" + em.getSex() + " Password :" + em.getPassword());sqlSession.close();}
}

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="/"><select id="findEmployeeByParam" parameterType="domain.Employee"resultType="domain.Employee">select * from employee3<trim prefix="where" prefixOverrides="and"><if test="password!=null">password=#{password}</if><if test="username!=null">username=#{username}</if></trim></select>
</mapper>

查询结果:

trim标签中的prefixOverrides会自动判断前缀是否覆盖

MyBatis框架使用trim标签修改字段,查询字段相关推荐

  1. 技巧:MyBatis 中的trim标签,好用!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者 | wt_better 来源 | https://blog. ...

  2. MyBatis 中的trim标签介绍

    mybatis的trim标签一般用于去除sql语句中多余的and关键字,逗号,或者给sql语句前拼接 "where"."set"以及"values(& ...

  3. MyBatis 中的trim标签

    mybatis的trim标签一般用于去除sql语句中多余的and关键字,逗号,或者给sql语句前拼接 "where"."set"以及"values(& ...

  4. mybatis框架中的queryWrapper的or查询,联想到MySQL中and 和or的关系

    统计的原生SQL应该是这样的: SELECTCOUNT( 1 ) FROMtable_name WHERE( id = '679135XXXXXXX1212' AND ( STATUS = 1 OR ...

  5. 【MyBatis框架】高级映射-多对多查询

    多对多查询 1.需求 查询用户及用户购买商品信息. 2.sql语句 查询主表是:用户表 关联表:由于用户和商品没有直接关联,通过订单和订单明细进行关联,所以关联表: orders.orderdetai ...

  6. 【MyBatis框架】高级映射-一对多查询

    前面学习了一对一的查询,现在我们在刚才的数据模型基础上进行一对多的查询. 一对多查询 1.需求 查询订单及订单明细的信息. 2.sql语句 确定主查询表:订单表 确定关联查询表:订单明细表 在一对一查 ...

  7. Springboot中使用Mybatis框架对数据库进行联表查询,踩坑填坑

    因为mybatis使用的基本是原生sql语句 所以首先从数据库开始说 以mysql数据库为例,对表的连接查询分为四种 内连接,外连接,交叉连接,和联合连接 内连接使用比较运算符根据每个表共有的列的值匹 ...

  8. MyBatis框架的搭建以及使用教程

    MyBatis文章目录 Mybatis框架的搭建以及使用教程 目录 MyBatis文章目录 前言 一.Mybatis框架搭建步骤 第一步:准备工作 1.下载并添加MyBatis依赖包 2.创建数据库表 ...

  9. Django(part25)--字段查询

    学习笔记,仅供参考 数据库的操作(CRUD操作) 字段查询 字段查询是指指定SQL语句中利用WHERE子句进行查询,字段查询需要通过QuerySet的filter(), exclude() 和 get ...

最新文章

  1. SQL操作语句之查询及删除重复记录的方法
  2. Android判断网络连接是否可用【从新浪云搬运】
  3. 【JavaSE01】初识Java-思维导图
  4. 初学者应该看看的6个free命令例子
  5. sp_addlinkedserver (Transact-SQL)
  6. 利用HttpClient 获取网页数据java代码模版
  7. java多线程写在哪一层_面试知识点三:Java多线程
  8. 怎么更改AD域用户账号和密码_AD域管理中那些实用的软件
  9. linux安装google浏览器
  10. python二维随机游走_Python模拟随机游走图形效果示例
  11. IC基础——FIFO
  12. laravel8 改变分页样式
  13. Word embeddings in 2017: Trends and future directions (2017年里的词嵌入:趋势和未来方向)
  14. php高强度薄壁金属复合管,PHP高强度薄壁金属复合管承插快速连接装置
  15. raid5常见故障数据恢复方法/服务器数据恢复常用方法
  16. 邮件服务器邮件群发几个技巧
  17. Spring JdbcTemplate2-update和query
  18. 如何写一份优秀的 Java 程序员简历,从而提升面试机会?
  19. 申请高新技术企业有什么好处?高企认证有什么奖励?
  20. telnet重启计算机,win7系统重启Telnet命令的操作方法

热门文章

  1. 程序员面向软件开发时,如何成功?
  2. 他是浙大 19 岁大一新生,三个月斩获 WWDC 19 奖学金!
  3. 华为全球注册“hongmeng”商标;库克回应“封杀苹果”;Android Studio 3.5 Beta 4发布 | 极客头条...
  4. 中国以 34% 的 5G 专利完胜美国、芬兰和韩国!
  5. 京东淘汰“三类人”,近 18 万员工懵了?!
  6. 小心!你的脸正在成为色情片主角
  7. 水逆的美团滴滴与头条
  8. IBM 推出世界最小电脑,应用区块链技术防偷骗!
  9. linux环境下装mq,ActiveMQ下载与安装(Linux环境下进行)
  10. 取二维数组最大值_学习Java,你必需要知道这些——Java数组