您的位置:首页 > 编程语言 > Java开发

用idea搭建spring boot+mybatis及反向生成框架

2018-09-07 16:11 459 查看

用idea搭建spring boot+mybatis框架:

准备工作,安装好环境,数据库安装,建表,插入数据,我的数据如下

1.创建新项目

.

 

2.选择项目版本

3.勾选依赖

4.选择数据库

5.下一步

6.生成项目目录结构如下

7.导入反向生成依赖

[code]<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>

8.创建反向生成类

[code]GenerateUtil
[code]package com.cn.utils;
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;
import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class GenerateUtil {
public void generator() throws Exception{

List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
//指定 逆向工程配置文件
File configFile = new File("src/main/resources/generateConfig.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 {
GenerateUtil generatorSqlmap = new GenerateUtil();
generatorSqlmap.generator();
} catch (Exception e) {
e.printStackTrace();
}

}
}

9.db.properties数据库连接放于resources目录下

[code]##jdbc.driverLocation=C:\Users\user\.m2\repository\mysql\mysql-connector-java\5.1.46\mysql-connector-java-5.1.46.jar
jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&useSSL=false
jdbc.username = root
jdbc.password = 123456

#数据库中要生成的表
jdbc.table.user = goods

10.建立dao,和实体类entity,和mapper层目录,注意映射文件mapper要放在resources目录下。

11.配置generateConfig.xml放于resources目录下

[code]<?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="db.properties"/>

<context id="testTables" targetRuntime="MyBatis3">
<commentGenerator>
<!-- 是否去除自动生成的注释,true:是;false:否 -->

<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="${jdbc.driver}"
connectionURL="${jdbc.url}" userId="${jdbc.username}"
password="${jdbc.password}">
</jdbcConnection>
<!--Oracle数据库的连接信息-->
<!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver"
connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg"
userId="yycg"
password="yycg">
</jdbcConnection> -->

<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
NUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>

<!-- targetProject:生成PO类的位置 -->
<javaModelGenerator targetPackage="com.cn.entity"
targetProject="src\main\java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置 -->
<sqlMapGenerator targetPackage="mapper"
targetProject="src\main\resources">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!--
targetPackage:mapper接口生成的位置,遵循MyBatis规范,让mapper.xml
和mapper.java在同一目录下
-->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.cn.dao"
targetProject="src\main\java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定数据库表 -->

<table tableName="${jdbc.table.user}"></table>
<!-- <table schema="" tableName="sys_user"></table>
<table schema="" tableName="sys_role"></table>
<table schema="" tableName="sys_permission"></table>
<table schema="" tableName="sys_user_role"></table>
<table schema="" tableName="sys_role_permission"></table> -->

<!-- 有些表的字段需要指定java类型
<table schema="" tableName="">
<columnOverride column="" javaType="" />
</table> -->
</context>
</generatorConfiguration>

12.配置application.properties

[code]spring.datasource.url=jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.database=mysql
#ddddd
spring.datasource.first.initial-size=1
spring.datasource.first.max-active=5
mybatis.mapper-locations=classpath*:mapper/*.xml
server.port=8888

13.运行

[code]GenerateUtil反向生成实体类,映射文件,及dao

14.创建service层以及实现类

GoodsService

[code]package com.cn.service;

import com.cn.entity.Goods;

public interface GoodsService {
public Goods getGoods(int Id);
}

15.创建实现类

GoodsServiceImpl

[code]package com.cn.servieimpl;

import com.cn.dao.GoodsMapper;
import com.cn.entity.Goods;
import com.cn.entity.GoodsExample;
import com.cn.service.GoodsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class GoodsServiceImpl implements GoodsService {
@Autowired
GoodsMapper goodsMapper;
@Override
public Goods getGoods(int Id) {
GoodsExample example = new GoodsExample();
GoodsExample.Criteria criteria = example.createCriteria();
criteria.andIdEqualTo(Id);
return goodsMapper.selectByExample(example).get(0);
}
}

16.实现控制层,GoodsContrlller

[code]import com.cn.entity.Goods;
import com.cn.service.GoodsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/goods")
public class GoodsContrlller {
@Autowired
GoodsService goodsService;
@RequestMapping("/get")
public  Object getGoods(Integer Id){
Goods goods = goodsService.getGoods(Id);
return goods;
}
}

17.将DemoApplication置于外层,并添加注解

[code]@EntityScan("com.cn.entity")
@MapperScan("com.cn.dao")

项目结构如下

[code]18运行DemoApplication,并访问测试

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: