核心代码
studentDao.xml【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="dao.StudentDao">
<!-- id对应接口中的方法名;resultType返回值类型-->
<!--模糊查询-->
<select id="searchByLikeName" resultType="entity.Student">
select * from student where name like #{name}
</select>
<!--模糊查询-->
<!-- 此处不能写成 "#{name}%" ,#{name}就成了字符串的一部分,即,‘李’% -->
<!-- #{name}"%",即#{name}是一个整体,后加上%,即,‘李%’ -->
<select id="searchByLikeName1" resultType="entity.Student">
select * from student where name
<!-- like "#{name}%" -->
like #{name}"%"
</select>
<!--模糊查询2,${name}需要加单引号-->
<select id="searchByLikeName2" resultType="entity.Student">
select * from student where name like '${name}%'
</select>
<!--模糊查询3,#{name}编译后,自动加引号-->
<select id="searchByLikeName3" resultType="entity.Student">
select * from student where name like concat('%',#{name},'%');
</select>
<!--模糊查询4,${name}需要加单引号-->
<select id="searchByLikeName4" resultType="entity.Student">
select * from student where name like concat('%','${name}','%');
</select>
<!--模糊查询5-->
<select id="searchByLikeName5" resultType="entity.Student">
<!-- <bind name="变量名" value="'%'+字段名+'%'"/> -->
<bind name="name1" value="'%'+name+'%'"/>
select * from student where name like #{name1};
</select>
</mapper>
StudentDao.java【接口】
package dao;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import entity.Student;
public interface StudentDao {
public List<Student> searchByLikeName(String name);
public List<Student> searchByLikeName1(String name);
public List<Student> searchByLikeName2(String name);
public List<Student> searchByLikeName3(String name);
public List<Student> searchByLikeName4(String name);
public List<Student> searchByLikeName5(String name1);
}
Test.java【测试文档】
package test;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import dao.StudentDao;
import entity.Student;
public class TestLike {
public static void main(String[] args) {
SqlSession sqlSession=MybatisSqlSession.getSqlSession();
StudentDao stuDao=sqlSession.getMapper(StudentDao.class);
String name="李";
//模糊查询
List<Student> list=stuDao.searchByLikeName(name+"%");
for(int i=0;i<list.size();i++) {
System.out.println(list.get(i).getName());
}
System.out.println("0----------------------------");
//模糊查询
List<Student> list1=stuDao.searchByLikeName1(name);
for(int i=0;i<list1.size();i++) {
System.out.println(list1.get(i).getName());
}
System.out.println("1----------------------------");
//模糊查询
List<Student> list2=stuDao.searchByLikeName2(name);
for(int i=0;i<list2.size();i++) {
System.out.println(list2.get(i).getName());
}
System.out.println("2----------------------------");
//模糊查询
List<Student> list3=stuDao.searchByLikeName3(name);
for(int i=0;i<list3.size();i++) {
System.out.println(list3.get(i).getName());
}
System.out.println("3----------------------------");
//模糊查询
List<Student> list4=stuDao.searchByLikeName4(name);
for(int i=0;i<list4.size();i++) {
System.out.println(list4.get(i).getName());
}
System.out.println("4----------------------------");
//模糊查询
List<Student> list5=stuDao.searchByLikeName5(name);
for(int i=0;i<list5.size();i++) {
System.out.println(list5.get(i).getName());
}
System.out.println("5----------------------------");
}
}
mybatis.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>
<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://localhost/school?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="dao/StudentDao.xml" />
</mappers>
</configuration>
执行结果&页面结构分布