2021年10月7日
Author:Exchanges
Version:9.0.2
一、引言1.1 什么是框架?1.2 什么是ORM框架?1.3 使用JDBC完成ORM操作的缺点?二、MyBatis框架2.1 概念2.2 访问与下载三、构建Maven项目3.1 新建项目3.2 选择Maven目录3.3 GAV坐标四、MyBatis入门案例【重点】4.1 pom.xml中引入MyBatis核心依赖4.2 创建db.properties配置文件4.3 创建log4j.properties配置文件4.4 创建mybatis-config.xml配置文件4.5 建表4.6 定义实体类4.7 定义DAO接口4.8 编写Mapper.xml4.9 注册Mapper测试五、MyBatis的CRUD操作【重点】7.1 在Dao添加方法7.2 在Mapper.xml中添加对应的方法7.3 测试六、Druid连接池6.1 概念6.2基准测试结果对比6.3 测试结论6.4 配置pom.xml6.5 创建DruidDataSourceFactory6.6修改mybatis-config.xml七、PageHelper7.1 概念7.2 访问与下载7.3 开发步骤7.4 PageInfo对象7.5 注意事项
一、引言
1.1 什么是框架?
1.2 什么是ORM框架?
ORM(Object Relational Mapping)对象关系映射,将程序中的
ORM框架提供了持久化类与表的映射关系,在运行时参照映射文件的信息,
1.3 使用JDBC完成ORM操作的缺点?
存在大量的冗余代码。
手工创建 Connection、Statement 等。
手工将结果集封装成实体对象。
查询效率低,没有对数据访问进行过优化(Not Cache)。
二、MyBatis框架
2.1 概念
MyBatis本是Apache软件基金会的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了Google Code,并且改名为MyBatis 。2013年11月迁移到Github。
MyBatis是一个
MyBatis
MyBatis可以使用简单的XML或Annotation来配置执行SQL,并
2.2 访问与下载
官方网站:http://www.mybatis.org/mybatis-3/
下载地址:https://github.com/mybatis/mybatis-3/releases/tag/mybatis-3.5.1
三、构建Maven项目
3.1 新建项目
| 使用IDEA打开已创建的文件夹目录 |
|---|
3.2 选择Maven目录
| 选择Maven项目 |
|---|
3.3 GAV坐标
| GAV坐标 |
|---|
四、MyBatis入门案例【重点】
4.1 pom.xml中引入MyBatis核心依赖
在pom.xml中引入相关依赖
4.2 创建db.properties配置文件
在resources目录下创建db.properties
jdbc.url=jdbc:mysql://localhost:3306/java2002?serverTimezone=Asia/Shanghai
jdbc.username=root
jdbc.password=root
jdbc.driver=com.mysql.cj.jdbc.Driver
4.3 创建log4j.properties配置文件
在resources目录下创建log4j.properties
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
| 级别 | 描述 |
|---|---|
| ALL LEVEL | 打开所有日志记录开关;是最低等级的,用于打开所有日志记录。 |
| INFO | 输出提示信息;消息在粗粒度级别上突出强调应用程序的运行过程。 |
| WARN | 输出警告信息;表明会出现潜在错误的情形。 |
| ERROR | 输出错误信息;指出虽然发生错误事件,但仍然不影响系统的继续运行。 |
| FATAL | 输出致命错误;指出每个严重的错误事件将会导致应用程序的退出。 |
| OFF LEVEL | 关闭所有日志记录开关;是最高等级的,用于关闭所有日志记录。 |
4.4 创建mybatis-config.xml配置文件
在resources目录下创建并配置mybatis-config.xml
4.5 建表
create table t_user(
id int primary key auto_increment,
name varchar(50),
password varchar(50)
)default charset = utf8;
INSERT INTO t_user(NAME,PASSWORD) VALUES("jack","123");
INSERT INTO t_user(NAME,PASSWORD) VALUES("tom","456");
INSERT INTO t_user(NAME,PASSWORD) VALUES("rose","789");
4.6 定义实体类
定义所需CURD操作的实体类
package com.qf.entity;
import lombok.Data;
import java.io.Serializable;
4.7 定义DAO接口
根据所需DAO定义接口、以及方法
package com.qf.dao;
import com.qf.entity.User;
public interface UserDao {
public List<User> findAll();
}
4.8 编写Mapper.xml
在resources目录中下创建与Dao对应的路径和Mapper.xml文件
4.9 注册Mapper
将Mapper.xml注册到mybatis-config.xml中
<!-- 指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件 -->
<mappers>
<!--<mapper resource="com/qf/dao/UserDao.xml"/>-->
<!--<mapper class="com.qf.dao.UserDao"/>-->
<package name="com.qf.dao"/>
</mappers>
测试
在\src\test\java目录下创建测试类进行测试
package com.qf.demo;
import com.qf.dao.UserDao;
import com.qf.entity.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.InputStream;
import java.util.List;
public class MybatisTest {
//查询所有
五、MyBatis的CRUD操作【重点】
7.1 在Dao添加方法
在src\main\java\com\qf\dao\UserDao.java中添加方法
package com.qf.dao;
import com.qf.entity.User;
import org.apache.ibatis.annotations.Param;
import java.util.HashMap;
import java.util.List;
public interface UserDao {
public List<User> findAll();
public User findById(
7.2 在Mapper.xml中添加对应的方法
在\src\main\resources\com\qf\dao\UserDao.xml中写对应的sql
7.3 测试
在\src\test\java目录下测试类中添加方法进行测试
package com.qf.demo;
import com.qf.dao.UserDao;
import com.qf.entity.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
public class MybatisTest {
//查询所有