<select id="getRecByNameWildcard" parameterType="Student" resultMap="result">

    SELECT * FROM STUDENT
<if test="name != null">
WHERE name LIKE "%"#{name}"%"
</if> </select>
src\main\java\com\test\mybatisSelect.java
package com.test;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.IOException;
import java.io.Reader;
import java.util.List;
import java.util.concurrent.ExecutionException; public class mybatisSelect { public static void main(String args[]) throws IOException { 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); System.out.println(student00.getId() + student00.getName()); Student stud01 = new Student();
Student student01 = (Student) session.selectOne("Student.getRecByNameLimit1", stud01); System.out.println(student01.getId() + student01.getName()); System.out.println("session.selectList----------------------"); Student stud02 = new Student("Jim");
List<Student> students02 = session.selectList("Student.getRecByNameWildcard", stud02); for (Student student : students02) {
System.out.println(student.getId() + student.getName());
}
System.out.println("<---测试通配符---"); Student stud1 = new Student();
List<Student> students1 = session.selectList("Student.getRecByName", stud1);
for (Student student : students1) {
System.out.println(student.getId() + student.getName());
} // OK
List<Student> students = session.selectList("Student.getAll");
for (Student student : students) {
System.out.println(student.getId() + student.getName());
} } finally {
session.close();
}
} catch (Exception e) {
}
}
}

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

8 directories, 6 files

src\main\java\com\test\Student.java
package com.test;

public class Student {
private int id;
private String name;
private String branch;
private int percentage;
private int phone;
private String email; public Student() {
} 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;
} 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;
} public Student(String name) {
this.name = name;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getPhone() {
return phone;
} public void setPhone(int phone) {
this.phone = phone;
} public String getEmail() {
return email;
} public void setEmail(String email) {
this.email = email;
} public String getBranch() {
return branch;
} public void setBranch(String branch) {
this.branch = branch;
} public int getPercentage() {
return percentage;
} public void setPercentage(int percentage) {
this.percentage = percentage;
} } src\main\resources\SqlMapConfig.xml
<?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> <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>
src\main\resources\StudentMapper.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="Student">

    <insert id="insert" parameterType="Student">
INSERT INTO STUDENT (NAME, BRANCH, PERCENTAGE, PHONE, EMAIL ) VALUES (#{name}, #{branch}, #{percentage},
#{phone}, #{email}); <selectKey keyProperty="id" resultType="int" order="AFTER">
select last_insert_id() as id
</selectKey> </insert> <select id="getRecByName" parameterType="Student" resultMap="result"> SELECT * FROM STUDENT
<if test="name != null">
WHERE name LIKE %#{name}%
</if> </select> <select id="getRecByNameWildcard" parameterType="Student" resultMap="result"> SELECT * FROM STUDENT
<if test="name != null">
WHERE name LIKE "%"#{name}"%"
</if> </select> <!--TODO 优化:limit传参-->
<select id="getRecByNameLimit1" parameterType="Student" resultMap="result"> SELECT * FROM STUDENT
<if test="name != null">
WHERE name LIKE #{name}
</if>
LIMIT 1
</select>
<select id="getAll" resultMap="result">
SELECT * FROM STUDENT;
</select> <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> </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 增删改




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. Configurations of Vim/GVim of dsp

    Linux环境写到用户主目录下的.vimrc文件(没有则新建),Windows环境则为GVim安装目录下的_vimrc(没有则新建),内容如下: "分上下两屏 "sp " ...

  2. QTableView修改数据后弹出是否保存的提示框。

    自定义CustomDelegate继承自QStyledItemDelegate,重写setModelData(self, editor, model, index)方法 def setModelDat ...

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

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

  4. 抽象工厂模式(abstract factory pattern)------创造型模式

    创建型模式:抽象工厂模式 引入概念: 1.产品等级结构:当抽象的产品由具体的工厂生产出不同的产品时,这些归属与同一类的抽象产品就构成了产品等级结构: 2.产品族:具体的工厂可以生产出来的不同产品就构成 ...

  5. 解决导入protobuf源代码Unity报错的问题

    将源代码导入Assets目录后, unity引擎会出现以下报错: 解决办法: 在 unity项目Assets目录中创建smcs.rsp文件,内容为-unsafe,其作用为可编译不安全代码.     然 ...

  6. Spring------Spring data jpa 定义实体类(@OneToMany等的使用)

    转载: https://course.tianmaying.com/spring-data-jpa+one-to-many#2

  7. Linux系统故障排除

    可能出现的故障: 1,管理员密码忘记 进入单用户模式修改密码 2.系统无法正常启动 a.grub损坏(MBR损坏,grub配置文件丢失) b.系统初始化故障(某文件系统无法正常挂载.驱动不兼容) c. ...

  8. with revoked permission android.permission.CAMERA

    1,刚出现这样的问题我是直接把 CAMERA 移除掉 2.第一步判断时候授权. if (Build.VERSION.SDK_INT >= 23) { int checkCallPhonePerm ...

  9. 微信小程序 this.setData 修改json里面的值

    page({ data:{ s1:{a:"",b:"b"} }, changeData:function(e){ var cData=this.data.s1; ...

  10. MQTT的学习研究(八)基于HTTP DELETE MQTT 订阅消息服务端使用

    HTTP DELETE 订阅主题请求协议和响应协议http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/topic/com.ibm.mq.csqzau ...