准备数据源
# 删除mybatis_demo数据库
drop database if exists mybatis_demo;
# 创建mybatis_demo数据库
create database mybatis_demo;
# 使用mybatis_demo数据库
use mybatis_demo;
# 创建account表
create table user (
id int auto_increment primary key,
username varchar(20),
age int,
score int
);
# 新增数据
insert into user (id, username, age, score) values
(1,'peter', 18, 100), (2,'pedro', 24, 200),
(3,'jerry', 28, 500), (4,'mike', 12, 300),
(5,'tom', 27, 1000);
JDBC连接及操作数据库
引入MySQL驱动包
<dependencies>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
</dependencies>
刷新maven等待自动下载,libraries中有了导入的包表示依赖引入完成
代码实现
执行结果
步骤总结
注册驱动;
获取连接;
获取statement对象;
执行SQL语句返回结果集;
遍历结果集;
关闭连接释放资源;
引入MyBatis依赖
mybatis:MyBatis基础包
logback-classic:日志依赖
代码实现
执行结果
步骤总结
JdbcTransactionFactory 表示事务工厂,当 MyBatis 需要新建事务的时候,会通过它来新建;
PooledDataSource 表示数据源,通过其构造参数,我们传入了数据库 url,数据库用户和密码等配置;
Configuration 负责 MyBatis 架构中的配置部分,可以有多个 Environment
每个 Environment 都必须有唯一的 id,即代码中的 development
通过 Configuration 来创建 SqlSessionFactory;
MyBatis 是通过会话的方式来执行 SQL 的,因为我们必须拥有一个会话创建器,即会话工厂;
新建 SqlSession 来执行 SQL;
有了 SqlSessionFactory 后,我们就可以通过会话来执行 SQL 了;
而PreparedStatement及以下的内容,它们是 JDBC 提供的,在这里我们只是为了展示 MyBatis 和 JDBC 的关系。
缺点分析
编程式使用 MyBatis 是比较复杂,需要开发人员十分熟悉 MyBatis 的 API,所以绝大多数资料都推荐配置的方式使用 MyBatis。
代码实现
其中,configuration 标签对应 Configuration 类;
environment 标签对应 Environment 类;
transactionManager 标签对应 JdbcTransactionFactory 类;
dataSource 标签对应 PooledDataSource 类。
代码实现
执行结果
步骤总结
读取配置文件,即 mybatis-config.xml;
通过配置文件来创建 SqlSessionFactory;
新建 SqlSession 来执行 SQL