文章目录
什么是Mybatis?
Mybatis是一个免费开源框架,原名叫iBatis,2010在Google code,2013年迁移到GitHub,是一款数据访问层框架
Mybatis的作用
底层就是对JDBC的封装
Mybatis环境搭建
1. 导入Mybatis架包,导入源码
- 导入Mybatis架包所需要的jar文件,所有支持文件都在Mybatis的lib目录下
2. 配置config文件
在项目下新建config(配置文件)文件夹,在config文件夹下面新建Mybatis-config.xml
配置文件,特别注意:config文件夹一定要是源文件夹,如果不知道就直接将Mybatis-config.xml
放在src下
2.1在全局配置文件中引入DTD或者schema
注意:如果不导入就没有提示,详情请参照Mybatis帮助文档-入门
DTD文件是用来验证XML文档的合法性,约束xml文件,https://www.runoob.com/xml/xml-dtd.html,可以直接写网址,也可以引入本地dtd文件
2.2 mybatis.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" > <!-- default引用下面environment标签的id,代表当前所使用的的环境 -->
<!-- 声明可以使用的环境 -->
<environment id="development">
<!-- 使用原生JDBC事务 ,等同于 setAutoCommic(false), -->
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED"><!-- type里面必须写 -->
<!-- 下面四个变量必须严格按照以下名称来写 -->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/><!-- 写jdbc加载的cdriverClass驱动类 -->
<property name="url" value="jdbc:mysql://localhost:3306/flight?useSSL=false&serverTimezone=UTC"/><!-- 连接数据的url -->
<property name="username" value="root"/><!-- 连接数据库的用户名 -->
<property name="password" value="lh19990909"/><!-- 连接数据库的密码 -->
</dataSource>
</environment>
</environments>
<!-- 每配置一个mapper.xml文件,就需要在这里插入一个 -->
<mappers>
<mapper resource="cn/host/back/mapper/FlowerMapper.xml" />
</mappers>
</configuration>
5. 配置mapper
我们需要在src新建mapper包(代替MVC模式下的数据层),在包下面新建:实体类名+Mapper.xml文件
- 文件作用:在里面编写需要执行的SQL命令
- 我们可以把这个xml文件理解成实现类,Mybatis底层通过反射和xml解析,将这个文件转换成实现类,我们只要专注于写SQL命令就行
<?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="" > <!-- namespace 理解成实现类的全路径(包名+类名) -->
<!--
id里面放 :方法名
parameterType:定义参数的类型
resultType 返回值类型 (主要要写全路径(包名+类名))
注意:如果方法返回值是list,在resultType中写List的泛型,因为MyBatis对JDBC封装,一行一行的读取数据
-->
<select id="setFlowerAll" parameterType="" resultType="cn.web.back.object.Flower" >
select* from flower
</select>
</mapper>