本案例所使用到的IDE
jdk1.8、MySQL5.7
一、新建Maven项目
请参考我关于SpringBoot教程的第一讲内容:
SpringBoot第 1 讲:HelloWorld_秦毅翔的专栏-CSDN博客
二、配置pom.xml文件
2.1、将以下内容替换到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.0modelVersion>
- <parent>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-starter-parentartifactId>
- <version>1.5.2.RELEASEversion>
- parent>
-
- <groupId>cn.personal.qin.demogroupId>
- <artifactId>springboot_demoartifactId>
- <version>0.0.1-SNAPSHOTversion>
- <packaging>warpackaging>
-
- <name>springbootname>
- <url>http://maven.apache.orgurl>
-
- <properties>
- <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
-
- <java.version>1.8java.version>
- properties>
-
- <dependencies>
- <dependency>
- <groupId>junitgroupId>
- <artifactId>junitartifactId>
- <scope>testscope>
- dependency>
-
- <dependency>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-starter-webartifactId>
- dependency>
-
- <dependency>
- <groupId>mysqlgroupId>
- <artifactId>mysql-connector-javaartifactId>
- dependency>
-
- <dependency>
- <groupId>org.mybatis.spring.bootgroupId>
- <artifactId>mybatis-spring-boot-starterartifactId>
- <version>1.3.2version>
- dependency>
- <dependency>
- <groupId>org.mybatisgroupId>
- <artifactId>mybatis-springartifactId>
- <version>1.3.1version>
- dependency>
- <dependency>
- <groupId>org.mybatisgroupId>
- <artifactId>mybatisartifactId>
- <version>3.5.0version>
- dependency>
-
-
- <dependency>
- <groupId>com.jolboxgroupId>
- <artifactId>bonecp-springartifactId>
- <version>0.8.0.RELEASEversion>
- dependency>
-
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-txartifactId>
- dependency>
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-jdbcartifactId>
- dependency>
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-aspectsartifactId>
- dependency>
-
- <dependency>
- <groupId>org.apache.tomcat.embedgroupId>
- <artifactId>tomcat-embed-jasperartifactId>
- <scope>providedscope>
- dependency>
-
- dependencies>
-
- <build>
- <finalName>${project.artifactId}finalName>
- <plugins>
-
- <plugin>
- <groupId>org.apache.maven.pluginsgroupId>
- <artifactId>maven-resources-pluginartifactId>
- <configuration>
- <encoding>UTF-8encoding>
- configuration>
- plugin>
-
- <plugin>
- <groupId>org.apache.maven.pluginsgroupId>
- <artifactId>maven-compiler-pluginartifactId>
- <configuration>
- <source>1.7source>
- <target>1.7target>
- <encoding>UTF-8encoding>
- configuration>
- plugin>
-
- <plugin>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-maven-pluginartifactId>
- plugin>
-
- plugins>
- <pluginManagement>
- <plugins>
-
- <plugin>
- <groupId>org.apache.tomcat.mavengroupId>
- <artifactId>tomcat7-maven-pluginartifactId>
- <version>2.2version>
- plugin>
- plugins>
- pluginManagement>
- build>
- project>
2.2、更新Maven下载jar包
项目鼠标右键-->Maven-->Update Project...
三、项目开发
3.1、项目文件结构
请下载项目源代码,并将配置文件拷贝到src/main/resources文件夹中
3.2、配置MyBatis
3.2.1、MyBatis目录配置类Cast
Cast.java类的作用是用于配置MyBatis中配置文件及mapper、po的位置
- package org.personal.qin.demo.config;
-
- public class Cast {
- //配置MyBatis
- public static final String MYBATIS_CONFIG = "classpath:mybatis-config.xml";
- public static final String PO_PACKAGE = "org.personal.qin.demo.po";
- public static final String MAPPER_PACKAGE = "org.personal.qin.demo.mapper";
- public static final String MAPPER_SCANNER = "classpath:config/mapper/*.xml";
-
- }
3.2.2、MyBatis加载配置文件及配置数据源MyBatisConfig
MyBatisConfig.java类的作用是加载MyBatis配置文件,并配置数据源
- package org.personal.qin.demo.config;
-
- import javax.sql.DataSource;
-
- import org.apache.ibatis.session.SqlSessionFactory;
- import org.mybatis.spring.SqlSessionFactoryBean;
- import org.mybatis.spring.boot.autoconfigure.SpringBootVFS;
- import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.core.io.Resource;
- import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
- import org.springframework.core.io.support.ResourcePatternResolver;
-
- @Configuration
- public class MyBatisConfig {
-
- /**
- * ConditionalOnMissingBean当容器里没有指定的Bean的情况下创建该对象
- */
- @Bean
- @ConditionalOnMissingBean
- public SqlSessionFactory sqlSessionFactoryBean(DataSource dataSource) throws Exception {
- SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
- // 设置数据源
- sqlSessionFactoryBean.setDataSource(dataSource);
- // 添加一行如下代码,解决setTypeAliasesPackage别名设置不起作用问题
- sqlSessionFactoryBean.setVfs(SpringBootVFS.class);
- //设置mybatis的主配置文件
- ResourcePatternResolver resourceResolver = new PathMatchingResourcePatternResolver();
- Resource mybatisConfigXml = resourceResolver.getResource(Cast.MYBATIS_CONFIG);
- sqlSessionFactoryBean.setConfigLocation(mybatisConfigXml);
- // 设置别名包
- sqlSessionFactoryBean.setTypeAliasesPackage(Cast.PO_PACKAGE);
- PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
- sqlSessionFactoryBean.setMapperLocations(resolver.getResources(Cast.MAPPER_SCANNER));
- return sqlSessionFactoryBean.getObject();
- }
-
- }
3.2.3、Mapper扫描MapperScannerConfig
MapperScannerConfig.java类的作用是扫描Mapper
- package org.personal.qin.demo.config;
-
- import org.mybatis.spring.mapper.MapperScannerConfigurer;
- import org.springframework.boot.autoconfigure.AutoConfigureAfter;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
-
- /**
- * 保证在MybatisConfig类实例化后才实例化此方法
- */
- @Configuration
- @AutoConfigureAfter(MyBatisConfig.class)
- public class MapperScannerConfig {
-
- /**
- * mapper接口的扫描器
- *
- * @return
- */
- @Bean
- public MapperScannerConfigurer mapperScannerConfigurer() {
- MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
- mapperScannerConfigurer.setBasePackage(Cast.MAPPER_PACKAGE);
- return mapperScannerConfigurer;
- }
-
- }
3.3、配置SpringBoot
BootApplication.java文件的作用是配置SpringBoot,并加载jdbc配置文件,配置数据库及数据库连接池,MainApplication.java提供了main方法,是该程序的入口以供程序运行
- package org.personal.qin.demo.config;
-
- import javax.sql.DataSource;
-
- import com.jolbox.bonecp.BoneCPDataSource;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- import org.springframework.boot.builder.SpringApplicationBuilder;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.ComponentScan;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.context.annotation.PropertySource;
-
- /**
- * 配置文件读取和扫描
- */
- @Configuration
- @PropertySource(value = { "classpath:jdbc.properties" })
- @ComponentScan(basePackages = "org.personal.qin.demo")
- @SpringBootApplication
- public class BootApplication {
-
-
原文:https://blog.csdn.net/qzc70919700/article/details/119576761