Mybatis工程搭建

本文介绍了如何使用IDEA创建Maven工程来搭建Mybatis。首先,通过JDBC连接并操作MySQL数据库,然后引入MyBatis依赖,接着详细展示了编程式配置MyBatis的方法,最后通过配置文件配置MyBatis,包括环境变量、事务管理器和数据源。通过实例演示了使用MyBatis查询数据库的过程。
摘要由CSDN通过智能技术生成

创建项目

使用IDEA创建Maven工程

IDEA配置Maven

我们新建Maven项目名为“mybatis-demo“,设置好Maven版本、配置文件以及Maven仓库

准备数据源

因为MyBatis是一个持久层框架,所以我们在配置及使用之前需要执行如下SQL语句先准备好数据源

删除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驱动包

mysql mysql-connector-java 8.0.23

刷新maven等待自动下载

libraries中有了导入的包表示依赖引入完成
在这里插入图片描述代码实现
public class JDBCDemo {
public static void main(String[] args) throws Exception {
//1.注册驱动
Class.forName(“com.mysql.cj.jdbc.Driver”);
//2.获取连接
Connection connection = DriverManager.getConnection(“jdbc:mysql://localhost:3306/mybatis_demo”, “root”, “root”);
//3.获取Statement对象
PreparedStatement preparedStatement = connection.prepareStatement(“select * from user WHERE id = ?”);
preparedStatement.setInt(1, 1);
//4.执行SQL语句返回结果集
ResultSet resultSet = preparedStatement.executeQuery();
//5.遍历结果集
while (resultSet.next()) {
System.out.println("username: " + resultSet.getString(“username”));
System.out.println("age: " + resultSet.getString(“age”));
}
//6.释放资源
resultSet.close();
preparedStatement.close();
connection.close();
}
}

执行结果

控制台打印结果如下图所示,表示已经成功连接数据库并查出了需要的值
在这里插入图片描述步骤总结

注册驱动
获取连接
获取statement对象
执行SQL语句返回结果集
遍历结果集
关闭连接释放资源

引入MyBatis依赖

maven仓库查询网址:MavenRepository

mybatis:MyBatis基础包
logback-classic:日志依赖
!-- https://mvnrepository.com/artifact/org.mybatis/mybatis ->
dependency
groupId>org.mybatis</groupId
artifactId>mybatis</artifactId
version>3.5.6</version

!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic –
dependency>
groupId>ch.qos.logback</groupId
artifactId>logback-classic</artifactId
version>1.3.0-alpha5</version
scope>test </scope

刷新maven等待自动下载

libraries中有了所有导入的包表示依赖引入完成

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210413223033812.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0F3YWl0MDA=,size_16,color_FFFF
FF,t_70)

编程式配置方法

MyBatis官方文档中并未详细的介绍如何编程式使用MyBatis,因为编程式配置方法代码有点复杂
讲解编程式配置方法,是因为使用配置文件配置时屏蔽了太多的细节
为了层层递进的介绍MyBatis的基础用法,熟悉MyBatis整体结构,需要讲解编程式配置方法

代码实现

删除JDBC连接及操作数据库:JDBCDemo.java

新建编程式配置文件:StartNoXml.java
@SuppressWarnings({“SqlResolve”, “SqlNoDataSourceInspection”, “Duplicates”})
public class StartNoXml {
public static void main(String[] args) throws SQLException {
// 准备jdbc事务类
JdbcTransactionFactory jdbcTransactionFactory = new JdbcTransactionFactory();
// 配置数据源
PooledDataSource dataSource = new PooledDataSource(
“com.mysql.cj.jdbc.Driver”,
“jdbc:mysql://localhost:3306/mybatis_demo?useSSL=false”,
“root”,
“root”);
// 配置环境,向环境中指定环境id、事务和数据源
Environment environment = new Environment.Builder(“development”)
.transactionFactory(jdbcTransactionFactory)
.dataSource(dataSource).build();
// 新建 MyBatis 配置类
Configuration configuration = new Configuration(environment);
// 得到 SqlSessionFactory 核心类
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
// 开始一个 sql 会话
SqlSession session = sqlSessionFactory.openSession();
// 得到 sql 连接并运行 sql 语句
PreparedStatement preStatement = session
.getConnection()
.prepareStatement(“SELECT * FROM user WHERE id = ?”);
preStatement.setInt(1, 1);
ResultSet result = preStatement.executeQuery();
// 验证结果
while (result.next()) {
System.out.println("username: " + result.getString(“username”));
System.out.println("age: " + result.getString(“age”));
}
// 关闭会话
session.close();
}
}

执行结果
控制台打印结果如下图所示,表示我们已经成功连接数据库并查出了需要的值
在这里插入图片描述步骤总结

  1. 得到 MyBatis 配置信息,即代码中的Configuration类

    JdbcTransactionFactory 表示事务工厂,当 MyBatis 需要新建事务的时候,会通过它来新建
    PooledDataSource 表示数据源,通过其构造参数,我们传入了数据库 url,数据库用户和密码等配置
    Configuration 负责 MyBatis 架构中的配置部分,可以有多个 Environment 每个 Environment
    都必须有唯一的 id,即代码中的 development

  2. 通过 Configuration 来创建 SqlSessionFactory

    MyBatis 是通过会话的方式来执行 SQL 的,因为我们必须拥有一个会话创建器,即会话工厂

  3. 新建 SqlSession 来执行 SQL

    有了 SqlSessionFactory 后,我们就可以方便地新建会话,并通过会话来执行 SQL 了

    而PreparedStatement及以下的内容,其实并不属于 MyBatis,它们是 JDBC 提供的,在实际的 MyBatis
    开发中,你也不会这样去执行 SQL,在这里我们只是为了测试是否配置成功,并且展示 MyBatis 和 JDBC 的关系。

缺点分析

可以看到,编程式使用 MyBatis 其实是比较复杂,需要开发人员十分熟悉 MyBatis 的 API,所以绝大多数资料都推荐配置的方式使用 MyBatis

配置文件配置MyBatis

代码实现

在resources文件夹下新建配置文件: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>
!-- 环境变量 -->
environments default=“development”>
environment id=“development”>
!-- 事务管理器 -->
transactionManager type=“JDBC”/>
!-- 数据源 -->
dataSource type=“POOLED”>
property name=“driver” value=“com.mysql.cj.jdbc.Driver”/>
property name=“url” value=“jdbc:mysql://localhost:3306/mybatis_demo?useSSL=false”/>
property name=“username” value=“root”/>
property name=“password” value=“root”/>
/dataSource>
/environment>
/environments>
/configuration>

有了上面编程式 API 的使用经验,那么一定可以轻松的看懂配置项:

configuration 标签对应 Configuration 类
environment 标签对应 Environment 类
transactionManager 标签对应 JdbcTransactionFactory 类
dataSource 标签对应 PooledDataSource 类

启动类:StartWithXml.java

修改类名为StartWithXml
读取配置文件

InputStream configuration = Resources.getResourceAsStream(“mybatis-config.xml”);

执行结果

控制台打印结果如下图所示,表示已经成功连接数据库并查出了需要的值
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值