====
1、框架介绍
框架是我们使用软件开发中的一套解决方案,不同的框架能解决不同的问题,在框架中封装了很多的细节,使开发者可以使用极为简便的方式实现功能,大大的提升了开发的效率。
2、三层架构
-
表现层:用于展现数据
-
业务层:用于处理业务需求
-
持久层:用于和数据库交互
3、MyBatis 框架简介
mybatis是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,使开发者只需要关注 sql语句本身, 而不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程,它使用了ORM思想实现了结果集的封装。
ORM:Object Relational Mapping(对象关系映射),即:把数据库表和实体类及实体类的属性对应起来,让开发人员可以操作实体类就可以实现对数据库表的操作
二、IntelliJ IDEA使用MyBatis框架
==========================
1、mybatis的环境搭建(查询)
【1】前期准备
在搭建之前先创建了mybatis数据库,并创建了user表,填入 id、username、birthday、sex、address 字段相关的数据
【2】创建 maven 工程
全部创建好后目录结构如下:
从目录结构可以看到:
-
dao包下的IUserDao为dao接口
-
domain下的User类为实体类,是自己根据需求定义的javabean文件
-
resources下的SqlMapConfig.xml为mybatis的主配置文件
-
resources下的com.LSTAR.dao下的IUserDao.xml为映射配置文件
-
最下面pom.xml为maven工程导入的坐标
【3】导入坐标
在 pom.xml 文件中添加 Mybatis3.4.5 坐标和相关坐标
<?xml version="1.0" encoding="UTF-8"?><project xmlns=“http://maven.apache.org/POM/4.0.0”
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>
4.0.0
com.oneStar
oneMybatis
1.0-SNAPSHOT
org.mybatis
mybatis
3.4.5
mysql
mysql-connector-java
5.1.32
log4j
log4j
1.2.17
junit
junit
4.12
【4】编写 User 实体类
public class User {
private Integer id;
private String username;
private Date birthday;
private String sex;
private String address;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUeername() {
return username;
}
public void setUeername(String ueername) {
this.username = ueername;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return “User{” +
“id=” + id +
“, ueername='” + username + ‘’’ +
“, birthday=” + birthday +
“, sex='” + sex + ‘’’ +
“, address='” + address + ‘’’ +
‘}’;
}
}
【5】编写持久层接口 IUserDao
public interface IUserDao {
/**
-
查询所有操作
-
@return
*/
List findAll();
}
【6】编写持久层接口的映射文件 IUserDao.xml
-
创建位置:必须和持久层接口在相同的包中
-
名称:必须以持久层接口名称命名,拓展名为 .xml
select * from user
【7】创建 SqlMapConifg.xml 配置文件
<?xml version="1.0" encoding="UTF-8"?>【8】测试类
Mybatis 在测试类中使用的模式:
-
SqlSessionFactory factory = builder.build(in);
-
构建者模式:把对象的创建细节隐藏,使用者直接调用方法即可拿到对象
-
factory.openSession();
-
工厂模式:降低了类之间的依赖关系
-
session.getMapper(IUserDao.class);
-
代理模式:不改变源码的基础上对已有的方法进行增强
public class mybatisTest {
@Test
public void Test() throws IOException {
//1.读取配置文件
InputStream in = Resources.getResourceAsStream(“SqlMapConfig.xml”);
//2.创建 SqlSessionFactory 的构建者对