Mybatis学习笔记(02) 多种方法配置SqlSessionFactory

这篇博客详细介绍了Mybatis中SqlSessionFactory的多种配置方法,包括使用InputStream、Reader、手动构建Configuration实例,以及非必须参数的配置。还提及了使用Spring配置和注解的方式,尽管不推荐使用注解,因为其无法实现高级功能。文章提供了相关开发环境和共通配置信息,并指出在Spring开发中通常使用Spring来配置Mybatis。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Mybatis学习笔记(02) 多种方法配置SqlSessionFactory


前言

Mybatis 里 SqlSession 是我们使用的最重要的对象,我们使用它完成所需要的工作,具体使用方法下面有简单的演示,详细将在之后的笔记中解答。在这里我们首先关注如何获取 SqlSession。

SqlSessions是由SqlSessionFactory 创建的,而SqlSessionFactory 的创建又需要用到 SqlSessionFactoryBuilder实例,在此,我们首先研究 SqlSessionFactoryBuilder 的几种构建SqlSessionFactory 的不同方法,列表如下:

public SqlSessionFactory build(Reader reader);
public SqlSessionFactory build(Reader reader, String environment);
public SqlSessionFactory build(Reader reader, Properties properties);
public SqlSessionFactory build(Reader reader, String environment, Properties properties);
public SqlSessionFactory build(InputStream inputStream);
public SqlSessionFactory build(InputStream inputStream, String environment);
public SqlSessionFactory build(InputStream inputStream, Properties properties);
public SqlSessionFactory build(InputStream inputStream, String environment, Properties properties);
public SqlSessionFactory build(Configuration config);

仔细查看可知,SqlSessionFactoryBuilder所提供的基本配置方法一共有三种,即使用:Reader、InputStream 和 Configuration,具体而言又是指两种配置方法,即XML文件配置,和手动构建Configuration对象配置。实际上,通过XML配置的结果在实现中也将转换为 Configuration 对象,这个 Configuration 对象可以在获得SqlSessionFactory 后调用getConfiguration() 获取。1另外还有一种配置方法是使用注解,但因为Java注解的一些不足之处,使用注解将无法实现一些高级功能,将在未来介绍,但不推荐使用。

注:如果使用Spring开发,mybatis应该通过Spring配置,可以跳过本文档,Spring配置将在未来补充。

工作环境和共通配置

开发环境

  1. Eclipse IDE for Java Developers(Version: Neon.2 Release (4.6.2),Build id: 20161208-0600)
  2. Mybatis 3.4.4
  3. Mysql Connector 5.1.40

共通配置

Javaee_MybatisTest_CREATE_AND_DATA.sql

# Create and use database
DROP DATABASE IF EXISTS javaee_mybatisTest;
CREATE DATABASE javaee_mybatisTest;
USE javaee_mybatisTest;

# Create data table
CREATE TABLE t_class(
    id  INT PRIMARY KEY,
    name VARCHAR(20)
);

CREATE TABLE t_student(
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(20),
    age INT,
    class INT,
    CONSTRAINT fk_PerOrders FOREIGN KEY (class) REFERENCES t_class(id) 
);

# Initalized data
INSERT INTO t_class(id, name) VALUES(1, '软件工程12-1');
INSERT INTO t_class(id, name) VALUES(2, '软件工程12-2');
INSERT INTO t_class(id, name) VALUES(3, '软件工程12-3');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值