1.什么是mybatis
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作(封装了JDBC技术)
2.核心配置文件解读
<?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>
<!--
读取属性文件(jdbc.properties)
resource:从resources目录下找到指定名称的文件加载
url:使用绝对路径加载属性文件
-->
<properties resource="jdbc.properties"></properties>
<!--配置数据库的环境变量(数据库连接配置)-->
<environments default="development">
<!--开发时在公司使用的数据库配置
id:就是提供给environments的default属性使用
-->
<environment id="development">
<!--
transactionManager:配置事务管理器
type:指定事务管理的方式
JDBC:事务的控制交给程序员处理
MANAGED:由容器(spring)来管理事务
-->
<transactionManager type="JDBC"></transactionManager>
<!--
dataSource:配置数据源
type:指定不同的配置方式
JNDI:java命名目录接口,在服务器端进行数据库连接池的管理
POOLED:使用数据库连接池
UNPOOLED:不使用数据库连接池
-->
<dataSource type="POOLED">
<!--配置数据库连接的基本参数
private String driver;
private String url;
private String username;
private String password;
-->
<property name="driver" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
<!--<!–在家使用的数据库配置–>
<environment id="home">
<transactionManager type=""></transactionManager>
<dataSource type=""></dataSource>
</environment>
<!–上线是用的数据库配置–>
<environment id="online">
<transactionManager type=""></transactionManager>
<dataSource type=""></dataSource>
</environment>-->
</environments>
<!--注册mapper.xml文件-->
<mappers>
<!--从resources目录下找指定名称的文件注册-->
<mapper resource="jdbc.properties"></mapper>
<!-- <!–使用绝对路径注册–>
<mapper url="jdbc.properties"></mapper>
<!–动态代理方式下注册–>
<mapper class="jdbc.properties"></mapper>
-->
</mappers>
</configuration>
3.测试类步骤
@Test
public void testA() throws IOException {
//使用文件流读取核心配置文件sqlMapConfig.xml
InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
//创建SqlSessionFactory工厂
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);
//取出SqlSession对象
SqlSession sqlSession =factory.openSession();
//完成查询操作
List<Bulletin> bulletinList =sqlSession.selectList("lzf.getAll");
bulletinList.forEach(bulletin -> System.out.println(bulletin));
//关闭sqlSession
sqlSession.close();
}