使用Intellij IDEA 搭建 spring boot 1.5.9 + maven + mybatis + druid + oracle jdbc 项目 带Generator自动生成器

目的:使用Intellij IDEA  搭建 spring boot 1.5.9 + maven+ druid + mybatis + oracle jdbc 项目 ,

           项目自带Generator自动生成器,生成mapper及相关文件

 

注意:开发工具:Intellij IDEA

本项目使用的环境:

  • 开发工具:Intellij IDEA 2019.1.1
  • springboot: 1.5.9
  • jdk:1.8.0_211
  • maven:3.3.9

步骤:


1.下载spring assistant插件

由于我已经安装,所以在插件市场显示已安装。

如果没有安装过,点击installed按钮,下载并重启。

 

2、创建一个springboot项目:

group id 和package name可以自己起名

 

点击next 完成项目创建。

3、看一下最后的项目结构

 

4、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>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.9.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<!--默认为jar方式-->
	<!--<packaging>jar</packaging>-->
	<!--改为war方式-->
<!--	<packaging>war</packaging>-->

	<groupId>com.springboot.test</groupId>
	<artifactId>springboot</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>springboot</name>
	<description>Spring Boot 搭建</description>

	<properties>
		<java.version>1.8</java.version>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
	</properties>

	<dependencies>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>

		<!--MyBatis依赖-->
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>2.0.1</version>
		</dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
		<!--oracle依赖-->
		<dependency>
			<groupId>com.oracle</groupId>
			<artifactId>ojdbc14</artifactId>
			<version>10.2.0.1.0</version>
		</dependency>

		<!--核心模块 包括内嵌的Tomcat SpringMVC 等-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>

			<!--排除spring-boot-starter-web中的Tomcat-->
<!--			<exclusions>-->
<!--				<exclusion>-->
<!--					<groupId>org.springframework.boot</groupId>-->
<!--					<artifactId>spring-boot-starter-tomcat</artifactId>-->
<!--				</exclusion>-->
<!--			</exclusions>-->
		</dependency>

<!--		<dependency>-->
<!--			<groupId>org.springframework.boot</groupId>-->
<!--			<artifactId>spring-boot-starter-tomcat</artifactId>-->
<!--			&lt;!&ndash;打包的时候可以不用包进去,别的设施会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。-->
<!--                相当于compile,但是打包阶段做了exclude操作&ndash;&gt;-->
<!--			<scope>provided</scope>-->
<!--		</dependency>-->

		<!--测试模块 包括Junit-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</dependency>
		<!-- alibaba的druid数据库连接池 -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid-spring-boot-starter</artifactId>
			<version>1.1.10</version>
		</dependency>

		<!--	mybatis-generator 自动生成器核心依赖	-->
		<dependency>
			<groupId>org.mybatis.generator</groupId>
			<artifactId>mybatis-generator-core</artifactId>
			<version>1.3.7</version>
		</dependency>


	</dependencies>

	<build>
		<!--	打包名	-->
		<finalName>springboot</finalName>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>

			<!--mybatis generator 自动生成代码插件-->
			<plugin>
				<groupId>org.mybatis.generator</groupId>
				<artifactId>mybatis-generator-maven-plugin</artifactId>
				<version>1.3.2</version>
				<configuration>
					<configurationFile>src/main/resources/generator/generatorConfig.xml</configurationFile>
					<overwrite>true</overwrite>
					<verbose>true</verbose>
				</configuration>
			</plugin>

		</plugins>
		<resources>
			<resource>
				<directory>src/main/java</directory>
				<includes> <!-- 默认不会加载src/main/java里面的xml文件 -->
					<include>**/*.xml</include>
				</includes>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
				<includes>
<!--					<include>*.properties</include>-->
					<include>*.yml</include>
					<include>mapper/*.xml</include>
					<include>static/*.*</include>
					<include>templates/*.*</include>
					<include>**/*.properties</include>
				</includes>
			</resource>
		</resources>

	</build>

</project>

5、application.yml文件

#数据库的配置
spring:
  profiles:
    active: dev

#mybatis配置
mybatis:
  #配置mapper xml所在路径
  mapper-locations: classpath*:mapper/*.xml
  #配置映射所在的包名
  type-aliases-package: com.springboot.test.dto

application-dev.yml文件

server:
  #项目名
  context-path: /
  port: 8081

#数据库的配置
spring:
  datasource:
    url: jdbc:oracle:thin:@192.168.0.26:1521/库名
    username: *****
    password: *****
    driver-class-name: oracle.jdbc.driver.OracleDriver
#   type: com.alibaba.druid.pool.DruidConfig   # 指定数据源为druid
    druid:
      # 连接池的配置信息
      # 初始化大小,最小,最大
      initial-size: 5
      min-idle: 5
      maxActive: 20
      # 配置获取连接等待超时的时间
      maxWait: 60000
      # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
      timeBetweenEvictionRunsMillis: 60000
      # 配置一个连接在池中最小生存的时间,单位是毫秒
      minEvictableIdleTimeMillis: 300000
      #用来检测连接是否有效的sql,要求是一个查询语句。
      validationQuery: SELECT 1 FROM DUAL
      testWhileIdle: true
      testOnBorrow: false
      testOnReturn: false
      # 打开PSCache,并且指定每个连接上PSCache的大小
      poolPreparedStatements: true
      maxPoolPreparedStatementPerConnectionSize: 20
      # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
      filters: stat,wall,log4j
      # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
      connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
      # 配置DruidStatFilter
      web-stat-filter:
        enabled: true
        url-pattern: "/*"
        exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"
      # 配置DruidStatViewServlet
      stat-view-servlet:
        url-pattern: "/druid/*"
        # IP白名单(没有配置或者为空,则允许所有访问)
        allow: 127.0.0.1
        # IP黑名单 (存在共同时,deny优先于allow)
        deny: 192.168.1.2
        #  禁用HTML页面上的“Reset All”功能
        reset-enable: false
        # 登录名
        login-username: admin
        # 登录密码
        login-password: 123456

因为maven中采用druid新版方式   druid-spring-boot-starter ,所以不需要额外配置数据源配置文件,只需要在yml文件中配置好druid参数即可。

#注:我在指定type类型时,总是报找不到DruidConfig类,所有引用包都有,暂不知道原因,若大神了解,希望给予我帮助。

不指定类型时,依然可以配置Druid数据源,并且正常访问到Druid监控界面。

6、log4j.properties  文件

# Configure logging for testing: optionally with log file
log4j.rootLogger=WARN, stdout
# log4j.rootLogger=WARN, stdout, logfile

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

7、自动生成代码文件相关代码

采用配置文件和属性文件分离的方式

7.1、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>
	<!--导入属性配置-->
	<properties resource="generator/generator.properties"></properties>

	<!--指定特定数据库的jdbc驱动jar包的位置-->
	<classPathEntry location="${jdbc.driverLocation}"/>

	<context id="default" targetRuntime="MyBatis3">

		<!-- optional,旨在创建class时,对注释进行控制 -->
		<commentGenerator>
			<property name="suppressDate" value="true"/>
			<property name="suppressAllComments" value="true"/>
		</commentGenerator>

		<!--jdbc的数据库连接 -->
		<jdbcConnection
				driverClass="${jdbc.driverClass}"
				connectionURL="${jdbc.connectionURL}"
				userId="${jdbc.userId}"
				password="${jdbc.password}">
		</jdbcConnection>


		<!-- 非必需,类型处理器,在数据库类型和java类型之间的转换控制-->
		<javaTypeResolver>
			<property name="forceBigDecimals" value="false"/>
		</javaTypeResolver>


		<!-- Model模型生成器,用来生成含有主键key的类,记录类 以及查询Example类
            targetPackage     指定生成的model生成所在的包名 					//此处修改
            targetProject     指定在该项目下所在的路径
        -->
		<javaModelGenerator targetPackage="com.springboot.test.model"
							targetProject="src/main/java">

			<!-- 是否允许子包,即targetPackage.schemaName.tableName -->
			<property name="enableSubPackages" value="false"/>
			<!-- 是否对model添加 构造函数 -->
			<property name="constructorBased" value="true"/>
			<!-- 是否对类CHAR类型的列的数据进行trim操作 -->
			<property name="trimStrings" value="true"/>
			<!-- 建立的Model对象是否 不可改变  即生成的Model对象不会有 setter方法,只有构造方法 -->
			<property name="immutable" value="false"/>
		</javaModelGenerator>

		<!--Mapper映射文件生成所在的目录 为每一个数据库的表生成对应的SqlMap  ***mapper.xml文件     //此处修改     -->
		<sqlMapGenerator targetPackage="resources.mapper"
						 targetProject="src/main">
			<property name="enableSubPackages" value="false"/>
		</sqlMapGenerator>

		<!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码
                type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象
                type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象
                type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口
        -->
																<!--	//此处修改-->
		<javaClientGenerator targetPackage="com.springboot.test.mapper"
							 targetProject="src/main/java" type="XMLMAPPER">
			<property name="enableSubPackages" value="true"/>
		</javaClientGenerator>


		<table tableName="tcard" domainObjectName="TCard"
			   enableCountByExample="false" enableUpdateByExample="false"
			   enableDeleteByExample="false" enableSelectByExample="false"
			   selectByExampleQueryId="false">
		</table>
	</context>
</generatorConfiguration>

<table   /table>标签属性就是数据库表与实体类相关信息

7.2、generator.properties

jdbc.driverLocation=D:\\Java\\plugins\\mavern-download-jar\\com\\oracle\\ojdbc14\\10.2.0.1.0\\ojdbc14-10.2.0.1.0.jar
jdbc.driverClass=oracle.jdbc.driver.OracleDriver
jdbc.connectionURL=jdbc:oracle:thin:@192.168.0.26:1521/数据库名
jdbc.userId=用户名
jdbc.password=密码

7.3、generator  的main方法文件

package com.springboot.test.utils;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;

public class Generator {



    public void generator() throws Exception{

        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        //指定 逆向工程配置文件
        File configFile = new File("..\\test\\src\\main\\resources\\generator\\generatorConfig.xml");
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(configFile);
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
                callback, warnings);
        myBatisGenerator.generate(null);

    }
    public static void main(String[] args) throws Exception {
        try {
            Generator generatorSqlmap = new Generator();
            generatorSqlmap.generator();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

配置完成后,只需运行Generator 的main方法,就会自动生成mapper、实体类、xml文件。

8、controller 文件、service文件

这些文件就不再赘述

要记得controller文件中注解使用@RestController还是@Controller,记得区分:

(1)使用@Controller 注解,在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面

若返回json等内容到页面,则需要加@ResponseBody注解

(2)@RestController注解,相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面

service要加入注解@Service

DAO 的mapper文件 要@Component自动注入

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大大大飞啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值