SpringBoot学习(五)——整合MyBatis
来源:互联网 发布:找男妓的体验知乎 编辑:程序博客网 时间:2024/06/05 11:52
一.环境搭建
1.创建maven工程
创建一个简单的maven工程,其中pom.xml配置如下:
<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.xin</groupId> <artifactId>SpringBoot_ConnectDB</artifactId> <version>0.0.1-SNAPSHOT</version> <properties> <java.version>1.8</java.version> </properties> <dependencyManagement> <!-- 如果父工程不是spring-boot-starter-parent则通过该方式引入SpringBoot的依赖 --> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>1.5.2.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <!-- SpringBoot的整合Web --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <!-- SpringBoot的整合jdbc --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <!-- alibaba的druid连接池 --> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.9</version> </dependency> <dependency> <!-- 引入MyBatis的依赖 --> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.3.0</version> </dependency> <dependency> <!-- MyBatis整合Spring容器 --> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.3</version> </dependency> <dependency> <!-- 引入MySql的依赖 --> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <!-- 指定编译环境 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.2</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build></project>
此处使用引入SpringBoot而非继承spring-boot-starter-parent
关于spring-boot-starter-parent不继承的SpringBoot项目参考SpringBoot的官方文档
2.创建配置文件
(1).SpringBoot统一的配置文件application.yml
spring: mvc: servlet.load-on-startup: 3jdbc: driverClass: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8 username: root password: rootmybatis: typeAliasesPackage: com.xin.pojo mapperLocations: classpath:/sqlmap/*.xml configLocation: classpath:/mybatis/sqlMapConfig.xmllogging: level: org: springframework: INFO mybatis: INFO
(2).MyBatis的主配置文件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"><configuration> <settings> <!-- 控制台输出sql语句 --> <setting name="logImpl" value="STDOUT_LOGGING" /> </settings></configuration>
3.创建配置类
(1).数据源的配置类DatabaseConfig.java
package com.xin.config;import javax.sql.DataSource;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.context.annotation.Bean;import org.springframework.stereotype.Component;import com.alibaba.druid.pool.DruidDataSource;@Component@ConfigurationProperties(prefix="jdbc")public class DatabaseConfig { private String driverClass; private String url; private String username; private String password; public void setDriverClass(String driverClass) { this.driverClass = driverClass; } public void setUrl(String url) { this.url = url; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } private static Logger log = LoggerFactory.getLogger(DatabaseConfig.class); @Bean public DataSource createDataSource(){ DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName(driverClass); dataSource.setUrl(url); dataSource.setUsername(username); dataSource.setPassword(password); log.info("创建连接池成功"); return dataSource; }}
(2).MyBatis的配置类MybatisConfig.java
package com.xin.config;import java.io.IOException;import javax.sql.DataSource;import org.mybatis.spring.SqlSessionFactoryBean;import org.mybatis.spring.annotation.MapperScan;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.boot.autoconfigure.AutoConfigureAfter;import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.context.annotation.Bean;import org.springframework.core.io.DefaultResourceLoader;import org.springframework.core.io.support.PathMatchingResourcePatternResolver;import org.springframework.stereotype.Component;@Component@ConfigurationProperties(prefix="mybatis")@AutoConfigureAfter(DatabaseConfig.class)@MapperScan("com.xin.mapper")public class MybatisConfig { private String typeAliasesPackage; private String configLocation; private String mapperLocations; public void setTypeAliasesPackage(String typeAliasesPackage) { this.typeAliasesPackage = typeAliasesPackage; } public void setConfigLocation(String configLocation) { this.configLocation = configLocation; } public void setMapperLocations(String mapperLocations) { this.mapperLocations = mapperLocations; } private static Logger log = LoggerFactory.getLogger(MybatisConfig.class); @Bean @ConditionalOnMissingBean//当容器没有SqlSessionFactoryBean时创建 public SqlSessionFactoryBean createSqlSessionFactoryBean(DataSource dataSource) throws IOException{ SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); //设置数据源 sqlSessionFactoryBean.setDataSource(dataSource); ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); //设置mybatis的主配置文件 sqlSessionFactoryBean.setConfigLocation(resolver.getResource(configLocation)); //指定mapper.xml的路径。如果mapper.xml的路径如相应的mapper接口所在的路径在同一目录(打包运行时)下且名字相同时则可以省略该步骤 sqlSessionFactoryBean.setMapperLocations(resolver.getResources(mapperLocations)); //设置包的别名 sqlSessionFactoryBean.setTypeAliasesPackage(typeAliasesPackage); log.info("成功创建SqlSessionFactory:"+sqlSessionFactoryBean); return sqlSessionFactoryBean; }}
注意:由于使用@ConfigurationProperties来自动引入配置文件application.yml中的属性,所以需要提供相应的setter方法。
4.创建的Mapper接口及相应的xml配置
由于该步骤需要根据业务不同做出的配置也不同,故省略。
5.创建Controller
由于该步骤需要根据业务不同做出的处理也不同,故省略。
6.创建入口类(即含有main方法的类)
package com.xin;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}
7.项目目录结构如下:
阅读全文
0 0
- SpringBoot学习(五)——整合MyBatis
- SpringBoot(五):SpringBoot整合MyBatis
- SpringBoot学习:SpringBoot整合mybatis
- mybatis学习(五)--spring整合mybatis
- SpringBoot学习-(六)SpringBoot与Mybatis整合
- springboot学习(6)springboot整合Mybatis例子
- springboot学习(6)springboot整合Mybatis例子
- 【系统学习SpringBoot】springBoot整合Mybatis
- Spring Boot干货——(六)SpringBoot整合mybatis
- springboot系列教程(七)——整合mybatis
- SpringBoot系列2—整合Mybatis-plus
- springboot系列教程(五)——整合jpa
- SpringBoot整合Mybatis(二)
- (4)学习SpringBoot之整合 Mybatis+PageHelper分页
- springBoot(四)整合之MyBatis整合
- Spring学习总结(五)——Spring整合MyBatis(Maven+MySQL)一
- SpringBoot学习记录三、整合MyBatis
- myBatis学习笔记(9)——spring整合mybatis
- redis入门
- Unity如何不使用开发者账号进行IOS的真机调试
- 通过JS实现轮播图
- 新的试题
- 算法:快速排序之python实现
- SpringBoot学习(五)——整合MyBatis
- wString 截取字符串
- SpringMVC @RequestBody接收ajax json对象(字符串) (415 Unsupported media type)
- 171010 逆向-Reversing.kr(PEPassword)
- ------------------------------------
- HTML网页布局方式总结 |有码有真相|
- Spring 面向切面编程AOP
- 检测链表中的环
- 【编译原理】第四章作业