Mybatis 原理和流程
运行原理:
1. 创建会话工厂SqlSessionFactory,跟进配置文件创建。
2. SqlSessionFactory创建SqlSession。
3. SqlSession操作数据库(发出sql增、删、改、查)
4. Mybatis在内部整合Sql语句(拼接等),输入参数、输出类型,
5. 最后关闭SqlSession。
Spring与Mybatis整合后,上面的SqlSessionFactory和SqlSession都直接在Spring的bean中配置。
1. 添加依赖,spring boot统一进行了版本管理,并整合了日志的依赖等。
在添加dbcp时,需要最新版本,否则会报错,亲测。spring boot没有整合dbcp, springboot用的自己的配置文件application.properties
错误为:java.lang.IllegalAccessError: org.apache.commons.dbcp.DelegatingPreparedStatement.isClosed()Z
能查询到结果,但不能返回数据。只需更新dbcp版本就可以。
打开pom.xml,在Dependencies标签查看的依赖:
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.plin</groupId>
<artifactId>springMvcMybatis</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>springMvcMybatis</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<d