Mybatis(动态SQL大全)
配置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大全)相关推荐
- Mybatis超强大的动态 SQL 大全
读完这篇文章里你能收获到 Mybatis动态SQL语句大全 Mybatis中如何定义变量 Mybatis中如何提取公共的SQL片段 1. If 语句 需求:根据作者名字和博客名字来查询博客!如果作者名 ...
- Mybatis动态SQL语句大全
动态 SQL 语句大全 读完这篇文章里你能收获到 Mybatis动态SQL语句大全 Mybatis中如何定义变量 Mybatis中如何提取公共的SQL片段 1.if语句 需求:根据作者名字和博客名字来 ...
- MyBatis动态SQL之 set 和 trim标记的使用示例
2019独角兽企业重金招聘Python工程师标准>>> 和之前的where一样,set和trim也是智能标记 在之前的user.xml中添加 <update id=" ...
- MyBatis动态SQL(认真看看, 以后写SQL就爽多了)
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:cnblogs.com/homejim/p/9909657. ...
- 9.mybatis动态SQL标签的用法
mybatis动态SQL标签的用法 动态 SQL MyBatis 的强大特性之一便是它的动态 SQL.如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦 ...
- 认真看看, 以后写 SQL 就爽多了:MyBatis 动态 SQL:
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 阿进的写字台 来源 | cnblogs.com ...
- MyBatis动态SQL,写SQL更爽
点击上方 好好学java ,选择 星标 公众号重磅资讯,干货,第一时间送达 今日推荐:分享一套基于SpringBoot和Vue的企业级中后台开源项目,这个项目有点哇塞!个人原创100W +访问量博客: ...
- 认真看看, 以后写 SQL 就爽多了:MyBatis 动态 SQL
点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达今日推荐:2020年7月程序员工资统计,平均14357元,又跌了,扎心个人原创100W+访问量博客:点击前往,查看更多 整理 ...
- MyBatis——动态SQL语句——if标签和where标签复合使用
功能需求 根据性别和名字查询用户 官方文档 MyBatis--动态 SQL SQL语句 SELECT id, username, birthday, sex, address FROM `user` ...
最新文章
- html 链接app store,App Store 连接失败
- 混淆矩阵怎么看_道理我都懂,但是神经网络反向传播时的梯度到底怎么求?
- python虚拟环境virualenv的安装与使用
- 驱动级模拟驱动级模拟:直接读写键盘的硬件端口!
- DockerCompose-初始Compose
- Java工作笔记-String转Integer可以转与不可以转的情况
- atcoder 2643 切比雪夫最小生成树
- Statement returned more than one row, where no more than one was expected
- ESP8266--接线与基础指令(讲解与运用)
- 微软虚拟化技术——构建高效开发与测试环境
- 标准时间标准Time Zone: GMT,UTC,DST,CST
- 我 45 岁还写代码,怎么了?
- 第一章数据结构和算法简介
- coreldraw怎么打印荣誉证书_使用Word 2010制作并打印荣誉证书的方法
- 摩尔定律和梅特卡夫定律_摩尔定律f
- Android O 修改吉字节为GB
- 计算机地址怎么填写,电脑服务器名称或地址怎么填
- 2022湖南最新中级消防员模拟考试试题及答案
- Android开发最佳实践
- 什么是项目ERP系统?