# mybatis-test **Repository Path**: LSZYAB/mybatis-test ## Basic Information - **Project Name**: mybatis-test - **Description**: mybatis源码测试案例 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2020-05-14 - **Last Updated**: 2024-01-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Getting Started - 官方文档[地址](https://mybatis.org/mybatis-3/zh/index.html) - 博客大牛[地址](https://www.cnblogs.com/zhjh256/p/8512392.html) ## 操作数据库主要步骤: 1. 注册数据库驱动,明确指定数据库账户、密码、连接库等信息 2. 通过驱动管理类 DriverManager 打开数据库连接会话通道 3. 数据库连接创建 Statement 对象 3. Statement 对象 执行sql语句,得到结果集对象ResultSet 4. 读取ResultSet对象信息,将信息转换到JavaBean中 5. 关闭流信息 ## 源码分析 - 在源码中也有大量的注释; - 图解如下  ## 主要模块 - 树状图 ```shell script |-- annotations ## 注解模块 |-- binding ## 绑定模块(例如:1个mapper接口对应1个xml文件) |-- builder ## 构建配置中心模块 | |-- annotation | `-- xml |-- cache ## 缓存模块 | |-- decorators | `-- impl |-- cursor ## 游标模块 | `-- defaults |-- datasource ## 数据源模块(3种方式) | |-- jndi # 1.java naming and directory interface - java命令和目录接口 | |-- pooled # 2.连接池 | `-- unpooled # 3.非连接池 |-- exceptions ## 异常模块 |-- executor ## sql执行模块 | |-- keygen | |-- loader | |-- parameter | |-- result | |-- resultset | `-- statement |-- io ## 查找路径下的资源(虚拟文件系统(VFS:Virtual File System)) |-- jdbc ## |-- lang ## |-- logging ## 日志模块 | |-- commons | |-- jdbc | |-- jdk14 | |-- log4j | |-- log4j2 | |-- nologging | |-- slf4j | `-- stdout |-- mapping ## 参数返回值映射模块 |-- parsing ## 解析模块 |-- plugin ## 插件模块 |-- reflection ## 反射模块 | |-- factory | |-- invoker | |-- property | `-- wrapper |-- scripting ## sql编写脚本 | |-- defaults | `-- xmltags |-- session ## 会话管理模块 | `-- defaults |-- transaction ## 事务管理模块 | |-- jdbc | `-- managed `-- type ## 类型转换模块 ``` - 图展:  ## 案例分析: - 连接数据库的几种方式: ```java import com.lsz.mybatis.dao.TestMapper; import org.apache.ibatis.datasource.unpooled.UnpooledDataSource; import org.apache.ibatis.io.Resources; import org.apache.ibatis.mapping.Environment; import org.apache.ibatis.session.Configuration; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.apache.ibatis.transaction.TransactionFactory; import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory; import org.junit.Test; import javax.sql.DataSource; import java.io.IOException; import java.io.InputStream; import java.sql.*; import java.util.Map; /** * mybatis测试案例 *
* 官方文档: *
* @author lu shun zhi * @date 2020/5/29 17:22 */ public class TestMapperTest { /** * 方式一:从 XML 中构建 SqlSessionFactory */ @Test public void testXmlConfig() throws IOException { // mybatis 提供的方法,将文件读取到输入流中 InputStream input = Resources.getResourceAsStream("mybatis-config.xml"); // 将文件流信息传递给数据库会话工厂 SqlSessionFactoryBuilder factoryBuilder = new SqlSessionFactoryBuilder(); SqlSessionFactory sessionFactory = factoryBuilder.build(input); // 打开会话工厂 SqlSession sqlSession = sessionFactory.openSession(); TestMapper mapper = sqlSession.getMapper(TestMapper.class); Map