学习Mybatis框架(持久层框架)—介绍篇
文章目录
1.1.1 什么是框架
框架(Framework)是整个或部分系统的可重设计,表现为一组抽象构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用的方面,后者是从目的方面给出的定义。(半成品的应用)
三层架构—表现层,业务层,持久层
表现层:用于展示数据的
业务层:是处理业务需求
持久层:和数据库就行交互的
持久层技术的解决方案:
JDBC技术:
1、Connection
2、PreparedStatement
3、ResultSet
Spring的JdbcTemplate:
1、Spring中对jdbc的简单封装
Apache的DBUtils:
1、它和Spring的JdbcTemplate很像,也是对Jdbc的简单封装。
但是:
它们都不是框架,JDBC是一种规范,而JdbcTemplate和Apache的DBUtils都只是工具类。
1.1.2 框架解决的问题
1、框架封装了许多的细节,使开发者可以使用极简的方式实现功能,使得开发效率极大的提高。
2、
1.1.3 MyBatis框架的概述
mybatis是一个优秀的基于java的持久层框架,它的内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理驱动、创建连接、创建Statement的繁杂操作。
mybatis通过xml或者注解的方式将执行的各种Statement配置起来。并且通过java对象和statement中的sql的动态数据参数进行映射生成最终执行的sql语句,最终由mybatis框架执行sql并将结果映射为java对象返回
MyBatis框架采用了ORM(Object Relation Mapping—对象关系映射)思想解决了实体和数据库映射的问题,对JDBC进行了封装,屏蔽了JDBC api底层访问细节,使我们不用与JDBC api进行交流就可以实现对数据库的持久化操作。
1.1.4 MyBatis的简单实现
配置文件详解
dependencies:定义本项目中的依赖关系
parent:父项目的坐标
artifactId:构件标识符
groupId:全球唯一标识符
version:版本
1.1.5 创建文件的步骤
mybatis的环境搭建
- 创建Maven工程并导入位置
- 创建实体类和dao接口
- 在resource中创建并配置主配置文件—SqlMapCOnfig.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>
<!-- 配置環境 配置mysql的環境 -->
<!-- 配置環境 配置mysql的環境 基于mysql8.0以下的驱动配置-->
<environments default="mysql">
<environment id="mysql">
<!-- 配置事务类型 -->
<transactionManager type="JDBC"></transactionManager>
<!-- 配置数据池 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/textmybatis" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
<!-- 配置映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件 -->
</configuration>
<!--配置mysql8.0的操作-->
<environments default="mysql">
<!--配置mysql的环境-->
<environment id="mysql">
<!--事务类型-->
<transactionManager type="JDBC"></transactionManager>
<!--连接池-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<!--此处如果使用的为‘&’ 那么系统会提示你应该改为 ‘;’,如果此处改为;仍然报错可以使用一以下的声明方式-->
<property name="url" value="jdbc:mysql://localhost:3306/textmybatis?useUnicode=ture&characterEncoding=utf-8&serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
- 创建映射配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!-- 配置mybatis的映射文件 -->
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.fantasy.Dao.UserDao">
<!-- 配置查询所有 其中id不能乱写,要对应UserDao中的接口方法对应 -->
<select id="findAll">
select * from userinfo;
</select>
</mapper>
- 注意事项:
1) 创建的映射配置文件不一定就是叫UserDao.xml 其他的文件中也有可能叫做Mapper
2)包的创建和目录的创建的结果是不一样的:com.bag是二级目录,而在创建的目录中它属于一级目录,文件夹的名称就叫做com.bag
3)mybatis的映射配置文件位置必须和Dao接口的包名结构相同
4)映射配置文件的mapper标签namespace属性取值必须是dao接口的全限定类名
5)映射配置文件的操作配置,id属性的取值必须是dao接口的方法名