22、(知识篇)Mybatis02使用(动态SQL/模糊查询/log4j)
来源:互联网 发布:梅宏 大数据系统软件 编辑:程序博客网 时间:2024/06/17 13:48
/**
* Mybatis 动态SQL/模糊查询/log4j
*
* 1、动态sql,可以在mapper中添加<if/> <when/>等标签,做逻辑判断做动态Sql
* 2、模糊查询
* 方法1:and userName like '%${userName}%' 用${...}
* 方法2:and userName like CONCAT(CONCAT('%', #{userName}), '%'); CONCAT(CONCAT('%', #{xxx}), '%')
* 3、log4j:添加log4j相关包,加入xml/properties配置文件即可
*
* @param args
*/
测试类:
package com.mybatis.test;import java.io.InputStream;import java.util.List;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import com.mybatis.vo.User;public class Test {/** * Mybatis 动态SQL/模糊查询/log4j * * 1、动态sql,可以在mapper中添加<if/> <when/>等标签,做逻辑判断做动态Sql * 2、模糊查询 * 方法1:and userName like '%${userName}%' 用${...} * 方法2:and userName like CONCAT(CONCAT('%', #{userName}), '%'); CONCAT(CONCAT('%', #{xxx}), '%') * 3、log4j:添加log4j相关包,加入xml/properties配置文件即可 * * @param args */public static void main(String[] args) {InputStream is = Test.class.getClassLoader().getResourceAsStream("mybatis-config.xml");System.out.println(is);SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);System.out.println(sessionFactory);SqlSession session = sessionFactory.openSession();System.out.println(session);String userNameSpace = "com.mybatis.vo.User";/*一对一嵌套结果*/String getUserByCondition = userNameSpace+".getUserByCondition";List<User> users = session.selectList(getUserByCondition,new User(1, "Tester2", 1));System.out.println(users);}}User类:
package com.mybatis.vo;public class User {private int id;private String userName;private int sex;public User() {super();// TODO Auto-generated constructor stub}public User(int id, String userName, int sex) {super();this.id = id;this.userName = userName;this.sex = sex;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public int getSex() {return sex;}public void setSex(int sex) {this.sex = sex;}@Overridepublic String toString() {return "User [id=" + id + ", userName=" + userName + ", sex=" + sex + "]";}}
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="com.mybatis.vo.User"><select id="getUserByCondition" resultType="User" parameterType="User">select * from User where 1=1 <if test="userName != null and userName != '' ">and userName like '%${userName}%'<!-- and userName like CONCAT(CONCAT('%', #{userName}), '%'); --></if><choose><when test="sex != 0">and sex = #{sex}</when><otherwise></otherwise></choose></select></mapper>
log4j.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"><log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false"> <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="[%d{dd/MM/yy hh:mm:ss:sss z}] %5p %c{2}: %m%n" /> </layout> </appender> <appender name="FILE" class="org.apache.log4j.RollingFileAppender"> <param name="file" value="${user.home}/foss-framework.log" /> <param name="append" value="true" /> <param name="maxFileSize" value="10MB" /> <param name="maxBackupIndex" value="100" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d [%t] %-5p %C{6} (%F:%L) - %m%n" /> </layout> </appender> <!-- 下面是打印mybatis语句的配置--> <logger name="com.ibatis" additivity="true"> <level value="DEBUG" /> </logger> <logger name="java.sql.Connection" additivity="true"> <level value="DEBUG" /> </logger> <logger name="java.sql.Statement" additivity="true"> <level value="DEBUG" /> </logger> <logger name="java.sql.PreparedStatement" additivity="true"> <level value="DEBUG" /> </logger> <logger name="java.sql.ResultSet" additivity="true"> <level value="DEBUG" /> </logger> <root> <level value="DEBUG" /> <appender-ref ref="CONSOLE" /> <appender-ref ref="FILE" /> </root></log4j:configuration>
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><typeAliases><typeAlias type="com.mybatis.vo.User" alias="User" /></typeAliases><environments default="development"><environment id="development"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://192.168.1.92:3306/test" /><property name="username" value="root" /><property name="password" value="root" /></dataSource></environment></environments><mappers><mapper resource="com/mybatis/vo/userMapper.xml" /></mappers></configuration>
0 0
- 22、(知识篇)Mybatis02使用(动态SQL/模糊查询/log4j)
- 21、(知识篇)Mybatis02使用(嵌套结果/嵌套查询)
- 动态SQL与模糊查询
- 模糊查询与动态sql
- 动态SQL与模糊查询
- MyBatis动态查询 模糊查询实例sql
- ibatis动态sql配置(in实例,模糊查询等)
- 使用SQL进行模糊查询
- MyBatis-动态sql与模糊查询 -07
- mybatis 动态SQL与模糊查询
- Mybatis 1.动态sql 2.模糊查询
- 03. mybatis 动态sql && 模糊查询
- Mybatis动态SQL与模糊查询
- Mybatis学习----模糊查询和动态sql
- 六、Mybatis动态SQL和模糊查询
- Mybatis之动态SQL 模糊查询
- mybatis的动态SQL与模糊查询
- Mybatis 模糊查询和动态sql语句
- XOR ^
- MVC框架自己封装开启超神之路(上) 2-3路由类
- 博客开通啦!
- 半导体器件物理期末复习
- Ubuntu16.04 开发环境配置
- 22、(知识篇)Mybatis02使用(动态SQL/模糊查询/log4j)
- DVWA-1.9全级别教程之CSRF
- 从c++中理解java的继承关系
- 创建vue项目
- 使用PullToRefresh实现下拉刷新和分页加载功能
- android 面试知识点
- Integer to Roman
- SQL注入的一个简单实例
- Java 遍历Map集合