框架是一个模板、是一个半成品的软件:
- 框架中定义好了一些功能,这些功能是可用的。可以加入项目自己的功能,这些功能可以利用框架中写好的功能!
界面层 User Interface layer
主要功能是接受用户的数据,显示请求的处理结构。
对应的包:controller包 (servlet)
业务逻辑层 Business Logic Layer
接收表示传输过来的数据,检查数据,计算业务逻辑,调用数据访问层获取数据。
对应的包:service包(XXXservice类)
数据访问层 Data access layer
与数据库打交道。主要实现对数据的增删改查,将存储在数据库中的数据提交到业务层,同时将业务层的数据保存到数据库。
对应的包:dao包(XXXX类)
三层的处理请求的交互:
用户–>界面层–>业务逻辑层–>数据访问层–>DB数据库
三层对应的处理框架:
界面层--------servlet---------springMVC(框架)
业务逻辑层--------service类--------spring(框架)
数据访问层---------dao类---------mybatis(框架)
Mybatis的功能sql mapper:sql映射
可以把数据库表中的一行数据,映射为一个java对象操作这个对象相当于操作表中的数据。
Data Access Objects(DAos):数据访问
数据访问,对数据库执行增删改查。
Mybatis提供了哪些功能?
- 创建Connection、Statement、ResultSet的能力,不用开发人员再创建这些对象。执行sql语句的能力,不需要再执行提供了循环sql,把sql结果转为java对象,list集合的能力。提供了关闭资源的能力!
总结:mybatis是一个sql映射框架,提供了数据库的操作能力,可以说是一个增强的JDBC框架,使用mybatis可以让可以让开发人员集中精神写sql语句就可以了,不必关心Connection、Statement、ResultSet的创建和销毁,以及sql语句的执行过程。
初次使用 下载到本地怎样在github上下载mybatis?
- 登录github官网搜索mybatis,点击选择mybatis-3
- 下拉找到download latest
- 找到想要的版本然后点击就可以下载
- 创建数据库表
创建一个maven项目,加入mybatis的坐标和mysql数据库的驱动坐标
org.mybatis
mybatis
3.5.5
mysql
mysql-connector-java
5.1.47
- 创建实体类,Student—保存表中的一行数据
package com.liang.entity;
public class Student {
//定义属性,目前要求是属性名和列名一样
private Integer id;
private String name;
private String email;
private Integer age;
public Student() {
}
public Student(Integer id, String name, String email, Integer age) {
this.id = id;
this.name = name;
this.email = email;
this.age = age;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + ''' +
", email='" + email + ''' +
", age=" + age +
'}';
}
}
- 创建持久层的Dao接口,定义操作数据库的方法
package com.liang.dao;
import com.liang.entity.Student;
import java.util.List;
public interface StudentDao {
public List selectStudents();
}
创建一个mybatis的使用配置文件
叫做sql映射文件:写sql语句的。一般一个表一个sql映射文件。
这个文件是xml文件。
①文件写在接口所在的目录中。
②文件名称和接口保持一致。
创建mybatis的主配置文件:mybatis.xml
一个项目就一个主配置文件。主配置文件提供了数据库连接信息和sql映射文件的位置信息。
注意编译后的resources下的文件要拷贝到classes目录下,在pom文件中添加如下插件:
src/main/java ***.xml false src/main/resources config public class MyApp { public static void main(String[] args) throws IOException { //访问mybatis读取student数据 //1. 定义mybatis主配置 String config = "mybatis.xml"; //2. 读取这个文件 InputStream in = Resources.getResourceAsStream(config); //3. 创建SqlSessionFactoryBuilder对象 SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); //4. 创建SqlSessionFactory对象 SqlSessionFactory factory = builder.build(in); //5. 获取SqlSession对象【重要】 SqlSession sqlSession = factory.openSession(); //6. 指定执行sql语句的标识,sql映射文件中的namespace+"."+标签的id值【重要】 String sqlId = "com.liang.dao.StudentDao"+"."+"selectStudents"; //7. 执行sql语句 List students = sqlSession.selectList(sqlId); //8. 输出结果 //students.forEach(student -> System.out.println(student)); //也可以这样输出 for(Student student:students){ System.out.println("查询的学生:"+student); } //9. 关闭资源 sqlSession.close(); } }
- 测试结果
使用2020版本之后的IDEA测试可能会报错:Error:(3, 28) java: 程序包org.apache.ibatis.io不存在
实在不行可以私信我帮助哦~
解决方法:参考下面的博客:
https://blog.csdn.net/weixin_44836728/article/details/108322959
https://blog.csdn.net/bin_bujiangjiu/article/details/106784700
https://blog.csdn.net/bin_bujiangjiu/article/details/106727561
测试结果:
- 目录结构
- 加入maven依赖创建Dao接口:接口中定义了你操作数据的方法创建mapper文件,也叫mapper映射:用来写sql语句,和接口中方法对应的sql语句创建mybatis的主配置文件:①连接数据库;②指定mapper文件的位置使用mybatis的对象,sqlsession,通过他的方法执行sql语句



