idea mybatis generator插件_SpringBoot+MyBatis+Druid整合demo

最近自己写了一个SpringBoot+Mybatis(generator)+druid的demo

be7fa3ccac4741668d555ccf97093c26

1. mybatis+generator逆向工程生成代码

1. pom文件

pom文件添加如下内容,引入generator插件

                                    org.mybatis.generator                mybatis-generator-maven-plugin                1.3.5 mysql                         mysql-connector-java                        5.1.35org.mybatis.generator                        mybatis-generator-core                        1.3.5Generate MyBatis Artifactspackagegenerate           > 这里是引用         truetruesrc/main/resources/generator/generatorConfig.xml

当pom引入此插件成功的话,idea右侧可以看到

d1b33d04f52e477b9fa5c53331911541

2. 在resources下新建generator文件夹,在generator下新建generatorConfig.xml

<?xml version="1.0" encoding="UTF-8"?>

3. 运行插件

9adc6174b32b480ca84ea297b0924707

4. 生成以下代码

a516775018b44a6a899ccd4a33a59251

2. application.perperties中的配置

1. mybatis的配置

# mybatis实体类的包路径mybatis.typeAliasesPackage=com.qlu.cloud.pojo# mybatis的dao层方法的实现xmlmybatis.mapper-locations: classpath:mapper/*.xml

2. druid的配置

# 连接数据库的设置,SpringBoot会自动扫描这些# 连接数据库的驱动名字,自6.x版本就换了名字spring.datasource.driverClassName=com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/hadoop?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=falsespring.datasource.username = rootspring.datasource.password = root# 初始化时建立物理连接的个数spring.datasource.druid.initial-size=5# 最大连接池数量spring.datasource.druid.max-active=30# 最小连接池数量spring.datasource.druid.min-idle=5# 获取连接时最大等待时间,单位毫秒spring.datasource.druid.max-wait=60000# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒spring.datasource.druid.time-between-eviction-runs-millis=60000# 连接保持空闲而不被驱逐的最小时间spring.datasource.druid.min-evictable-idle-time-millis=300000# 用来检测连接是否有效的sql,要求是一个查询语句spring.datasource.druid.validation-query=SELECT 1 FROM DUAL# 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。spring.datasource.druid.test-while-idle=true# 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。spring.datasource.druid.test-on-borrow=false# 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。spring.datasource.druid.test-on-return=false# 是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭。spring.datasource.druid.pool-prepared-statements=true# 要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动触发修改为true。spring.datasource.druid.max-pool-prepared-statement-per-connection-size=50# 配置监控统计拦截的filters,去掉后监控界面sql无法统计spring.datasource.druid.filters=stat,wall# 通过connectProperties属性来打开mergeSql功能;慢SQL记录spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500# 合并多个DruidDataSource的监控数据spring.datasource.druid.use-global-data-source-stat=true# druid连接池监控spring.datasource.druid.stat-view-servlet.login-username=adminspring.datasource.druid.stat-view-servlet.login-password=123# 排除一些静态资源,以提高效率spring.datasource.druid.web-stat-filter.exclusions=*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*

3. thymeleaf的配置

thymeleaf 是新一代的模板引擎,在spring4.0中推荐使用thymeleaf来做前端模板引擎。它可以完全替代 JSP 。

thymeleaf的使用

application.propertites中的配置

spring.thymeleaf.prefix=classpath:/templates/spring.thymeleaf.suffix=.htmlspring.thymeleaf.mode=HTMLspring.thymeleaf.encoding=utf-8spring.thymeleaf.cache=false

pom文件中

 org.springframework.boot            spring-boot-starter-thymeleaf        org.springframework.boot            spring-boot-starter-thymeleaf        

== thymeleaf下的return “start”;即为跳转到start.html界面,前提是这个文件在配置文件下配置的/templates/下,他的意思是动态。==

3. 执行

接下来就可以写controller层来执行函数了

package com.qlu.cloud.controller;import com.qlu.cloud.mapper.UserMapper;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;@Controller@RequestMapping("a")public class demoController  {    /**     * auto scan配置     * 在编辑情况下,无法找不到对应的bean     * 于是提示找不到对应bean的错误。     * 常见于mybatis的mapper     *     * 解决办法:降低Autowired检测的级别,将Severity的级别由之前的error改成warning或其它可以忽略的级别。     */    @Autowired    private UserMapper userMapper;    @RequestMapping("show")    public String show(Model model){        model.addAttribute("info",userMapper.selectByPrimaryKey(1));        return "start";    }}

其实controller层的注解我是采用了之前SSM框架的写法,其实这里有一个注解@RestController,它=@Controller+@ResponseBody,表示返回的是json

这里我们用model返回了一个类,然后跳转到了start.html界面,在start.html界面展示数据start.html在/templates/下,它的内容为

    Title
序号 风机编号 报警时间 30s内温度高于80度次数 最最重要的一点

因为之前在写Mapper的时候(也就是DAO层是生成的,生成的Mapper类中没有使用@Mapper注解,但是每个Mapper中的类要加一个@Mapper注解也很麻烦),所以我们要在启动类上加一个@MapperScan(“com.qlu.cloud.mapper”)来声明@Mapper所在的包即可,启动类一般叫项目名+Application

然后运行项目即可。

实用插件

devtools热部署

每次改完都要重新停止应用,再重新启动很烦~但springboot有个叫热部署的东西,就是说在项目中修改代码可以不用重新停止应用再重新启动,可以自动重启,这里我们用的是devtools

1. pom文件中添加以下内容

     org.springframework.boot           spring-boot-devtools           providedtrue

2. 勾选setting->Build,Execution,Deployment->Compiler->Build project automatically

3. Ctrl+Shift+Alt+/ -> 选择Registry… -> 勾选compiler.automake.allow.when.app.running

4. 重启项目即可

最后附上完整的pom文件

<?xml version="1.0" encoding="UTF-8"?>4.0.0org.springframework.boot        spring-boot-starter-parent        2.1.1.RELEASEcom.qlu    cloud    0.0.1-SNAPSHOTcloudDemo project for Spring Boot1.8com.alibaba            fastjson            1.2.6org.springframework.boot            spring-boot-starter-data-jpa        org.springframework.boot            spring-boot-starter-web        org.mybatis.spring.boot            mybatis-spring-boot-starter            1.3.2org.springframework.boot            spring-boot-starter-test            testorg.springframework.boot            spring-boot-devtools            providedtrueorg.mybatis            mybatis            3.4.6org.mybatis.spring.boot            mybatis-spring-boot-starter            1.2.0mysql            mysql-connector-java        org.springframework.boot            spring-boot-starter-thymeleaf        org.springframework.boot            spring-boot-starter-thymeleaf        com.alibaba            druid-spring-boot-starter            1.1.9org.springframework.boot                spring-boot-maven-plugin            org.mybatis.generator                mybatis-generator-maven-plugin                1.3.5 mysql                         mysql-connector-java                        5.1.35org.mybatis.generator                        mybatis-generator-core                        1.3.5Generate MyBatis Artifactspackagegeneratetruetruesrc/main/resources/generator/generatorConfig.xml

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/394744.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python isalnum函数_探究Python中isalnum()方法的使用

探究Python中isalnum()方法的使用 isalnum()方法检查判断字符串是否包含字母数字字符。 语法 以下是isalnum()方法的语法&#xff1a; str.isa1num() 参数 NA 返回值 如果字符串中的所有字符字母数字和至少有一个字符此方法返回 true&#xff0c;否则返回false。 例子 下面的例…

动态规划算法——最长上升子序列

今天我们要讲的是最长上升子序列&#xff08;LIS&#xff09;。【题目描述】给定N个数&#xff0c;求这N个数的最长上升子序列的长度。【样例输入】      【样例输出】7        42 5 3 4 1 7 6那么什么是最长上升子序列呢&#xff1f; 就是给你一个序列…

如何快速掌握一门新技术/语言/框架

IT行业中的企业特点是都属于知识密集型企业。这种企业的核心竞争力与员工的知识和技能密切相关。而如果你在企业中扮演的是工程师的角色的话&#xff0c;那么 你的核心竞争力就是IT相关的知识与技能的储备情况。而众所周知&#xff0c;IT行业是一个大量产生新知识的地方&#x…

c语言今天星期几问题,C语言输入今天星期几

满意答案迷茫03222015.07.24采纳率&#xff1a;55% 等级&#xff1a;9已帮助&#xff1a;665人123456789101112131415161718192021#include<stdio.h>int main(void){ enum weekday{ sun, mon, tue, wed, thu, fri, sat }; int n; printf("输入星期数(0-…

备忘录模式 详解

定义 在不破坏封装性的前提下&#xff0c;捕获一个对象的内部状态&#xff0c;并在该对象之外保存这个状态&#xff1b; 行为型模式 角色 发起人角色&#xff08;Originator&#xff09;&#xff1a;记录当前时刻的内部状态&#xff0c;负责定义哪些属于备份范围的状态&#xf…

dll oem证书导入工具_技术干货 | 恶意代码分析之反射型DLL注入

欢迎各位添加微信号&#xff1a;qinchang_198231 加入安全 交流群 和大佬们一起交流安全技术01技术概要这是一种允许攻击者从内存而非磁盘向指定进程注入DLL的技术&#xff0c;该技术比常规的DLL注入更为隐蔽&#xff0c;因为除了不需要磁盘上的实际DLL文件之外&#xff0c;它…

锐捷亮相GITC:请互联网企业为我点个赞!

【51CTO.com原创稿件】GITC全球互联网技术大会已成功举办四届&#xff0c;今年的会议现场依然是摩肩接踵围观者众。围绕互联网热点技术&#xff0c;众人根据云、大数据、安全、运维、基础架构的不同主题&#xff0c;各自聚成小圈子展开深入交流。 锐捷的展位在主会场的内侧&…

react.lazy 路由懒加载_React lazy/Suspense使用及源码解析

React v16.6.0已经发布快一年了&#xff0c;为保障项目迭代发布&#xff0c;没有及时更新react版本&#xff0c;最近由于开启了新项目&#xff0c;于是使用新的react版本进行了项目开发。项目工程如何搭建&#xff0c;如何满足兼容性要求&#xff0c;如何规范化等等这里不作为介…

c语言数据结构系统化,C语言数据结构+数据库+操作系统

http://cv.qiaobutang.com/post/55c419b20cf2009bd4607795第二部分是专业相关的C &#xff0c;数据库&#xff0c;操作系统&#xff0c;数据结构。http://c.biancheng.net/cpp/u/shuju/数据(Data)是信息的载体&#xff0c;它能够被计算机识别、存储和加工处理。它是计算机程序加…

c语言判断一个序列是不是另一个的子序列

1 #include <stdio.h>2 #include <string.h>//添加字符串头文件3 4 int Subsequence(char s[], char t[]) 5 {6 int m,n,i,j;7 n strlen(s); //n表示序列S的长度8 m strlen(t); //m表示序列T的长度9 i0; 10 j0; 11 if (m>…

linux中python如何调用matlab的数据_特征锦囊:如何在Python中处理不平衡数据

今日锦囊特征锦囊&#xff1a;如何在Python中处理不平衡数据? Index1、到底什么是不平衡数据2、处理不平衡数据的理论方法3、Python里有什么包可以处理不平衡样本4、Python中具体如何处理失衡样本印象中很久之前有位朋友说要我写一篇如何处理不平衡数据的文章&#xff0c;整理…

Hadoop不适合哪些场景 哪些场景适合?

Hadoop设计的目的主要包括下面几个方面&#xff0c;也就是所谓的适用场景&#xff1a; 1&#xff1a;超大文件 可以是几百M&#xff0c;几百T这个级别的文件。 2&#xff1a;流式数据访问 Hadoop适用于一次写入&#xff0c;多次读取的场景&#xff0c;也就是数据复制进去之后&a…

阿里Android p6准备,项目经历准备篇——如何准备阿里巴巴P6/P7前端面试

项目经历准备篇——如何准备阿里巴巴P6/P7前端面试在上次的校招文章之后&#xff0c;有很多同学问有没有社招相关的东西可以写一篇&#xff0c;现在它来了。比起校招&#xff0c;社招更加看重项目经历项目经历反应的思考。本文针对的是想进入阿里的P6/P7同学&#xff0c;着重讲…

for in for of区别_Python 第4课:for…in循环黄金搭档之range()函数

乐学趣学Py● 04&#xff1a;for…in循环黄金搭档之range()函数●Python趣味小百科Python中的绘图模块为什么叫Turtle海龟&#xff0c;而不是cat ,dog,bird呢&#xff1f;原来Python引用了麻省理工大学教授开发的logo海龟制图语言,能通过绘图直观地教大家学习编程。实践是最好的…

永恒python图片_python 数据词云展示实例(3)- 背景图设置

记录wordcloud库背景图的设置及样板 之前介绍了wordcloud的基本使用wordcloud的基本使用&#xff0c;本文记录一下如何设置背景图。 样图 背景图tim.jpg 生成样图dream.png 样板 from PIL import Image,ImageSequence image Image.open(tim.jpg)#打开背景图 graph np.array(im…

企业如何杜绝云端数据泄密?

一直以来&#xff0c;云计算所倡导的就是&#xff1a;“我们可以做得更好&#xff0c;更便宜”。云计算带给企业诸多利好&#xff0c;但实施云计算必然会加剧信息泄露风险。当企业打算把所有数据传输云端的时候&#xff0c;首先要考虑的就是数据保护的问题。 使用云服务&#x…

3dmark for android,Android版3DMark首测

听到这个消息估计很多像我一样看腻了3dmark11画面的跑分党及玩家们有些许小失望。 每年的12月影驰都会联合NVIDIA举办盛大的嘉年华&#xff0c;今年在武汉举办的影驰2012电子竞技嘉年华的合作伙伴名单上出现了futumark的身影。Futuremark中国区负责人影驰在当天的平板体验区也提…

android 申请usb权限,USB 权限申请流程

USB android授权方式权限的控制分三块&#xff1a;1:USB host端有个线程循环检测系统是否USB设备插拔&#xff0c;如果有就找到申请权限的APP并调用起来2:APP运行后主动申请权限&#xff0c;也就是requestPermission()接口3:APP运行后直接打开USB设备&#xff0c;这时候USB hos…

qt for android 图片可拉伸,qt实现九宫格布局,图片拉伸

在实现qt播放时&#xff0c;调用的mplayer,由于采用的是自定义绘图&#xff0c;用的是setAttribute(Qt::WA_TranslucentBackground);结果不能正常在上面显示播放画面&#xff0c;在默认皮肤下是没有问题的&#xff0c;决定用九宫格图片拉伸方式(效果如图)附件图片&#xff1a;文…

python不是内部文件_已安装python,但是出现‘python’不是内部或外部命令,也不是可运行的程序或批处理文件。...

解决方法&#xff1a; 1.打开python shell查看你的python安装路径&#xff08;黄色标注&#xff09; >>> import sys >>> sys.path [, C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37\\Lib\\idlelib, C:\\Users\\Administrator\\App…