MyBatis的数据库操作入门(三)

还是前面的项目

现在我要进行模糊查询

在cn.bdqn.dao里面的UserMapper.java增加一个方法getUserLikeUserName

package cn.bdqn.dao;

import java.util.List;

import cn.bdqn.pojo.User;

public interface UserMapper {

	List<User> getUserList();
	List<User> getUserLikeUserName(String userName);     //模糊查询
}

在UserMapper.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="cn.bdqn.dao.UserMapper">

	<select id="getUserList" resultType="cn.bdqn.pojo.User">
		Select * from smbms_user
	</select>
	
	<select id="getUserLikeUserName" parameterType="String" resultType="user">
  		select * from smbms_user where userName like concat('%',#{userName},'%')
  	</select>
</mapper>

如果你是写了前面的%没有后面的%,比如关键字你,那么“我你”就可以查到,而“你他”就查不到

同样道理前面没写%后面写了,那么比如关键字你,“我你”就查不到,“你他”可以查到

所以前后面都要写%,这样前面后面都可以查到

mybatis-config.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>

	<!-- 引入属性文件 -->
	<properties resource="database.properties"></properties>
	<!-- 日志 -->
	<settings>
		<setting name="logImpl" value="LOG4J" />
	</settings>
	<typeAliases>
		<package name="cn.bdqn.pojo"/>
	</typeAliases>
	<!-- 运行环境 -->
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="${jdbc.driver}" />
				<property name="url" value="${jdbc.url}" />
				<property name="username" value="${jdbc.user}" />
				<property name="password" value="${jdbc.password}" />
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<mapper resource="cn/bdqn/dao/UserMapper.xml" />
	</mappers>
</configuration>

typeAliases配置需要放置在settings之后,否则会出异常

实体类Test代码

package cn.bdqn.test;


import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.apache.log4j.Logger;

import cn.bdqn.dao.UserMapper;
import cn.bdqn.pojo.User;
import cn.bdqn.util.MyBatisUtil;

public class Test {

	/*private static Logger logger = Logger.getLogger("Test");*/

	public static void main(String[] args) {

		//getUserCount();
		//getUserList();
		SqlSession sqlSession = MyBatisUtil.getSqlSession();
		List<User> users = sqlSession.getMapper(UserMapper.class).getUserLikeUserName("孙");
		for (User user : users) {
			System.out.println(user);
		}
		MyBatisUtil.closeSession(sqlSession);
	}
	
/*	public static void getUserList(){
		SqlSession session = MyBatisUtil.getSqlSession();
		//綁定Mapper接口
		List<User> userList = session.getMapper(UserMapper.class).getUserList();
		for (User user : userList) {
			logger.debug("用户:" + user);
		}
		MyBatisUtil.closeSession(session);
	}*/
	

/*	private static void getUserCount() {
		SqlSession session = MyBatisUtil.getSqlSession();
		// 调用mapper文件进行数据操作
		int count = session.selectOne("cn.bdqn.dao.UserMapper.count");

		logger.debug("用户数量是:" + count);
		MyBatisUtil.closeSession(session);
	}*/
}

运行得到结果(截取一点):

[DEBUG] 2018-09-29 21:42:55,585 org.apache.ibatis.transaction.jdbc.JdbcTransaction - Opening JDBC Connection
[DEBUG] 2018-09-29 21:42:55,872 org.apache.ibatis.datasource.pooled.PooledDataSource - Created connection 459296537.
[DEBUG] 2018-09-29 21:42:55,875 cn.bdqn.dao.UserMapper.getUserLikeUserName - ooo Using Connection [com.mysql.jdbc.JDBC4Connection@1b604f19]
[DEBUG] 2018-09-29 21:42:55,877 cn.bdqn.dao.UserMapper.getUserLikeUserName - ==>  Preparing: select * from smbms_user where userName like concat('%',?,'%') 
[DEBUG] 2018-09-29 21:42:55,908 cn.bdqn.dao.UserMapper.getUserLikeUserName - ==> Parameters: 孙(String)
User [address=北京市朝阳区管庄新月小区12楼, birthday=Sun Jan 04 00:00:00 CST 1981, createdBy=1, creationDate=Wed May 06 10:52:07 CST 2015, gender=2, id=10, modifyBy=null, modifyDate=null, phone=13387676765, userCode=sunlei, userName=孙磊, userPassword=0000000, userRole=3]
User [address=北京市朝阳区建国门南大街10号, birthday=Sun Mar 12 00:00:00 CST 1978, createdBy=1, creationDate=Wed Nov 09 16:51:17 CST 2016, gender=2, id=11, modifyBy=null, modifyDate=null, phone=13367890900, userCode=sunxing, userName=孙兴, userPassword=0000000, userRole=3]
[DEBUG] 2018-09-29 21:42:55,964 org.apache.ibatis.transaction.jdbc.JdbcTransaction - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@1b604f19]
[DEBUG] 2018-09-29 21:42:55,964 org.apache.ibatis.transaction.jdbc.JdbcTransaction - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@1b604f19]
[DEBUG] 2018-09-29 21:42:55,964 org.apache.ibatis.datasource.pooled.PooledDataSource - Returned connection 459296537 to pool.
 

猜你喜欢

转载自blog.csdn.net/weixin_42717928/article/details/82901241