本文旨在用最通俗的语言讲述最枯燥的基本知识
最近身边的程序员掀起了学习springboot的热潮,说什么学会了springboot在大街上就可以横着走、什么有了springboot妈妈再也不担心我的编程了、什么BAT都喜欢的框架…听得作者那个心痒痒的,于是找了个时间,下载了个idea来玩一波springboot,对了…用springboot最好用idea,如果你还在用eclipse,删了吧。
在这里解释一下为什么是springboot+mybatis+druid,是因为作者认为但凡任何一个有灵魂的项目,都少不了数据库,作者不喜欢用JPA那种混SQL的语法,因此选了mybatis,而Druid是阿里系(真香~)的一种数据库连接池框架,在上一个项目作者用的屡试不爽,因此打算继续用,为啥屡试不爽?看文末吧。
文章提纲:
- 创建springboot工程
- 配置pom.xml
- 配置数据源
- 设置mybatis
- hello world
- 设置Druid监控配置
1. 创建springboot工程
只要你有idea,创建一个springboot工程,就跟捏死一个蚂蚁一样简单,因为idea里深度集成了对springboot项目的支持,你直接不停的next到最后,它就会帮你创建出一个springboot工程。
-
首先打开idea->Create New project->选择项目类型:这里选择spring initializr,然后next。
-
创建项目,填写项目名称,注意:不要能驼峰写法,可以用中横线,填写完毕后继续next。
-
选择依赖,所谓依赖就是你在设计这个项目的框架时,分析这个项目需要用到哪些jar或者组件,比如缓存要用到Redis,数据库要用到MySQL等…这里因为演示项目,就不选择太多其它乱七八糟的依赖了。
-
选好依赖之后,又是一路狂点next,直到最后finish一下,一个springboot项目就创建好了。
2. 配置pom.xml
想想,我们需要哪些jar?
数据库要用到mybatis,数据库连接池要用到Druid、MySQL桥接器要用到mysql-connector,因此要maven仓库(点我去仓库)中找到搜索这些pom加进去。注意,mybatis要用mybatis-spring-boot-starter。
1 <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
2 <dependency>
3 <groupId>mysql</groupId>
4 <artifactId>mysql-connector-java</artifactId>
5 <version>5.1.6</version>
6 </dependency>
7 <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
8 <dependency>
9 <groupId>com.alibaba</groupId>
10 <artifactId>druid</artifactId>
11 <version>1.1.10</version>
12 </dependency>
13 <!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
14 <dependency>
15 <groupId>org.mybatis.spring.boot</groupId>
16 <artifactId>mybatis-spring-boot-starter</artifactId>
17 <version>1.3.2</version>
18 </dependency>
把上面这些pom放到pom.xml的dependencies中
细心的老铁会发现,MySQL的version里的内容是红色的,这是什么原因呢?
这是因为我们引入pom时,这些版本的jar在本地maven仓库还没有,而Druid的pom里的version没有显示红色,是因为之前的项目用到了这个版本的Druid,已经被下载到本地Maven仓库里了。
因此我们需要把本地没有的jar下载到本地仓库,右键pom.xml弹出菜单,选择Maven,弹出菜单选择reimport
Reimport过程中再idea底部会有进度条显示,等进度条消失,在观察pom.xml,红色已经消失,说明依赖已经装备完成。
- 配置数据源
接下来就是要多springboot项目做一个全局配置,默认会在src->main->resource目录下生产空白文件application.properties,作者喜欢用yml因此直接改名成yml即可。
首先是数据源的配置,下面是一份数据源的配置,每个参数的解释都写了注释,因此读者可以直接复制一下内容进去,只需要改一下url、username、password
1spring:
2 #profiles: dev
3 messages:
4 basename: i18n/Messages,i18n/Pages
5 datasource:
6 type: com.alibaba.druid.pool.DruidDataSource # 配置当前要使用的数据源的操作类型
7 driver-class-name: org.gjt.mm.mysql.Driver # 配置MySQL的驱动程序类
8 url: jdbc:mysql://localhost:3306/wkt_stat # 数据库连接地址
9 username: root # 数据库用户名
10 password: root # 数据库连接密码
11 dbcp2: # 进行数据库连接池的配置
12 min-idle: 5 # 数据库连接池的最小维持连接数
13 initial-size: 5 # 初始化提供的连接数
14 max-total: 5 # 最大的连接数
15 max-wait-millis: 200 # 等待连接获取的最大超时时间
4. 设置mybatis
继续在application.yml中设置mybatis,mybatis的配置也简单,
主要是为了设置mybatis的配置文件已经mapper文件所在。
- 首先在resource目录下创建一个mybatis-config.xml文件,文件内容为:
1<?xml version="1.0" encoding="UTF-8" ?>
2<!DOCTYPE configuration
3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
4 "http://mybatis.org/dtd/mybatis-3-config.dtd">
5<configuration>
6 <mappers>
7 </mappers>
8</configuration>
-
在main包中的根目录下创建一个存放mapper实体的资源文件,在resource文件下创建一个文件夹mapper用来存放mapper的xml文件。
-
配置好资源文件路径之后,就可以在application.yml中加入mybatis的配置了,如下是一个mybatis的配置内容:
1#mybatis的mapper配置文件
2mybatis:
3 config-location: classpath:mybatis-config.xml # mybatis配置文件所在路径
4 #mapper-locations: classpath:mapper/*.xml # 所有的mapper映射文件
5 type-aliases-package: com.becl.dao.mapper # 定义所有操作类的别名所在包
6debug: true
最终application.yml的内容如下图:
- 此时需要有一个数据库表来做测试,我们在数据库创建一个表,并且插入一条数据:
1CREATE TABLE Memeber (
2`id` int(11) NOT NULL AUTO_INCREMENT ,
3`name` varchar(255) NULL ,
4PRIMARY KEY (`id`)
5);
6
7INSERT INTO memeber VALUES(1,"jas")
- 在mapper包中创建Memeber的mapper接口:
1public interface MemeberMapper {
2 /**
3 * 根据ID获取记录
4 * @param id
5 * @return
6 */
7 public Map findObjectById(Integer id);
8}
- 在resource中的mapper文件夹创建memberMapper.xml,并且在mapper中增加一个findObjectById的SQL查询语句。
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE mapper
3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5<!--映射文件配置,namespace指向接口-->
6<mapper namespace="com.example.mybatisanddruid.mapper.MemeberMapper">
7#根据ID查询记录
8<select id="findObjectById" parameterType="Integer" resultType="Map">
9 select * from memeber where id = #{value}
10 </select>
11</mapper>
5. hello world
走到这一步,基本上已经是大功告成了,我们来写一个测试类试试,在根目录创建一个controller的包,在包中创建一个Java类,如下:
1@Controller
2@RequestMapping("/test")
3public class TestController {
4 @Resource
5 private MemeberMapper memeberMapper=null;
6
7 @RequestMapping("/one")
8 @ResponseBody
9 public Map testdb(){
10 return memeberMapper.findObjectById(1);
11 }
12}
创建完之后,我们运行项目,找到启动类MybatisAndDruidApplication右键run,发现报错,提示没有扫描到mapper包,为什么呢?那是mapper需要手动在启动类中加入:
1@MapperScan("com.example.mybatisanddruid.mapper")
这样启动类就变成:
1@SpringBootApplication
2@MapperScan("com.example.mybatisanddruid.mapper")
3public class MybatisAndDruidApplication {
4
5 public static void main(String[] args) {
6 SpringApplication.run(MybatisAndDruidApplication.class, args);
7 }
8}
再次运行,没有报错,在浏览器输入:http://localhost:8888/test/one
输出了ID为1的记录:
1{"name":"jas","id":1}
由此可见,springboot-mybatis已经搭建成功,此时有人会问,那Druid呢?
- 设置Druid监控配置
druid的使用需要做一些配置,现在我们来在根目录下创建一个包config,在config包中间创建一个叫做DruidConfig.java,并且在里写入下面的内容:
1@Configuration
2public class DruidConfig {
3 @Bean
4 public ServletRegistrationBean druidServlet() { // 主要实现WEB监控的配置处理
5 ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*"); // 进行druid监控的配置处理操作
6 servletRegistrationBean.addInitParameter("allow",
7 "127.0.0.1,192.168.1.159"); // 白名单
8 servletRegistrationBean.addInitParameter("deny", "192.168.1.200"); // 黑名单
9 servletRegistrationBean.addInitParameter("loginUsername", "stat"); // 用户名
10 servletRegistrationBean.addInitParameter("loginPassword", "Wkt_sTat_1031"); // 密码
11 servletRegistrationBean.addInitParameter("resetEnable", "false"); // 是否可以重置数据源
12 return servletRegistrationBean ;
13 }
14 @Bean
15 public FilterRegistrationBean filterRegistrationBean() {
16 FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean() ;
17 filterRegistrationBean.setFilter(new WebStatFilter());
18
19 filterRegistrationBean.addUrlPatterns("/*"); // 所有请求进行监控处理
20 filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.css,/druid/*");
21 return filterRegistrationBean ;
22 }
23 @Bean
24 @ConfigurationProperties(prefix = "spring.datasource")
25 public DataSource druidDataSource() {
26 return new DruidDataSource();
27 }
28
29}
配置中的内容就不一一细讲, 有兴趣的直接百度一下druid就出来很多答案了,现在重新运行一下项目,运行成功之后,在浏览器中输入:http://localhost:8888/druid
这时候,druid监控平台就出现了
此时我们输入在DruidConfig中设置的loginUsername和loginPassword点击登录,一个完整的druid监控管理平台就呈现在我们啦~
Druid非常强大,在这里你可以查看SQL的执行情况、慢SQL、API请求情况等,根据这些可以做一些性能的调优,至于详细的用法,就靠大家自行学习啦~
如果有老铁需要项目源码,请加我微信:sisi-ceo。
觉得本文对你有帮助?请分享给更多人
关注「编程无界」,提升装逼技能
相关推荐
基于SpringBoot + MyBatis + Layui的后台权限管理系统。代码简洁易懂、界面美观大方,内部封装了权限管理系统常用的全部功能,可直接作为快速开发JavaWeb项目的脚手架使用。 基于SpringBoot + MyBatis + Layui的...
项目描述 在上家公司自己集成的一套系统,用了两个多月的时间完成的:Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级开发系统 Springboot作为容器,使用mybatis作为持久层框架 使用官方推荐的thymeleaf做为...
1、基于SpringBoot+MyBatis前后端开发的博客网站项目源码.zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料...
在上家公司自己集成的一套系统,用了两个多月的时间完成的:Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级开发系统 Springboot作为容器,使用mybatis作为持久层框架 使用官方推荐的thymeleaf做为模板引擎...
基于 springboot+mybatis_+shiro + redis+activiti+quarts+quartz+vue 写的一个前后分离办公企业管理系统 ,通用服务端,用于学习。 使用技术 服务端: springboot(2.2.1) + mybatis-push + shiro(1.4.0) + redis +...
springboot+mybatis+layui的就业管理系统 springboot+mybatis+layui就业信息管理系统,共有三个功能模块:就业信息管理,学生就业信息的增删改查;就业统计,按不同维度统计就业学生人数;用户管理,共有两种身份...
本项目JDK8x64+SpringBoot+MyBatis+Redis+Druid+Beetl+Shrio的框架组合, 自研工作流引擎,支持可视化表单设计与流程设计。 支技分布式部署。功能完善能够满足中大型企业办公需要。 本项目JDK8x64+SpringBoot+...
Android使用基本的MVC模式,尽可能的写得简单,因为主要还是学习后端,后端使用流行的SpringBoot+Mybatis框架,设计一个可扩展分布式架构。 storeClient安卓端 技术 说明 okgo 优秀的网络请求框架 autosize 屏幕适配...
毕业设计,基于springboot+mybatis+druid+jsp+bootstrap实现后台权限管理系统,内含源码+数据库 项目是maven,相应的jar包也在压缩包里。项目基于jdk1.8整合了springboot+mvc+mybatis(通用mapper)+druid+jsp+...
基于SpringBoot+MyBatis实现的一套完整的电子商城前后台管理系统 项目经过严格测试,确保可以运行!源码无需做任何更改! 一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker...
这是一个基于springboot+vue+mybatis的学生成绩管理系统。java开发基于springboot的管理系统源码。这是一个基于springboot+vue+mybatis的学生成绩管理系统。java开发基于springboot的管理系统源码。这是一个基于...
基于 SpringBoot + Spring + SpringMvc + Mybatis + Shiro+ Redis 开发单点登录管理系统 基于 SpringBoot + Spring + SpringMvc + Mybatis + Shiro+ Redis 开发单点登录管理系统 基于 SpringBoot + Spring + ...
基于Springboot+Mybatis+Redis+MySql+MQ的校园医疗管理系统源码+数据库.zip 基于Springboot+Mybatis+Redis+MySql+MQ的校园医疗管理系统源码+数据库.zip 基于Springboot+Mybatis+Redis+MySql+MQ的校园医疗管理系统...
基于SpringBoot+MyBatis+Redis的图像素材管理系统源码(高分毕设).zip 基于SpringBoot+MyBatis+Redis的图像素材管理系统源码(高分毕设).zip 基于SpringBoot+MyBatis+Redis的图像素材管理系统源码(高分毕设).zip...
(毕业设计)-基于springboot+mybatis实现后台权限管理系统源码设计与实现(源码) (毕业设计)-基于springboot+mybatis实现后台权限管理系统源码设计与实现(源码) (毕业设计)-基于springboot+mybatis实现后台...
基于springboot+mybatis redis构建的在线抽奖系统,管理后台,采用队列处理,支持高并发 项目经过严格测试,确保可以运行! 基于springboot+mybatis redis构建的在线抽奖系统,管理后台,采用队列处理,支持高并发...
总的来说,Java+Springboot+Mybatis架构是一个强大且成熟的开发选择,适用于许多企业级应用。它的核心思想是模块化、松耦合,使开发者能够专注于业务逻辑,而不是被基础设施细节所困扰。在实际项目中,可以根据需求...
springboot+mybatis+mysql仿百度网盘系统2.0.md
完整的springboot+mybatis框架,打开就可运行。不用再去找POM配置了。
基于 SpringBoot + Mybatis Plus + Shiro + mysql + redis构建的智慧云智能教育平台。架构上使用完全前后端分离。 支持多种题型:选择题、多选题、判断题、填空题、综合题以及数学公式。支持在线考试,教师在线批改...