1. <select id="getRecByNameWildcard" parameterType="Student" resultMap="result">
  2.  
  3. SELECT * FROM STUDENT
    <if test="name != null">
    WHERE name LIKE "%"#{name}"%"
    </if>
  4.  
  5. </select>
  6.  
  1. src\main\java\com\test\mybatisSelect.java
  1. package com.test;
  2.  
  3. import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  4.  
  5. import java.io.IOException;
    import java.io.Reader;
    import java.util.List;
    import java.util.concurrent.ExecutionException;
  6.  
  7. public class mybatisSelect {
  8.  
  9. public static void main(String args[]) throws IOException {
  10.  
  11. Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
    try {
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
    SqlSession session = sqlSessionFactory.openSession();
    try {
    Student stud00 = new Student("Jim");
    Student student00 = (Student) session.selectOne("Student.getRecByNameLimit1", stud00);
  12.  
  13. System.out.println(student00.getId() + student00.getName());
  14.  
  15. Student stud01 = new Student();
    Student student01 = (Student) session.selectOne("Student.getRecByNameLimit1", stud01);
  16.  
  17. System.out.println(student01.getId() + student01.getName());
  18.  
  19. System.out.println("session.selectList----------------------");
  20.  
  21. Student stud02 = new Student("Jim");
    List<Student> students02 = session.selectList("Student.getRecByNameWildcard", stud02);
  22.  
  23. for (Student student : students02) {
    System.out.println(student.getId() + student.getName());
    }
    System.out.println("<---测试通配符---");
  24.  
  25. Student stud1 = new Student();
    List<Student> students1 = session.selectList("Student.getRecByName", stud1);
    for (Student student : students1) {
    System.out.println(student.getId() + student.getName());
    }
  26.  
  27. // OK
    List<Student> students = session.selectList("Student.getAll");
    for (Student student : students) {
    System.out.println(student.getId() + student.getName());
    }
  28.  
  29. } finally {
    session.close();
    }
    } catch (Exception e) {
    }
    }
    }
  30.  

.
├── pom.xml
└── src
├── main
│   ├── java
│   │   └── com
│   │   └── test
│   │   ├── mybatisInsert.java
│   │   ├── mybatisSelect.java
│   │   └── Student.java
│   └── resources
│   ├── SqlMapConfig.xml
│   └── StudentMapper.xml
└── test
└── java

8 directories, 6 files

  1. src\main\java\com\test\Student.java
  1. package com.test;
  2.  
  3. public class Student {
    private int id;
    private String name;
    private String branch;
    private int percentage;
    private int phone;
    private String email;
  4.  
  5. public Student() {
    }
  6.  
  7. public Student(int id, String name, String branch, int percentage, int phone, String email) {
    this.id = id;
    this.name = name;
    this.branch = branch;
    this.percentage = percentage;
    this.phone = phone;
    this.email = email;
    }
  8.  
  9. public Student(String name, String branch, int percentage, int phone, String email) {
    this.name = name;
    this.branch = branch;
    this.percentage = percentage;
    this.phone = phone;
    this.email = email;
    }
  10.  
  11. public Student(String name) {
    this.name = name;
    }
  12.  
  13. public int getId() {
    return id;
    }
  14.  
  15. public void setId(int id) {
    this.id = id;
    }
  16.  
  17. public String getName() {
    return name;
    }
  18.  
  19. public void setName(String name) {
    this.name = name;
    }
  20.  
  21. public int getPhone() {
    return phone;
    }
  22.  
  23. public void setPhone(int phone) {
    this.phone = phone;
    }
  24.  
  25. public String getEmail() {
    return email;
    }
  26.  
  27. public void setEmail(String email) {
    this.email = email;
    }
  28.  
  29. public String getBranch() {
    return branch;
    }
  30.  
  31. public void setBranch(String branch) {
    this.branch = branch;
    }
  32.  
  33. public int getPercentage() {
    return percentage;
    }
  34.  
  35. public void setPercentage(int percentage) {
    this.percentage = percentage;
    }
  36.  
  37. }
  38.  
  39. src\main\resources\SqlMapConfig.xml
  1. <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
    <typeAliases>
    <typeAlias alias="Student" type="com.test.Student"/>
    </typeAliases>
  2.  
  3. <environments default="development">
    <environment id="development">
    <transactionManager type="JDBC"/>
    <dataSource type="POOLED">
    <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://rm-o.mysql.rds.aliyuncs.com:3306/video_test"/>
    <property name="username" value="t"/>
    <property name="password" value="tI"/>
    </dataSource>
    </environment>
    </environments>
    <mappers>
    <mapper resource="StudentMapper.xml"/>
    </mappers>
    </configuration>
  1. src\main\resources\StudentMapper.xml
  2.  
  1. <?xml version = "1.0" encoding = "UTF-8"?>
  2.  
  3. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  4.  
  5. <mapper namespace="Student">
  6.  
  7. <insert id="insert" parameterType="Student">
    INSERT INTO STUDENT (NAME, BRANCH, PERCENTAGE, PHONE, EMAIL ) VALUES (#{name}, #{branch}, #{percentage},
    #{phone}, #{email});
  8.  
  9. <selectKey keyProperty="id" resultType="int" order="AFTER">
    select last_insert_id() as id
    </selectKey>
  10.  
  11. </insert>
  12.  
  13. <select id="getRecByName" parameterType="Student" resultMap="result">
  14.  
  15. SELECT * FROM STUDENT
    <if test="name != null">
    WHERE name LIKE %#{name}%
    </if>
  16.  
  17. </select>
  18.  
  19. <select id="getRecByNameWildcard" parameterType="Student" resultMap="result">
  20.  
  21. SELECT * FROM STUDENT
    <if test="name != null">
    WHERE name LIKE "%"#{name}"%"
    </if>
  22.  
  23. </select>
  24.  
  25. <!--TODO 优化:limit传参-->
    <select id="getRecByNameLimit1" parameterType="Student" resultMap="result">
  26.  
  27. SELECT * FROM STUDENT
    <if test="name != null">
    WHERE name LIKE #{name}
    </if>
    LIMIT 1
    </select>
    <select id="getAll" resultMap="result">
    SELECT * FROM STUDENT;
    </select>
  28.  
  29. <resultMap id="result" type="Student">
    <result property="id" column="ID"/>
    <result property="name" column="NAME"/>
    <result property="branch" column="BRANCH"/>
    <result property="percentage" column="PERCENTAGE"/>
    <result property="phone" column="PHONE"/>
    <result property="email" column="EMAIL"/>
    </resultMap>
  30.  
  31. </mapper>

2Jim
1Jim232
session.selectList----------------------
1Jim232
2Jim
<---测试通配符---
1Jim232
2Jim
3Mohammad
4Mohammad
1Jim232
2Jim
3Mohammad
4Mohammad

ID NAME
1 Jim232
2 Jim
3 Mohammad
4 Mohammad

构造方法 override 重写

mybits 增删改

  1.  
  1.  
  1.  

Mybatis解决sql中like通配符模糊匹配 构造方法覆盖 mybits 增删改的更多相关文章

  1. MyBatis的SQL语句映射文件详解(二)----增删改查

    1.select语句 public List<User> findUser() {  // TODO Auto-generated method stub    List users= ( ...

  2. mybatis动态sql中的两个内置参数(_parameter和_databaseId)

    mybatis动态sql中的两个内置参数(_parameter和_databaseId)   <!-- mybatis动态sql的两个内置参数           不只是方法传递过来的参数可以被 ...

  3. mybatis的sql中使用$会出现sql注入示例

    mybatis的sql中使用$会出现sql注入示例: 模拟简单登录场景: 页面代码: function login(){ //sql注入 var user = { username : "' ...

  4. PHP程序中使用PDO对象实现对数据库的增删改查操作的示例代码

    PHP程序中使用PDO对象实现对数据库的增删改查操作(PHP+smarty) dbconn.php <?php //------------------------使用PDO方式连接数据库文件- ...

  5. AngularJS中使用$http对MongoLab数据表进行增删改查

    本篇体验使用AngularJS中的$http对MongoLab数据表进行增删改查. 主页面: <button ng-click="loadCourse()">Load ...

  6. SQL中 like 通配符 特殊字符处理

    以下是一些匹配的举例,需要说明的是,只有like操作才有这些特殊字符,=操作是没有的.a_b... a[_]b%a%b... a[%]b%a[b... a[[]b%a]b... a]b%a[]b... ...

  7. mybatis动态SQL中的set标签的使用

    set标记是mybatis提供的一个智能标记,我一般将其用在修改的sql中,例如以下情况: <update> update user <set> <if test=&qu ...

  8. MyBatis动态SQL中trim标签的使用

    My Batis 官方文档 对 动态SQL中使用trim标签的场景及效果介绍比较少. 事实上trim标签有点类似于replace效果. trim 属性 prefix:前缀覆盖并增加其内容 suffix ...

  9. mybatis动态sql中foreach标签的使用

    foreach标签主要用于构建in条件,他可以在sql中对集合进行迭代.如下: <delete id="deleteBatch"> delete from user w ...

随机推荐

  1. c# combobox 绑定报错

    comboBoxPlanResult.DataSource =new BindingSource(o,null);comboBoxPlanResult.DisplayMember ="Key ...

  2. CentOS 7 Minimal编译安装MySQL5.6

    写在前面,编译安装MySQL的优势:平台无关.可设定参数按需安装.安装的MySQL目录独立(方便清楚).更好的平台耦合及运行性能(很多运维的观点):缺点:编译安装较慢. 一.撤换系统防火墙 注:Cen ...

  3. Asp.Net之后台载入JS和CSS

    在Asp.Net开发时,用到的JS库.通用的CSS等,在很多页面都会用到,而每次都须要手动引入.相当麻烦.并且有时一旦忘了引用,还得找半天才干找到问题.那有没有什么办法可以一劳永逸的呢?答案是有的. ...

  4. 【Java面试题】35 List, Set, Map是否继承自Collection接口?

    Collection是最基本的集合接口,声明了适用于JAVA集合(只包括Set和List)的通用方法. Set 和List 都继承了Conllection:Set具有与Collection完全一样的接 ...

  5. jQuery分页插件(jquery.page.js)的使用

    效果描述: 不用分页即可显示的jQuery插件 jQuery分页插件——jQuery.page.js用法很简单,效果很棒   1.前端   首先html的head中引入相关css与js <lin ...

  6. 资深投资人全力反击: VC增值平台从来就不是一坨狗屎

    编者注: 本文来自海外著名科技博客VentureBeat, 英文原文出自Kyle Lacy之手 ,中文版由天地会珠海分舵进行编译. 文章主要是针对前几天德国VC Christian Claussen的 ...

  7. Android学习笔记——Menu(二)

    知识点: 这次将继续上一篇文章没有讲完的Menu的学习,上下文菜单(Context menu)和弹出菜单(Popup menu). 上下文菜单 上下文菜单提供对UI界面上的特定项或上下文框架的操作,就 ...

  8. WAMP设置默认访问目录

    打开httpd.conf 1.修改:DocumentRoot "F:/Project/Php" 2.修改 <Directory "F:/Project/Php&qu ...

  9. Extjs学习笔记--(六,选择器)

    文档对象dom是javascript与页面元素的桥梁 选择器的作用就是通过元素的标签名,属性名,css属性名对页面进行快速,准确的定位及选择 Extjs的选择器:Ext.DomQuery Ext.qu ...

  10. laravel Eloquent 模型(也就是我本时说的Model)

    laravel的 Eloquent 模型其实就是我们平时说的MVC里Model,只是换了个名字而已~ 1)Eloquent 是啥? Eloquent 本质就一个查询构建器(laravel里叫查询构建器 ...