编写一个抽取MybatisUtils工具类,方便共享SqlSessionFactory创建过程
package com.java.utils;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
try {
//创建SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
//创建核心配置文件的输入流
InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
//通过输入流创建SqlSessionFactory对象
sqlSessionFactory = ssfb.build(inputStream);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//获取SqlSessionFactory
public static SqlSessionFactory getSqlSessionFactory() {
return sqlSessionFactory;
}
}
sql映射文件:
<?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="a.b" >
<select id="getUserByUsername" resultType="com.java.pojo.User">
<!-- ${}:字符串拼接指令,如果入参为普通数据类型,括号里面只能写value -->
select id,username,password from stus where username like '%${value}%'
</select>
</mapper>
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>
<!-- default 引用 environment 的 id,当前所使用的环境 -->
<environments default="default">
<!-- 声明可以使用的环境 ,环境可以有多个(当连接不同数据库的时候)-->
<environment id="default">
<!-- 使用原生 JDBC 事务 -->
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/数据库名?useSSL=false"/>
<property name="username" value="用户名"/>
<property name="password" value="密码"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mybatis/user.xml"/>
</mappers>
</configuration>
log4j.properties日志文件
log4j.rootCategory=DEBUG, CONSOLE ,LOGFILE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%C %d{YYYY-MM-dd hh:mm:ss} %m %n
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=D:/my.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%C %m%L %n
根据用户名模糊查询
public class Test{
public void getUserName() {
//获取MybatisUtils工具类的连接
SqlSessionFactory sessionFactory = MybatisUtils.getSqlSessionFactory();
//创建一个session会话
SqlSession session = sessionFactory.openSession();
//因为是模糊查询,结果为多条,所以用集合来接收一下
List<User> list = session.selectList("a.b.getUserByUsername","l");
//遍历打印
for (User user : list) {
System.out.println(user);
}
//释放资源
session.close();
}
public static void main(String[] args){
Test test = new Test();
test.getUserName();
}
}
查询结果为:
User [id=2, username=lisa, password=12345678]
User [id=3, username=xilali, password=31692]
User [id=5, username=long, password=666666]
User [id=8, username=lin, password=666666]
User [id=13, username=ling, password=66666]
不知道怎么配置Mybatis的可以看一下第一篇,谢谢你们的来访