快速入门mybatis(查询、添加日志、插入)
参考学习视频网址:https://www.bilibili.com/video/BV185411s7Ry?p=9&spm_id_from=pageDriver
一、三层架构
-
界面层:和用户打交道,接受用户请求参数(jsp,html,servlet)
-
业务逻辑层:接受界面层传来的数据,计算逻辑,调用数据库获取数据
-
数据访问层:访问数据库,增删改查
三层对应包
- 界面层 controller包(servlet)
- 业务逻辑层 service包(XXXService类)
- 数据访问层 dao包(XXXDao类)
三层数据层交互
用户使用界面层—>业务逻辑层---->数据访问层(持久层)—>数据库
三层处理的数据
界面层-----servlet----springmvc(框架)
业务逻辑层----service类----spring(框架)
数据访问层----dao类----mybatis(框架)
二、mybatis框架
一个框架,早期交ibatis,代码在github
mabatis是MyBatis SQL Mapper Framework for Java
-
sql Mapper:sql映射
把数据库中的一行对象映射为一个java对象。
一行数据看作对象,操作对象就是操作数据库表里的数据
-
Data Access Objects(DAOs):数据访问,对数据库增删改查
提供的功能:
1) 提供创建Connection,Statement,ResultSet的能力,不需要再次手动创建
2) 执行sql语句
3) 循环sql,将结果转化为java对象、List集合
4) 提供了关闭资源能力,不需要手动关闭Connection,Statement,ResultSet
开发人员做的内容:写sql语句
开发人员提供sql语句—mybatis处理sql----开发人员得到List集合或java对象
mybatis实现步骤:
-
在数据库新建一个student表
-
加入maven的mybatis坐标,sql驱动坐标
-
创建Student类,存储表中的属性
-
创建数据访问层(持久层)的DAO类接口,定义操作数据库的方法
-
创建mybatis的配置文件xml
称为sql映射文件,用来写sql语句。(一般一个表对应一个映射文件)
- 映射文件写在接口所在目录中
- 和接口名保持一致
-
创建mybatis主配置文件,一个项目一个主配置文件。
主配置文件提供数据库连接信息和sql映射文件的位置信息
-
创建使用mybatis类,通过mybatis访问数据库
具体代码操作(查询)
配置文件信息目录如下
在dao类写StudentDao(作为接口,存储一个方法),StudentDao.xml
在resources下创建主配置文件
StudentDao接口代码:
package com.lkb.dao;
import com.lkb.domian.Student;
import java.util.List;
/**
* @Author:lkb
* @Date: 2021/11/9 22:50
* 接口操作Student表
*/
public interface StudentDao {
/**查询Student类表所需要的数据*/
public List<Student> selectStudents();
}
StudentDao.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">
<mapper namespace="com.lkb.dao.StudentDao">
<!-- <select id="selectBlog" resultType="Blog">
select * from Blog where id = #{id}
</select>
-->
<!--
select:表示查询操作
id:填写接口中的方法名称。
执行sql语句的唯一标识,mybatis根据这个标识来执行sql语句
resultType:sql语句执行后返回的java对象类型(resultSet)
值为类型的全限定名称
-->
<select id="selectStudents" resultType="com.lkb.domian.Student">
select * from student;
</select>
</mapper>
<!--
sql映射文件:写sql语句。mybatis会执行这些语句
1.指定约束文件
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
mybatis-3-mapper.dtd约束文件名称
2.约束文件作用:限制检查当前文件中的标签,属性必须符合mybatis要求
3.mapper是当前文件根标签,必须有
namespace命名空间,唯一值,可以自定义。要求使用dao接口的全限定名称
4.当前文件特定标签特定操作
<select>
<alter>
<insert>
-->
全局配置文件mybatis.xml放在Resources目录下
<?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>
<!-- 环境配置:数据库环境信息
default必须和某个environment的id值一样,告诉mybatis使用哪个数据库的连接信息
-->
<environments default="mydev">
<!-- environment:一个数据库信息的配置 环境
id:唯一值,表示环境名 给环境配置取一个名
-->
<environment id="mydev">
<!-- transactionManager:mybatis的事物类型
type:JDBC表示使用JDBC中的connection对象的commit,rollback做事务处理
-->
<transactionManager type="JDBC"/>
<!-- dataSource