MyBatis学习01--配置MyBatis
什么是MyBatis框架
mybatis 是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,使开发者只需要关注 sql 语句本身,而不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。
mybatis 通过xml 或注解的方式将要执行的各种statement 配置起来,并通过java 对象和statement 中sql的动态参数进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行 sql并将结果映射为 java 对象并返回。
采用 ORM 思想解决了实体和数据库映射的问题,对jdbc 进行了封装,屏蔽了jdbc api 底层访问细节,使我们不用与 jdbc api打交道,就可以完成对数据库的持久化操作。
官网: http://www.mybatis.org/mybatis-3/
使用MyBatis
<!--mybatis的依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.3</version>
</dependency>
1.1创建User实体类
- User .java
public class User implements Serializable{
private int uid; //用户id
private String username;// 用户姓名
private String sex;// 性别
private Date birthday;// 生日
private String address;// 地址
}
1.2创建 UserDao 接口
- UserDao 接口就是持久层接口(也可以写成 UserMapper) .可以写成UserDao ,具体代码如下:
public interface UserDao {
public List<User> findAll();
}
1.3创建 UserDao.xml 映射文件
注意:
- 映射配置文件存储的路径在resources里面,要和对应的Dao接口的路径保持一致
- 映射配置文件的文件名必须和Dao接口名保持一致
- 一定要引入约束文件
<?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,一个映射配置文件,就对应一个dao接口
根标签的namespace属性的值就对应dao接口的全限定名
-->
<mapper namespace="com.itheima.dao.UserDao">
<!--
根标签的每一个子标签就对应dao接口的每一个方法:
select标签就对应查询方法
标签的id的值对应方法的名字
标签的resultType的值就对应封装结果的类型,如果封装结果的类型是List就对应其泛型的类型
标签体的内容就是要执行的SQL语句
-->
<select id="findAll" resultType="com.itheima.pojo.User">
select * from t_user
</select>
</mapper>
1.4创建 SqlMapConfig.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
-->
<configuration>
<!--
配置数据库的环境信息:
environments: 表示里面可以配置多个环境,default表示使用哪个环境
environment: 每一个environment表示一种环境
为什么要配置多个环境: 因为我们有多个环境(开发环境、生产环境(真正项目之后运行的环境)、测试环境)
-->
<environments default="dev">
<!--开发环境-->
<environment id="dev">
<!--
事务管理者,type为JDBC表示使用JDBC的事务管理者(了解)
-->
<transactionManager type="JDBC"></transactionManager>
<!--
dataSource表示数据源,1. POOLED表示使用自带连接池 2. UNPOOLED表示不使用连接池 3. JNDI表示使用JNDI的连接池
-->
<dataSource type="POOLED">
<!--连接池的配置信息-->
<property name="username" value="root"/>
<property name="password" value="123"/>
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///mybatis_day01?characterEncoding=utf8"/>
</dataSource>
</environment>
<!--生产环境-->
<environment id="pro">
<transactionManager type=""></transactionManager>
<dataSource type=""></dataSource>
</environment>
<!--测试环境-->
<environment id="test">
<transactionManager type=""></transactionManager>
<dataSource type=""></dataSource>
</environment>
</environments>
<!--
指定加载哪些映射配置文件: mappers
mapper标签: 每一个mapper标签负责加载一个映射配置文件;resource指定要加载的映射配置文件的路径
-->
<mappers>
<mapper resource="com/itheima/dao/UserDao.xml"></mapper>
</mappers>
</configuration>
步骤
- 创建maven工程(javase)
- 引入依赖:mysql、mybatis、Junit、lombok
- 创建POJO类、创建Dao接口
- 创建Dao接口对应的映射配置文件
1. 路径要在resources里面和Dao接口的路径一致,而且在resources目录中创建目录的时候要使用"/"而不是"."
2. 映射配置文件的文件名要和对应的Dao接口的名字一致 - 创建mybatis的核心配置文件
- 编写mybatis的测试代码进行测试