赞
踩
环境:
JDK1.8
mysql 8.0.16
maven3.6.1
IDEA
回顾:
mybatis是支持普通SQL查询、存储过程和高级映射的优秀持久层框架。
MyBatis 是一款优秀的持久层框架
支持自定义 SQL、存储过程以及高级映射
MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作
MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录
如何获取mybits:
maven仓库
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
Github:
中文学习文档:https://mybatis.net.cn/
数据持久化
数据持久化指程序的数据在持久状态与瞬时状态转化的过程
内存:断电即失
数据库(jdbc):io文件持久化
为什么需要持久化
内存太贵了
有些对象不能缺失(如银行的账户和密码)
dao层、service层、controller层…
完成持久化工作的代码块
界限十分明显
步骤
create database 'mybatis';
use mybatis;
CREATE TABLE user(
id int not null PRIMARY KEY,
name VARCHAR(20) DEFAULT NULL,
psw VARCHAR(20) DEFAULT NULL
)ENGINE=INNODB DEFAULT CHARSET=utf8;
INSERT INTO USER VALUES(1,'李白','123'),(2,'杜甫','234'),(3,'苏轼','333');
新建一个普通的maven项目
删除一个src目录(父工程)
导入maven依赖
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.16</version> </dependency> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.6</version> </dependency> </dependencies>
编写mybatis的核心配置文件
<?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="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <!--每一个mapper.xml都需要在mybatis核心配置文件中注册--> <mappers> <mapper resource="com/kuang/dao/UserMapper.xml"/> </mappers> </configuration>
编写mybatis工具
public class MybatisUtil { private static SqlSessionFactory sqlSessionFactory; static { try { //使用mybatis的第一步,获取sqlSessionFactory对象 String resource = "src\\main\\resources\\mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } // 既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。 // SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。 public SqlSession getsqlSession(){ return sqlSessionFactory.openSession(); } }
实体类
public class User { private int id; private String name; private String psw; public User() { } public User(int id, String name, String psw) { this.id = id; this.name = name; this.psw = psw; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPsw() { return psw; } public void setPsw(String psw) { this.psw = psw; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", psw='" + psw + '\'' + '}'; } }
Dao接口
public interface UserDao {
List<User> getUserList();
}
接口实现类由原来的UserDaoImpl转变为一个Mapper配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。