MyBatis SqlSessionFactory的两种创建方式

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MyBatis SqlSessionFactory的两种创建方式

1.使用 XML 构建 SqlSessionFactory

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><!--别名-->
        <typeAliases alias="user" type="com.mybatis.po.User"/>
    </typeAliases>
    <!-- 数据库环境 -->
    <environments default="development">
        <environment id="development">
            <!-- 使用JDBC的事务管理 -->
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <!-- MySQL数据库驱动 -->
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <!-- 连接数据库的URL -->
                <property name="url"
                    value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf8" />
                <property name="username" value="root" />
                <property name="password" value="1128" />
            </dataSource>
        </environment>
    </environments>
    <!-- 将mapper文件加入到配置文件中 -->
    <mappers>
        <mapper resource="com/mybatis/mapper/UserMapper.xml" />
    </mappers>
</configuration>


SqlSessionFactory factory = null;
String resource = "mybatis-config.xml";
InputStream is;
try {
    InputStream is = Resources.getResourceAsStream(resource);
    factory = new SqlSessionFactoryBuilder().build(is);
} catch (IOException e) {
    e.printStackTrace();
}


jdbc.properties

    driverClassName=com.mysql.jdbc.Driver
    jdbc_url=jdbc:mysql://127.0.0.1:3306/db_testuse?Unicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
    jdbc_username=root
    jdbc_password=123456


    2.使用代码创建 SqlSessionFactory

    // 数据库连接池信息
    PooledDataSource dataSource = new PooledDataSource();
    dataSource.setDriver("com.mysql.jdbc.Driver");
    dataSource.setUsername("root");
    dataSource.setPassword ("1128");
    dataSource.setUrl("jdbc:mysql://localhost:3306/mybatis");
    dataSource.setDefeultAutoCommit(false);
    // 采用 MyBatis 的 JDBC 事务方式
    TransactionFactory transactionFactory = new JdbcTransactionFactory();
    Environment environment = new Environment ("development", transactionFactory, dataSource);
    // 创建 Configuration 对象
    Configuration configuration = new Configuration(environment);
    // 注册一个 MyBatis 上下文别名
    configuration.getTypeAliasRegistry().registerAlias("role", Role.class);
    // 加入一个映射器
    configuration.addMapper(RoleMapper.class);
    //使用 SqlSessionFactoryBuilder 构建 SqlSessionFactory
    SqlSessionFactory SqlSessionFactory =
    new SqlSessionFactoryBuilder().build(configuration);
    return SqlSessionFactory;
    


    历史推荐

    java读取properties的9种方式

    架构设计时,如何来制作一个 BOM 管理jar依赖版本

    手把手教你手写一个RPC

    Java程序员不得不了解的5款IDE神器

    相关实践学习
    如何在云端创建MySQL数据库
    开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
    全面了解阿里云能为你做什么
    阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
    目录
    相关文章
    |
    4月前
    |
    SQL Java 数据库连接
    Mybatis框架中SqlSessionFactory
    Mybatis框架中SqlSessionFactory
    |
    6月前
    |
    SQL 缓存 Java
    MyBatis原理分析之获取SqlSessionFactory
    MyBatis原理分析之获取SqlSessionFactory
    199 0
    |
    6月前
    |
    缓存 Java 数据库连接
    一文彻底搞懂Mybatis系列(十)之SqlSession、SqlSessionFactory和SqlSessionFactoryBuilder详解
    一文彻底搞懂Mybatis系列(十)之SqlSession、SqlSessionFactory和SqlSessionFactoryBuilder详解
    1025 1
    |
    Java 数据库连接 Spring
    spring整合 mybatis时 SqlSessionFactoryBean的一个小报错:Bean named ‘sqlSessionFactory‘ is expected to be of ty
    spring整合 mybatis时 SqlSessionFactoryBean的一个小报错:Bean named ‘sqlSessionFactory‘ is expected to be of ty
    381 0
    |
    XML SQL 安全
    MyBatis相关API、Resources、SqlSessionFactoryBuilder、SqlSessionFactory及SqlSession
    MyBatis相关API、Resources、SqlSessionFactoryBuilder、SqlSessionFactory及SqlSession
    76 0
    |
    SQL 安全 Java
    MyBatis——通过占位符实现insert操作、一些重要对象(SqlSessionFactory、SqlSession)的理解
    MyBatis——通过占位符实现insert操作、一些重要对象(SqlSessionFactory、SqlSession)的理解
    MyBatis——通过占位符实现insert操作、一些重要对象(SqlSessionFactory、SqlSession)的理解
    |
    XML Java 数据库连接
    MyBatis源码分析之——配置解析创建SqlSessionFactory的过程
    大家应该都知道Mybatis源码也是对Jbdc的再一次封装,不管怎么进行包装,还是会有获取链接、preparedStatement、封装参数、执行这些步骤的。
    155 0
    |
    XML Java 数据库连接
    深入理解mybatis原理, Mybatis初始化SqlSessionFactory机制详解
        对于任何框架而言,在使用前都要进行一系列的初始化,MyBatis也不例外。本章将通过以下几点详细介绍MyBatis的初始化过程。
    1393 0
    |
    Java 数据库连接 mybatis
    mybatis随笔二之SqlSessionFactory
    在上一篇文章我们已经得到了DefaultSqlSessionFactory @Override public SqlSession openSession() { return openSessionFromDataSource(configuration.
    1048 0