|
今天需要用到mybatis 3.0.6的模糊查询, google了一下,很多人问问题,但是回答清楚的确没发现,以下是我项目中遇到问题的总结:
1. Mybatis sql语句的打印问题。 Mybatis本身集成了log4j,所以我们只需要在log4j的配置文件中改改就能让它打印出sql信息。在log4j.properties文件中加上:
log4j.logger.java.sql=debug,stdout
2. 模糊查询的问题。在Mapper文件中加上, <select id="selectByExampleLike" parameterType="com.CLIENT" resultMap="BaseResultMap">
select
CLIENT_ID, CLIENT_NAME, CLIENT_CODE, CLIENT_LNAME, CLIENT_FNAME, CLIENT_EMAIL, CLIENT_PASS,
CLIENT_ADDRESS
from CLIENT WHERE CLIENT_ID != ''
<if test="clientId != null">
AND CLIENT_ID like CONCAT('%','${clientId}','%' )
</if>
<if test="clientName != null">
AND CLIENT_NAME like CONCAT('%','${clientName}','%' )
</if>
<if test="clientCode != null">
AND CLIENT_CODE like CONCAT('%','${clientCode}','%' )
</if>
<if test="clientLname != null">
AND CLIENT_LNAME like CONCAT('%','${clientLname}','%' )
</if>
<if test="clientFname != null">
AND CLIENT_FNAME like CONCAT('%','${clientFname}','%' )
</if>
<if test="clientEmail != null">
AND CLIENT_EMAIL like CONCAT('%','${clientEmail}','%' )
</if>
<if test="clientPass != null">
AND CLIENT_PASS like CONCAT('%','${clientPass}','%' )
</if>
<if test="clientAddress != null">
AND CLIENT_ADDRESS like CONCAT('%','${clientAddress}','%' )
</if>
</select>
然后可以通过测试:
public class CLIENTServiceImplTest {
public static void main(String[] args) {
SqlSessionFactory factory = null;
try {
factory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader("Configuration.xml"));
} catch (IOException e) {
e.printStackTrace();
}
SqlSession sqlSession = factory.openSession();
CLIENT example = new CLIENT();
example.setClientId(1);
example.setStart(2);
example.setLimit(3);
example.setOrderByClause("CLIENT_ID ASC");
List<CLIENT> list = sqlSession.getMapper(CLIENTMapper.class).selectByExampleLike(example);
for(CLIENT c : list){
System.out.println(c.getClientId()+" "+c.getClientName());
}
System.out.println("------------------- list.size: " + list.size());
for(int i=0;i<10;i++){
//list = sqlSession.getMapper(CLIENTMapper.class).selectByExample(example);
}
}
}
Configuration.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="myexample">
<environment id="myexample">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="coc/mg/dao/CLIENTMapper.xml" />
</mappers>
</configuration>
好,模糊查询搞定! |
|
|