![](https://img-blog.csdnimg.cn/4eda980fe33449f690bcc9363fc9dd4c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASGlrWi45MTk=,size_20,color_FFFFFF,t_70,g_se,x_16)
主文件
<?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文件 -->
<properties resource="db.properties" />
<!--为类型定义别名-->
<typeAliases>
<!--alias 设置别名-->
<!--<typeAlias type="com.yjxxt.pojo.Dept" alias="Dept"/>-->
<!--没有定义alias属性,默认别名为类型,不缺分大小写-->
<!--<typeAlias type="com.yjxxt.pojo.Dept"/>-->
<!--设置一个包下所有的类型定义别名,别名默认类名,不区分大小写-->
<package name="com.yjxxt.pojo"/>
</typeAliases>
<!--
mybatis使用环境配置
default : 选择要使用的环境
属性值定义为环境的id值
-->
<environments default="development">
<!--environment 定义环境配置 id : 环境的唯一标识-->
<environment id="development">
<!--transactionManager事务管理机制 : type="JDBC"选择使用JDBC项目的事务管理机制-->
<transactionManager type="JDBC"/>
<!--dataSource : 数据源配置|是否使用来连接池技术-->
<!--type="POOLED" 使用连接池结束-->
<dataSource type="POOLED">
<!--定义数据库的连接参数-->
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!--扫描SQL映射文件-->
<mappers>
<!--一个SQL映射文件的加载 : resource指定SQL映射文件在项目中的路径-->
<mapper resource="com/yjxxt/mappers/DeptMapper.xml"/>
<mapper resource="com/yjxxt/mappers/EmpMapper.xml"/>
</mappers>
</configuration>
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">
<!--
namespace : 命名空间
定义SQL映射文件的唯一
要求: 一个项目中不能重复
定义: 任意定义
建议: 包名.文件名 (不加后缀)
-->
<mapper namespace="com.yjxxt.mappers.DeptMapper">
<!--
select 相当于一个处理块
id : 一个命名空间中sql语句的唯一标识
在一个命名空间中id属性不能重复
见名知意
resultType : 结果类型
java中某个类型的名字
List集合,需要定义集合的泛型类型
parameterType : 入参类型
-->
<select id="queryAll" resultType="Dept">
select * from Dept
</select>
</mapper>
测试执行使用mybatis框架连接数据库,执行SQL语句,得到结果
public class Class001_Test {
public static void main(String[] args) throws IOException {
//1.加载XML核心配置文件
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
//2.创建SqlSessionFactory实例
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
//3.通过工厂获取回话SqlSession-->相当于Connection
SqlSession session = factory.openSession();
//
//selectList("命名空间.id")
List<Dept> list = session.selectList("com.yjxxt.mappers.DeptMapper.queryAll");
//5.得到结果处理结果
list.forEach(System.out::println);
//6.关闭回话
session.close();*/
}
}
对SqlSession封装
package com.yjxxt.utils;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
/*
对SqlSession封装
*/
public class SessionUtils {
private static SqlSessionFactory factory = null;
static{
try {
factory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession getSession(){
SqlSession session = null;
if(factory!=null) {
session = factory.openSession(); //默认手动 提交事务
//session = factory.openSession(true); //设置自动 提交事务
}
return session;
}
}