**
Mybatis配置过程和工作流程与原理
**
Mybatis介绍
Mybatis就是对jdbc的封装,让连接和使用更加的方便
Mybatis环境搭建
- (1)mybatis下载(尽量不要下载最新版本)
mybaits的代码由github.com管理
下载地址:https://github.com/mybatis/mybatis-3/releases - (2)导入jar包(用Maven来管理jar包,创建依赖来导入)
测试相关的包: junit hamcrest
日志相关的包:log4j-1.2.16 slf4-api slf4j-log4j12
数据库相关jar包: mysql-connector
Mybatis先关jar包: mybaits-3.4.5
<dependencies>
<!-- junit-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- MySql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.32</version>
</dependency>
<!-- Mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<!--日志包-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
(3)导入jar包log4j.properties(创建resources文件夹,把log4j.properties放在文件夹上)
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
Mybatis的操作步骤
Mybatis的操作步骤
(1)mybatis开发流程
1 创建SqlSessionFactoryBuilder对象
2 创建SqlSessionFactory对象
3 加载SqlMapConfig.xml配置文件
4 创建SqlSession对象
SqlSession对象包含全部的以数据库为背景的SQL操作方法,底层封装jdbc连接,可以用SqlSession实例来直接执行被映射的SQL语句。
5 执行SqlSession对象执行删除
6 打印结果
7 释放资源
工作流程
核心 配置文件
src\main\resources\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">
<!--dtd是对xml配置标签与属性的约束-->
<configuration>
<!-- environments环境 开发环境,生产环境-->
<environments default="development">
<environment id="development">
<!-- 使用jdbc的事务管理 -->
<transactionManager type="JDBC"/>
<!-- dataSource Mybatis自带数据源连接池-->
<dataSource type="POOLED">
<!-- 四大信息 -->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis01?characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!-- 配置多个映射文件-->
<mappers>
<mapper resource="UserMapper.xml"/>
</mappers>
</configuration>
映射文件
src\main\resources\UserMapper.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">
<!-- map的约束文件-->
<!-- namespace 命名空间 防止id冲突找不到正确的id-->
<!-- id Mybatis是将sql语句写在xml文件中,以后session根据namesapce.id 合在一起获取sql-->
<!-- 在jdbc中,sql语句使用?作占位符,但在mybatis #{id}-->
<mapper namespace="com.wzx.bean.User">
<delete id="deleteById" parameterType="int" >
delete from user where id = #{id}
</delete>
</mapper>