MyBatis基础入门《十七》动态SQL】的更多相关文章

主要是通过mybatis提供的各种标签方法实现动态拼接sql. 1.if标签 <!-- 根据条件查询用户 --> <select id="queryUserByWhere" parameterType="user" resultType="user"> SELECT id, username, birthday, sex, address FROM `user` WHERE 1=1 <if test="se…
MyBatis基础入门<十七>动态SQL 描述: >> 完成多条件查询等逻辑实现 >> 用于实现动态SQL的元素主要有: > if > trim > where > set > choose( when , otherwise ) > foreach 动态SQL为Mybatis重要部分,项目也重新新建了一个:mybatis-dynamic-sql 项目结构: TblClient.java package com.charles.ent…
MyBatis基础入门<十八>动态SQL(if-where) 描述: 代码是在<MyBatis基础入门<十七>动态SQL>基础上进行改造的,不再贴所有代码,仅贴改动过的代码. ClientMapper.xml文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0/…
MyBatis基础入门<二十>动态SQL(foreach) 1. 迭代一个集合,通常用于in条件 2. 属性 > item > index > collection : 必须指定 > list > array > map-key > open > separator > close >>> 代码示例: ClientMapper.java 接口 ClientMapper.xml文件 注意: 由于接口中定义的getClient…
MyBatis基础入门<十九>动态SQL(set,trim) 描述: 1. 问题 : 更新用户表数据时,若某个参数为null时,会导致更新错误 2. 分析: 正确结果: 若某个参数为null,则不需要更新,保持数据库原值 3. 如何处理 > if > set ClientMapper.xml 文件 ClientMapper.java 测试方法: 测试结果: >>> trim  >> 属性 > prefix > suffix > pre…
Mybatis入门之动态sql 通过mybatis提供的各种标签方法实现动态拼接sql. 1.if.where.sql.include标签(条件.sql片段) <sql id="selector"> select * from account </sql> <!--根据性别和名称查询用户 where标签可以去掉第一个前and --> <select id="selectUserBySexAndUsername" parame…
MyBatis基础入门<五>核心配置文件 描述: 在前面的章节中,简单的学习使用了一下mybatis,对于配置文件没有过多详细说明. 这里先描述项目中的一个核心配置文件:mybatis-config.xml 文件. 资料参考:http://www.mybatis.org/mybatis-3/ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC &q…
MyBatis基础入门<九>ResultMap自动匹配 描述: Mybatis执行select查询后,使用ResultMap接收查询的数据结果. 实体类:TblClient.java 接口:ClientMapper.java xml文件:ClientMapper.xml 注意: resultMap标签中,我注释掉了一行标签. 在<select>标签中书写sql语句的时候,client_birthday 字段有书写. 查看执行结果. 测试方法: 执行结果: 注意: 此次执行结果中,显…
MyBatis基础入门<八>查询参数传入Map 描述: 在执行select查询数据的时候,方法传入的参数是java.util.Map类型. 接口方法: xml文件 注意: 书写SQL语句的时候,#{baitang_name}.#{baitang_id} ,大括号里面的变量需要和参数Map中的key保持一致. 测试方法: 测试结果: 如有问题,欢迎纠正!!! 如有转载,请标明源处:https://www.cnblogs.com/Charles-Yuan/p/9865766.html…
MyBatis基础入门<七>查询参数传入对象 描述: 在执行查询语句的时候,传入的参数是一个对象,依据对象的属性,进行检索数据.此时,书写SQL语句中的条件时,其参数需要和对象中的属性保持一致. 实体类:TblClient.java 接口方法 注意: 接口中定义了一个新的方法(根据对象属性进行查询数据),方法的参数传入的是一个对象. xml文件 注意: >>> parameterType="baitang" resultType="baitang…
MyBatis基础入门<六>Like模糊查询 描述: 未改动的文件,不再粘贴出来.项目中SQL的xml映射文件重要标签如下: mapper namespace cache 配置给定命令空间的缓存 cache-ref 从其他命令空间引用缓存配置 resultMap 用来描述数据库结果集和对象的对应关系 sql 可以重用的SQL块,也可以被其他语句引用 insert 映射插入语句 update 映射更新语句 delete 映射删除语句 select 映射查询语句 一.mapper 1. names…
MyBatis基础入门<三>Select查询集合 描述: 代码新增了一个MybatisUtil工具类,查询数据库返回集合的时候,接收数据的三种方式.由于代码会渐渐增多,未涉及改动过的文件不再粘贴出来. 项目结构: ClientMapper.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper…
MyBatis基础入门<二>Select查询 使用MySQL数据库,创建表: SET NAMES utf8mb4; ; -- ---------------------------- -- Table structure for tbl_client_copy1 -- ---------------------------- DROP TABLE IF EXISTS `tbl_client_copy1`; CREATE TABLE `tbl_client_copy1` ( `id` ) NOT…
Mybatis基础入门学习 mybatis架构分析 搭建测试mybatis架构 )下载并导入mybatis3.2.7.jar(架构),mysql-connector-java-5.1.7-bin.jar(数据库驱动),junit-4.9.jar(单元测试) (2)测试mybatis项目搭建 (3)Jdbc资源文件 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/数据库名?characterEncodin…
通过阅读源码对实现机制进行了解有利于陶冶情操,承接前文Spring mybatis源码篇章-动态SQL基础语法以及原理 前话 前文描述到通过mybatis默认的解析驱动类org.apache.ibatis.scripting.xmltags.XMLLanguageDriver,将mapper文件的CRUD节点均解析成对应的SqlNode接口. 本文将在前文的基础上具体分析select|update|insert|delete节点内的其他节点是如何被解析的,例如trim/where/set等嵌套节…
MyBatis中对数据库的操作,有时要带一些条件,因此动态SQL语句非常有必要,下面就主要来讲讲几个常用的动态SQL语句的语法 MyBatis中用于实现动态SQL的元素主要有: if choose(when,otherwise) trim where set foreach 1.if 对属性进行判断,如果不为空则执行判断条件 <select id="selectByCriteria" parameterType="com.mucfc.dto.Student" …
MyBatis基础入门<十六>缓存 >> 一级缓存 >> 二级缓存 >> MyBatis的全局cache配置 >> 在Mapper XML文件中设置缓存,默认情况下是没有开启缓存的. >> 在Mapper XML文件配置支持cache后,如果需要对个别查询进行调整,可以单独设置cache…
MyBatis基础入门<十五>ResultMap子元素(collection) 描述: 见<MyBatis基础入门<十四>ResultMap子元素(association )> >>collection >> 复杂类型集合,一对多 >> 内部嵌套 > 映射一个嵌套结果集到一个列表 >> 属性 > property : 映射数据库列的实体对象的属性 > ofType : 完整java类名或别名(集合所包括的…
MyBatis基础入门<十四>ResultMap子元素(association ) 1. id: >> 一般对应数据库中改行的主键ID,设置此项可以提高Mybatis的性能 2. result >> 映射到JavaBean的某个“简单类型”属性 3. association  >> 映射到javaBean的某个“复杂类型”属性,比如:javabean类 4. collection >> 映射到javabean的某个“复杂类型”属性,比如:集合 描…
MyBatis基础入门<十三>批量新增数据 批量新增数据方式1:(数据小于一万) xml文件 接口: 测试方法: 测试结果: =================================================================================================================================== 批量新增:方式2(数据大于1万) xml文件.接口 没有变化 . MybatisUtil工具类 测试类: 如…
MyBatis基础入门<十二>删除数据 - @Param参数 描述: 删除数据,这里使用了@Param这个注解,其实在代码中,不使用这个注解也可以的.只是为了学习这个@Param注解,为此使用. 实体类:TblClient.java 接口: 注意: 这个方法中的形参,有使用到了@Param这个参数,小括号里面的变量是在xml文件中的#{client_id} Xml文件: 测试类: 测试结果: 数据库: 如有问题,欢迎纠正!!! 如有转载,请标明源处:https://www.cnblogs.co…
MyBatis基础入门<十 一>修改数据 实体类: 接口类: xml文件: 测试类: 测试结果: 数据库: 如有问题,欢迎纠正!!! 如有转载,请标明源处:https://www.cnblogs.com/Charles-Yuan/p/9867563.html…
MyBatis基础入门<十>添加数据 描述: 修改了实体类:TblClient.java,将其字段:cbirthday 由String类型改成了Date类型. TblClient.java 接口类: xml文件: 测试类: 测试结果: 数据库: 如有问题,欢迎纠正!!! 如有转载,请 标明源处:https://www.cnblogs.com/Charles-Yuan/p/9867453.html…
MyBatis基础入门<四>接口方式.Select查询集合 描述: 在<MyBatis基础入门<二>Select查询>中有说过,SQLSession有两种用法,这里以第二种方式: 基于Mapper接口方式 进行查询数据. 未改动过的文件,不再粘贴出来. 项目结构: ClientMapper.java package com.charles.dao; import java.util.List; import com.charles.entity.TblClient; p…
MyBatis基础入门<一>环境搭建 参考资料链接:http://www.mybatis.org/mybatis-3/ 使用maven构建项目,STS开发工具,jdk1.8 项目结构: mybatis-config.xml文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.…
MyBatis:学习笔记(4)——动态SQL…
Mybatis(6)动态SQL 1.动态SQL 出现原因:有些时候业务逻辑复杂时,我们的 SQL 是动态变化的,此时在前面的学习中我们的 SQL 就不能满足要求了 1.1.if标签 我们根据实体类的不同取值,使用不同的 SQL 语句来进行查询.比如在 id 如果不为空时可以根据 id 查询,如果 username 不同空时还要加入用户名作为条件.这种情况在我们的多条件组合查询中经常会碰到. 1.1.1.持久层接口 /** * 通过用户信息查询用户列表 * @param user * @retur…
通过阅读源码对实现机制进行了解有利于陶冶情操,承接前文Spring mybatis源码篇章-Mybatis的XML文件加载 前话 前文通过Spring中配置mapperLocations属性来进行对mybatis的XML文件的解析,本文将在前文的基础上简单的来看下Mybatis的使用的基础语法以及解析原理 动态sql语法 具体的动态sql的使用可在官网查看Mybatis 3 | Dynamic SQL 1.if,条件判断 <select id="findActiveBlogWithTitl…
package org.maple.mapper; import org.apache.ibatis.annotations.Param; import org.maple.pojo.Employee; import java.util.List; import java.util.Map; /** * @author mapleins * @Date 2018-12-13 17:39 * @Desc 动态sql的接口 **/ public interface EmployeeMapperDyn…
个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.动态SQL语句 准备工作: public class User { private int id; private String lastName; private int sex; 1.if 语句 说明: if语句,可以动态的根据你的值来决定,是否需要动态的添加查询条件. 方法代码: public interface UserMapper { /** * 根据用户的lastName属性和sex属…