目录
一、Mybatis 概述
1.背景
2.简介
3.Mybatis 中文官网
二、MyBatis 环境搭建(超全!!!)
1.创建一张表和表对应的实体类
2.导入 MyBatis jar包,mysql数据库驱动包
3.创建 MyBatis全局配置文件
4. 在接口中定义方法
5. 创建 sql 映射文件
6.配置sql映射文件
7.测试 MyBatis
三、配置解析
1.事务管理方式
2.数据库连接池配置
3.打印执行日志
4.为类型配置别名
一、Mybatis 概述
1.背景
Mybatis 原是Apache 的一个开源项目 iBatis , 2010年6月这个项目由Apache Software Foundation 迁移到了 Google Code ,随着开发团队转投Google Code 旗下, iBatis3.x正式更名为 MyBatis 。
2.简介
• MyBatis 是一款优秀的持久层框架。• MyBatis 避免了几乎所有的 JDBC 代码手动设置参数以及手动获取结果集的操作。• Mybatis 将基本的 JDBC 常用接口封装,对外提供操作即可。• MyBatis 可以使用 XML 或注解来配置和映射,将数据库中的记录映射成 Java 的 POJO(Plain Old Java Objects,普通的 Java 对象),是一种 ORM(ORM Object Relational Mapping 对象关系映射)实现。• MyBatis 支持动态 SQL 以及数据缓存。
3.Mybatis 中文官网
二、MyBatis 环境搭建(超全!!!)
1.创建一张表和表对应的实体类
在mysql中创建一个名为admin的表,创建相关属性
插入一行数据,便于测试
在idea中新建一个Maven项目——mybatis
在java目录下创建一个包,在该包下创建类Admin
在类里创建四个属性,来封装数据(和数据库保持一致)
生成get,set方法(右键之后,选择Generate)
选择getter and setter
按住Ctrl键全选这四个属性 ,点击OK
这样就好啦!
2.导入 MyBatis jar包,mysql数据库驱动包
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId><version>3.4.2</version>
</dependency>
复制MyBatis jar包和mysql jar包到 pom.xml文件里
这样就算配置好啦!
3.创建 MyBatis全局配置文件
在resources(放置项目中的配置文件)中创建xml文件
命名为mybatis.xml文件
将下面这段粘贴到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">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="" />
<property name="url" value="" />
<property name="username" value="" />
<property name="password" value=""/>
</dataSource>
</environment>
</environments>
</configuration>
配置数据库连接的四个必要信息,把值填进去(之前在jdbc的,粘贴过来)
4. 在接口中定义方法
创建一个dao包,在该包下创建AdminDao接口
在该接口中定义方法
5. 创建 sql 映射文件
在resources中创建mappers目录
在mappers目录下,创建AdminMapper.xml文件
将下面这段粘贴到AdminMappear.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="接口地址">
定义 sql 语句
</mapper>
配置接口地址
在定义sql语句中写查询语句,id写刚才接口中定义的方法名,parameterMap写传入的参数类型,resultType写返回结果的地址,中间写查询的sql语句
6.配置sql映射文件
在刚才创建的mybatis.xml文件配置sql映射文件
7.测试 MyBatis
新建一个test包,Test类
在Test测试类的main方法中进行下列操作
①首先先读入mybatis核心配置文件
读取配置文件Reader reader = Resources.getResourceAsReader("mybatis.xml");
②创建 SqlSessionFactory对象
创建 SqlSessionFactory对象(把reader放进去)SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
③ 创建 SqlSession对象
创建 SqlSession对象
SqlSession sqlSession = sessionFactory.openSession();
④为接口创建代理对象
为接口创建代理对象
AdminDao adminDao = sqlSession.getMapper(AdminDao.class);
⑤ 调用我们自己的方法
调用我们自己的方法
Admin admin = adminDao.findAdminById(1);
System.out.println(admin);//打印输出在控制台
在Admin类中写一个toString()方法和无参的构造方法
⑥ 关闭与数据库的会话对象
关闭与数据库的会话对象
sqlSession .close();
点击运行,这样就可以在控制台拿到mysql中admin表中id=1的数据了
三、配置解析
mybatis.xml文件:
1.事务管理方式
就是一次对数据库操作的过程中,执行多条sql的管理
例如转账:
从A账户向B账户转钱 A-500
代码异常
B+500
把所有的操作都执行成功后,再提交事务,让数据库最终执行本次提交的所有sql
sqlSession.commit();//提交数据库事务 事务只针对 新增,修改,删除操作 查询不需要提交事务的
2.数据库连接池配置
频繁地创建销毁与数据库的连接对象是比较占用时间和空间, 可以在池子中默认创建若干个连接对象,有请求使用时,直接从池子中取出一个对象,用完再还回去, 减少创建和销毁的时间开销
3.打印执行日志
可以将执行过程的日志打印在控制台上方法查看
4.为类型配置别名
位于打印执行日志的下方,为类型配置别名(返回类型)