Mybatis(一)mybatis简介及配置文件
前言:作为一名在未来要从事计算机工作的在校学生,在学习任何一种知识或技术之前,我认为都需要先明白三个问题:
- 为什么要学习它
- 它有什么作用
- 学完后对我有什么提升
弄清楚以上问题后,我们学习的效果会大大提升。
1、Mybatis简介
按照mybatis官方文档的定义,MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
2、为什么要使用Mybatis
在使用传统的JDBC时有没有感觉到一个问题——在对数据库进行增删改查的过程中,对数据库的任何一个操作我们都需要创建一个单独的方法,频繁的进行相关对象的创建和关闭;并且在方法的内部,众多代码都是重复的,只有SQL语句和执行的方法略有不同;而使用Mybatis就可以解决这种问题。
3、Mybatis提供的功能
- 提供了创建Connection、PreparedStatement、Statement、ResultSet等对象的功能,不需要开发人员创建
- 提供了执行SQL语句的功能
- 提供了遍历SQL结果,将结果集转化为Java对象、List集合的功能
- 提供了关闭资源的功能
通过Mybatis提供的功能,开发人员只需要集中精力写SQL语句,根据相关类的调用,让Mybatis对SQL语句进行处理,我们可以得到含有数据信息的List集合或Java对象。
4、使用前准备工作
- 在maven项目中的pom.xml文件中加入Mybatis依赖
<!--Mybatis依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.5</version>
</dependency>
- Mybatis主配置文件
<?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>
<!--控制Mybatis-->
<settings>
<!--开启输出日志功能-->
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
<!--指定所使用的数据库-->
<environments default="dbTest">
<!--一个environment代表一个数据库-->
<environment id="dbTest">
<transactionManager type="JDBC"/>
<!--POOLED为连接池-->
<dataSource type="POOLED">
<!--指定数据库驱动-->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<!--指定URL-->
<property name="url" value="jdbc:mysql://localhost:3306/user_test"/>
<!--数据库用户名-->
<property name="username" value="root"/>
<!--密码-->
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!--指定Sql映射文件(SQL Mapper)-->
<mappers>
<mapper resource="映射文件的相对路径"/>
</mappers>
</configuration>
- 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">
<!--约束文件,检查该文件格式是否符合Mybatis语法-->
<!--namespace指定接口-->
<mapper namespace="接口文件全名">
<select id="接口中方法名" resultType="返回值的数据类型">
<!-- 查询SQL语句 -->
</select>
<insert id="接口中方法名">
<!-- 插入SQL语句 -->
</insert>
<update id="接口中方法名">
<!-- 更新SQL语句 -->
</update>
<delete id="接口中方法名">
<!-- 删除SQL语句 -->
</delete>
</mapper>
SQL映射文件中的接口及接口中的方***在后续的文章中进行解释,该分栏持续更新中…