mybatis基础入门
MyBatis概述
1、ORM模型。2、MyBatis概述。3、MyBatis使用优势及应用场景
ORM模型简介
- ORM对象关系映射(Object Relation Mapping)
- Object:java中的对象
- Mapping:数据库中的表
- Relation:关系映射
传统JDBC程序设计缺陷 - 大量配置信息硬编码
- 大量的无关业务的处理编码
- 扩展优化极为不便
MyBatis概述
Mybatis是支持定制化SQL、存储过程以及高级映射的持久性框架 - 避免传统的JDBC硬编码
- XML配置或注解
- POJO对象和数据库记录直接映射
- 完善的文档支持
MyBatis的使用优势 - 简单易学,快速上手,学习成本低
- 数据库交互信息配置化
- 动态SQL处理
MyBatis开发环境搭建
官网
GETHUB下载离线安装包
maven添加依赖依赖查找网站
传统项目中使用MyBatis
- gethub下载mybatis
- 项目中导入jar包
maven方式引入
- 在依赖查询网站找到mubatis
- 配置到pom.xml中
入门程序
-
开发环境:windows+jdk1.8+IDLE+Mysql
-
需求:完成一个数据的查询流程
-
目的:了解mybatis核心API的操作流程
-
扩展:了解mubatis的工作流程
1、创建一个maven项目,不用选archetype,JDK任选吧
2、填写groupId,ArifactId
3、finsh
4、项目结构
main:正式编写的代码
java:源代码
resources:配置文件
test:测试代码
pom.xml文件:maven 项目文件,配置jar包依赖
5、配置相应jar包依赖 -
进入网站搜索添加链接描述
-
找到mybatis的jar依赖,和mysql连接的依赖,配置到pom.xml中
<dependencies>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.41</version>
</dependency>
</dependencies>
6、XML配置主配置文件配置
在main中resources下新建一个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">
<!--事务管理使用默认的jdbc管理-->
<transactionManager type="JDBC"/>
<!--使用数据库连接池 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mytest"/>
<property name="username" value="root"/>
<property name="password" value="110110110"/>
</dataSource>
</environment>
</environments>
<!--映射配置文件的路径-->
<mappers>
</mappers>
</configuration>
7、创建数据库
CREATE DATABASE test;
use test;
CREATE TABLE users(
id int auto_increment PRIMARY KEY COMMENT '用户编号',
username VARCHAR(50) COMMENT '这是登录账号',
password VARCHAR(50) COMMENT '这是登录密码',
nickname VARCHAR(20) COMMENT '用户昵称'
);
INSERT into users VALUES(1,'admin','admin','管理员');
8、创建一个与数据表对应的实体类
package club.bagedate.users;
public class user {
private int id;
private String username;
private String password;
private String nickname;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
@Override
public String toString() {
return "user{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", nickname='" + nickname + '\'' +
'}';
}
}
9、在resources中创建一个mapper文件夹,在文件夹中定义映射关系
创建一个usersMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace 命名空间
通常情况,命名空间的值,就是当前操作实体类对象的全名称
-->
<mapper namespace="club.bagedate.users.user">
<select id="userList" resultType="club.bagedate.users.user">
select * from users
</select>
</mapper>
将映射关系配置到mabatis.xml中
在mappers中添加映射
10、在test中进行测试
测试之前需要引入junit包在pom.xml中
public class TestDemo {
@Test
public void testDemo01() throws IOException {
//初始化mybatis配置环境
String resource = "mybatis.xml";
InputStream is = Resources.getResourceAsStream(resource);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
//打开和数据库之间的会话
SqlSession session = factory.openSession();
List<user> userList = session.selectList("userList");
for (user a:userList
) {
System.out.println(a);
}
session.close();
}
}