springboot整合mybatis

springboot 同时被 2 个专栏收录
2 篇文章 0 订阅
6 篇文章 0 订阅

前情摘要

由于最近一年都在使用mongodb,担心手生准备捡起主流框架以前是SSM,现在演变为“SM”,本篇为基础篇,大佬请忽略。

关键词:

spring-boot,sts,mybatis,mysql,mybatis-generator

开始构建

构建spring-boot项目方式有多种,这里主要介绍官方推荐的两种。

一、访问https://start.spring.io/

1:如下所示,对应的地方选择或者填写自己的内容点击Generate Project即可。如spring web项目需要加上web依赖。整合mybatis,需要加上mybatis依赖。

 2:可按照下图所选,点击Generate Project,下载并解压,打开IDE导入项目,可以用idea/sts等对spring-boot支持非常友好,(这里使用的是sts,下载地址https://spring.io/tools/sts/all/,选择相应的操作系统下载即可)

3、打开sts导入项目。

 4:点击next选择刚刚解压好的文件,注意,这里选择导入maven项目,会自动识别目标文件夹下面的pom文件,并把刚在页面上写的artifactId作为项目名字。等待maven更新下载包即可。

二、使用IDE自动创建

1:如果网络不稳定的情况下ide可能出现加载不出来的情况,这时候推荐使用第一种。打开sts,点击右上角file,选择new,新建spring starter project。如下所示:填写相应的报名和项目名点击next即可。

 2:选择boot版本和需要添加的依赖,点击finish,等待项目构建完成。

 可能出现的问题:

1、项目编译报错,这时候就需要看,本地仓库依赖是否已经下载,进入c:users/用户名/.m2下查看,对应哪个报错的包去查看依赖是否存在(不能只看依赖文件夹就确定已经下载,需要点进去查看是否有j相应的ar包)。maven使用3.5.*,setting.xml,若公司没有私服的话建议使用国内阿里镜像仓库。

2、项目启动报错,若是报classnotfound,同样是需要找依赖包是否完成下载,注意查看pc是否已使用过spring-boot构建项目,并查看相应的boot版本是否一致,简单方法是把boot版本更换成一致版本,并且删除本地仓库中对应的报错的包,重新执行maven更新。

本实例pom文件如下所示:这里使用了boot1.4.7版本。注意需要在pom文件里添加org.mybatis依赖

<?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.wpp</groupId>
	<artifactId>spike</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>springboot-spike</name>
	<description>Spike system</description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.4.7.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>
		
		 <!-- pagehelper -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.1.2</version>
        </dependency>
        <!-- alibaba druid pool-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.0</version>
        </dependency>
        <dependency>
		   <groupId>org.mybatis</groupId>
		   <artifactId>mybatis</artifactId>
		   <version>3.4.1</version>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
			
			<plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.2</version>
                <configuration>
                    <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
                    <overwrite>true</overwrite>
                    <verbose>true</verbose>
                </configuration>
            </plugin>
		</plugins>
	</build>


</project>

启动类如下所示:需要添加mybatis mapper包扫描路径。(mapper和model使用mybatis逆向生成,下面会说。)

@SpringBootApplication
@MapperScan("com.wpp.spike.mapper")
public class SpringbootSpikeApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringbootSpikeApplication.class, args);
	}
}

Mybatis Generator插件根据数据库表生成实体类和mapper文件

1:在pom文件里添加Mybatis Generator插件,见上面的pom文件底部。注意generatorConfig.xml文件的地址。

2:对应pom文件刚刚添加的插件中generatorConfig.xml文件的地址, 新建generatorConfig.xml文件,这里是在resource文件夹下新建generator文件夹并在其下新建generatorConfig.xml。

3:generatorConfig.xml文件如下所示。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
    <!-- 数据库驱动:选择你的本地硬盘上面的数据库驱动包-->
    <classPathEntry  location="C:\Users\hyd\.m2\repository\mysql\mysql-connector-java\5.1.42\mysql-connector-java-5.1.42.jar"/>
    <context id="DB2Tables"  targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!--数据库链接URL,用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/spike_system" userId="root" password="">
        </jdbcConnection>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!-- 生成模型的包名和位置-->
        <javaModelGenerator targetPackage="com.wpp.spike.model" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!-- 生成映射文件的包名和位置-->
        <sqlMapGenerator targetPackage="mapping" targetProject="src/main/resources">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        <!-- 生成DAO的包名和位置-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.wpp.spike.mapper" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
        <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名-->
        <table tableName="customer" domainObjectName="Customer" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
    	<table tableName="goods" domainObjectName="Good" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
    	<table tableName="orders" domainObjectName="Order" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
    	<table tableName="seller" domainObjectName="Seller" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
    </context>
</generatorConfiguration>

 选择mysql驱动包的时候若不知道在哪,可以 在项目中打开Maven Dependencies,找到mysql-connector-java,找到对应的地址即可

 

 4:修改application.properties,或者删除application.properties并新增application.yml。这里选择后者。application.yml内容如下。

注:这里我修改了mapper.xml的地址,generator生成的mapper.xml在resource/mapping中,这里我把xml和mapper放在了一起。如果不想生成之后再进行复制xml到mapper文件夹的操作,可以修改generator的配置文件,或者修改下面yml中mapper-locations。

server:
  port: 9090

spring:
  profiles:
    active: dev
  datasource:
        name: spiketest
        url: jdbc:mysql://localhost:3306/spike_system
        username: root
        password: 
        #使用druid数据源
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.jdbc.Driver
mybatis:
  mapper-locations: classpath:com/wpp/spike/mapper/*.xml  #注意:一定要对应mapper映射xml文件的所在路径
  type-aliases-package: com.wpp.spike.model  # 注意:对应实体类的路径

#pagehelper分页插件
pagehelper:
    helperDialect: mysql
    reasonable: true
    supportMethodsArguments: true
    params: count=countSql

5:执行generator构造mapper,model和mapper.xml。步骤:右键点击pom.xml ==》Run As Maven Build ==》在Goals框中输入:mybatis-generator:generate ==》Run 等待执行完毕。

启动项目并测试接口

如下图所示,这里使用的是postman测试。访问localhost:9090/v1/customer并添加相应的参数,注意contentType是JSON

 结果如下所示:

 注:本实例使用的boot版本1.4.7,注意修改application.yml数据源中和generatorConfig.xml中数据库相关配置,数据库文件在github上,可以自行创建也可以下载。

项目在github上,地址:https://github.com/wppcoder/springboot-spike.git

如有疑问欢迎评论,如有不足欢迎指教,谢谢。

展开阅读全文
  • 0
    点赞
  • 1
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值