配置bean Employee.java

package org.apwla.domain;import java.io.Serializable;public class Employee implements Serializable {private Integer id;private String loginname;private String password;private String name;private String sex;private String age;private String phone;private String sal;private String state;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getLoginname() {return loginname;}public void setLoginname(String loginname) {this.loginname = loginname;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public String getSal() {return sal;}public void setSal(String sal) {this.sal = sal;}public String getState() {return state;}public void setState(String state) {this.state = state;}@Overridepublic String toString() {return "Employee [id=" + id + ", loginname=" + loginname+ ", password=" + password + ", name=" + name + ", sex=" + sex+ ", age=" + age + ", phone=" + phone + ", sal=" + sal+ ", state=" + state + "]";}
}

配置接口EmployeeMapper.java

package org.apwla.mapper;import java.util.HashMap;
import java.util.List;
import java.util.Map;import org.apwla.domain.Employee;public interface EmployeeMapper {List<Employee> selectEmployeeByIdLike(HashMap<String, Object> params);List<Employee> selectEmployeeByLoginLike(HashMap<String, Object> params);List<Employee> selectEmployeeChoose(HashMap<String, Object> params);List<Employee> findEmployeeLike(HashMap<String, Object> params);List<Employee> selectEmployeeLike(HashMap<String, Object> params);Employee selectEmployeeWithId(Integer id);void updateEmployeeIfNecessary(Employee employee);List<Employee> selectEmployeeIn(List<Integer> ids);List<Employee> selectEmployeeLikeName(Employee employee);}

配置mybatis-config.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">
<!-- namespace指用户自定义的命名空间。 -->
<mapper namespace="org.apwla.mapper.EmployeeMapper"><select id="selectEmployeeWithId" parameterType="int"resultType="org.apwla.domain.Employee">SELECT * FROM tb_employee where id = #{id}</select><!-- if --><select id="selectEmployeeByIdLike" resultType="org.apwla.domain.Employee" parameterType="java.util.HashMap">SELECT * FROM tb_employee WHERE state = 'ACTIVE'<!-- 可选条件,如果传进来的参数有id属性,则加上id查询条件 --><if test="id != null ">and id = #{id}</if></select><!-- if --><select id="selectEmployeeByLoginLike" resultType="org.apwla.domain.Employee">SELECT * FROM tb_employee WHERE state = 'ACTIVE'<!-- 两个可选条件,例如登录功能的登录名和密码查询 --><if test="loginname != null and password != null">and loginname = #{loginname} and password = #{password}</if></select><!-- choose(when、otherwise) --><select id="selectEmployeeChoose" parameterType="hashmap"resultType="org.apwla.domain.Employee">SELECT * FROM tb_employee WHERE state = 'ACTIVE'<!-- 如果传入了id,就根据id查询,没有传入id就根据loginname和password查询,否则查询sex等于男的数据 --><choose><when test="id != null">and id = #{id}</when><when test="loginname != null and password != null">and loginname = #{loginname} and password = #{password}</when><otherwise>and sex = '男'</otherwise></choose></select><select id="findEmployeeLike" resultType="org.apwla.domain.Employee">SELECT * FROM tb_employee<where><if test="state != null ">state = #{state}</if><if test="id != null ">and id = #{id}</if><if test="loginname != null and password != null">and loginname = #{loginname} and password = #{password}</if></where></select><!-- where --><select id="selectEmployeeLike" resultType="org.apwla.domain.Employee">SELECT * FROM tb_employee<where><if test="state != null ">state = #{state}</if><if test="id != null ">and id = #{id}</if><if test="loginname != null and password != null">and loginname = #{loginname} and password = #{password}</if></where></select><!-- set --><update id="updateEmployeeIfNecessary" parameterType="org.apwla.domain.Employee">update tb_employee<set><if test="loginname != null">loginname=#{loginname},</if><if test="password != null">password=#{password},</if><if test="name != null">name=#{name},</if><if test="sex != null">sex=#{sex},</if><if test="age != null">age=#{age},</if><if test="phone != null">phone=#{phone},</if><if test="sal != null">sal=#{sal},</if><if test="state != null">state=#{state}</if></set>where id=#{id}</update><!-- foreach --><select id="selectEmployeeIn" resultType="org.apwla.domain.Employee">SELECT *FROM tb_employeeWHERE ID in<foreach item="item" index="index" collection="list" open="("separator="," close=")">#{item}</foreach></select><!-- bind --><select id="selectEmployeeLikeName" resultType="org.apwla.domain.Employee"><bind name="pattern" value="'%' + _parameter.getName() + '%'" />SELECT * FROM tb_employeeWHERE loginname LIKE #{pattern}</select></mapper>

核心配置文件 mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- XML配置文件包含对MyBatis系统的核心配置 -->
<configuration>
<!-- 加载属性文件 --><properties resource="db.properties"><!--properties中还可以配置一些属性名和属性值  --><!-- <property name="jdbc.driver" value=""/> --></properties><settings><setting name="logImpl" value="LOG4J" /><setting name="lazyLoadingEnabled" value="true" /><setting name="aggressiveLazyLoading" value="false" /></settings>
<!-- 和spring整合后 environments配置将废除--><environments default="development"><environment id="development"><!-- 使用jdbc事务管理,事务控制由mybatis--><transactionManager type="JDBC" /><!-- 数据库连接池,由mybatis管理--><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /></dataSource></environment></environments><!-- mappers告诉MyBatis去哪里找持久化类的映射文件 --><mappers><mapper resource="org/apwla/mapper/PersonMapper.xml"></mapper><mapper resource="org/apwla/mapper/CardMapper.xml"></mapper><mapper resource="org/apwla/mapper/EmployeeMapper.xml" /></mappers>
</configuration>

Mybatis(动态SQL大全)相关推荐

  1. Mybatis超强大的动态 SQL 大全

    读完这篇文章里你能收获到 Mybatis动态SQL语句大全 Mybatis中如何定义变量 Mybatis中如何提取公共的SQL片段 1. If 语句 需求:根据作者名字和博客名字来查询博客!如果作者名 ...

  2. Mybatis动态SQL语句大全

    动态 SQL 语句大全 读完这篇文章里你能收获到 Mybatis动态SQL语句大全 Mybatis中如何定义变量 Mybatis中如何提取公共的SQL片段 1.if语句 需求:根据作者名字和博客名字来 ...

  3. MyBatis动态SQL之 set 和 trim标记的使用示例

    2019独角兽企业重金招聘Python工程师标准>>> 和之前的where一样,set和trim也是智能标记 在之前的user.xml中添加 <update id=" ...

  4. MyBatis动态SQL(认真看看, 以后写SQL就爽多了)

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:cnblogs.com/homejim/p/9909657. ...

  5. 9.mybatis动态SQL标签的用法

    mybatis动态SQL标签的用法 动态 SQL MyBatis 的强大特性之一便是它的动态 SQL.如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦 ...

  6. 认真看看, 以后写 SQL 就爽多了:MyBatis 动态 SQL:

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 阿进的写字台 来源 | cnblogs.com ...

  7. MyBatis动态SQL,写SQL更爽

    点击上方 好好学java ,选择 星标 公众号重磅资讯,干货,第一时间送达 今日推荐:分享一套基于SpringBoot和Vue的企业级中后台开源项目,这个项目有点哇塞!个人原创100W +访问量博客: ...

  8. 认真看看, 以后写 SQL 就爽多了:MyBatis 动态 SQL

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达今日推荐:2020年7月程序员工资统计,平均14357元,又跌了,扎心个人原创100W+访问量博客:点击前往,查看更多 整理 ...

  9. MyBatis——动态SQL语句——if标签和where标签复合使用

    功能需求 根据性别和名字查询用户 官方文档 MyBatis--动态 SQL SQL语句 SELECT id, username, birthday, sex, address FROM `user` ...

最新文章

  1. html 链接app store,App Store 连接失败
  2. 混淆矩阵怎么看_道理我都懂,但是神经网络反向传播时的梯度到底怎么求?
  3. python虚拟环境virualenv的安装与使用
  4. 驱动级模拟驱动级模拟:直接读写键盘的硬件端口!
  5. DockerCompose-初始Compose
  6. Java工作笔记-String转Integer可以转与不可以转的情况
  7. atcoder 2643 切比雪夫最小生成树
  8. Statement returned more than one row, where no more than one was expected
  9. ESP8266--接线与基础指令(讲解与运用)
  10. 微软虚拟化技术——构建高效开发与测试环境
  11. 标准时间标准Time Zone: GMT,UTC,DST,CST
  12. 我 45 岁还写代码,怎么了?
  13. 第一章数据结构和算法简介
  14. coreldraw怎么打印荣誉证书_使用Word 2010制作并打印荣誉证书的方法
  15. 摩尔定律和梅特卡夫定律_摩尔定律f
  16. Android O 修改吉字节为GB
  17. 计算机地址怎么填写,电脑服务器名称或地址怎么填
  18. 2022湖南最新中级消防员模拟考试试题及答案
  19. Android开发最佳实践
  20. 什么是项目ERP系统?

热门文章

  1. 自己敲的low到爆炸的代码
  2. Redis知识点笔记总结
  3. 服务器动态上下线监听案例
  4. 大数据分析的优势有哪些特点
  5. Ubuntu下安装Nginx服务器并进行优化
  6. photon 服务器操作系统,photon 云服务器
  7. vs的离线下载.iso文件_Windows10官方纯净系统下载
  8. html如何添加时钟效果,基于HTML5+CSS3实现简单的时钟效果
  9. c++ 字符串拼接_python字符串零碎总结
  10. linux dlopen 源码,采用dlopen、dlsym、dlclose加载动态链接库