乐趣区

单手撸了个springboot+mybatis+druid

本文旨在用最通俗的语言讲述最枯燥的基本知识
最近身边的程序员掀起了学习 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。
<!– https://mvnrepository.com/artifact/mysql/mysql-connector-java –>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<!– https://mvnrepository.com/artifact/com.alibaba/druid –>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<!– https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter –>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</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
spring:
#profiles: dev
messages:
basename: i18n/Messages,i18n/Pages
datasource:
type: com.alibaba.druid.pool.DruidDataSource # 配置当前要使用的数据源的操作类型
driver-class-name: org.gjt.mm.mysql.Driver # 配置 MySQL 的驱动程序类
url: jdbc:mysql://localhost:3306/wkt_stat # 数据库连接地址
username: root # 数据库用户名
password: root # 数据库连接密码
dbcp2: # 进行数据库连接池的配置
min-idle: 5 # 数据库连接池的最小维持连接数
initial-size: 5 # 初始化提供的连接数
max-total: 5 # 最大的连接数
max-wait-millis: 200 # 等待连接获取的最大超时时间
4. 设置 mybatis
继续在 application.yml 中设置 mybatis,mybatis 的配置也简单,主要是为了设置 mybatis 的配置文件已经 mapper 文件所在。
首先在 resource 目录下创建一个 mybatis-config.xml 文件,文件内容为:
<?xml version=”1.0″ encoding=”UTF-8″ ?>
<!DOCTYPE configuration
PUBLIC “-//mybatis.org//DTD Config 3.0//EN”
“http://mybatis.org/dtd/mybatis-3-config.dtd”>
<configuration>
<mappers>
</mappers>
</configuration>
在 main 包中的根目录下创建一个存放 mapper 实体的资源文件, 在 resource 文件下创建一个文件夹 mapper 用来存放 mapper 的 xml 文件。

配置好资源文件路径之后,就可以在 application.yml 中加入 mybatis 的配置了,如下是一个 mybatis 的配置内容:
#mybatis 的 mapper 配置文件
mybatis:
config-location: classpath:mybatis-config.xml # mybatis 配置文件所在路径
#mapper-locations: classpath:mapper/*.xml # 所有的 mapper 映射文件
type-aliases-package: com.becl.dao.mapper # 定义所有操作类的别名所在包
debug: true
最终 application.yml 的内容如下图:
此时需要有一个数据库表来做测试,我们在数据库创建一个表,并且插入一条数据:
CREATE TABLE Memeber (
`id` int(11) NOT NULL AUTO_INCREMENT ,
`name` varchar(255) NULL ,
PRIMARY KEY (`id`)
);

INSERT INTO memeber VALUES(1,”jas”)
在 mapper 包中创建 Memeber 的 mapper 接口:
public interface MemeberMapper {
/**
* 根据 ID 获取记录
* @param id
* @return
*/
public Map findObjectById(Integer id);
}
在 resource 中的 mapper 文件夹创建 memberMapper.xml,并且在 mapper 中增加一个 findObjectById 的 SQL 查询语句。
<?xml version=”1.0″ encoding=”UTF-8″?>
<!DOCTYPE mapper
PUBLIC “-//mybatis.org//DTD Mapper 3.0//EN”
“http://mybatis.org/dtd/mybatis-3-mapper.dtd”>
<!– 映射文件配置,namespace 指向接口 –>
<mapper namespace=”com.example.mybatisanddruid.mapper.MemeberMapper”>
#根据 ID 查询记录
<select id=”findObjectById” parameterType=”Integer” resultType=”Map”>
select * from memeber where id = #{value}
</select>
</mapper>
5. hello world
走到这一步,基本上已经是大功告成了,我们来写一个测试类试试,在根目录创建一个 controller 的包,在包中创建一个 Java 类,如下:
@Controller
@RequestMapping(“/test”)
public class TestController {
@Resource
private MemeberMapper memeberMapper=null;

@RequestMapping(“/one”)
@ResponseBody
public Map testdb(){
return memeberMapper.findObjectById(1);
}
}
创建完之后,我们运行项目,找到启动类 MybatisAndDruidApplication 右键 run,发现报错,提示没有扫描到 mapper 包,为什么呢?那是 mapper 需要手动在启动类中加入:
@MapperScan(“com.example.mybatisanddruid.mapper”)
这样启动类就变成:
@SpringBootApplication
@MapperScan(“com.example.mybatisanddruid.mapper”)
public class MybatisAndDruidApplication {

public static void main(String[] args) {
SpringApplication.run(MybatisAndDruidApplication.class, args);
}
}
再次运行,没有报错,在浏览器输入:http://localhost:8888/test/one 输出了 ID 为 1 的记录:
{“name”:”jas”,”id”:1}
由此可见,springboot-mybatis 已经搭建成功,此时有人会问,那 Druid 呢?
设置 Druid 监控配置
druid 的使用需要做一些配置,现在我们来在根目录下创建一个包 config,在 config 包中间创建一个叫做 DruidConfig.java,并且在里写入下面的内容:
@Configuration
public class DruidConfig {
@Bean
public ServletRegistrationBean druidServlet() { // 主要实现 WEB 监控的配置处理
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), “/druid/*”); // 进行 druid 监控的配置处理操作
servletRegistrationBean.addInitParameter(“allow”,
“127.0.0.1,192.168.1.159”); // 白名单
servletRegistrationBean.addInitParameter(“deny”, “192.168.1.200”); // 黑名单
servletRegistrationBean.addInitParameter(“loginUsername”, “stat”); // 用户名
servletRegistrationBean.addInitParameter(“loginPassword”, “Wkt_sTat_1031”); // 密码
servletRegistrationBean.addInitParameter(“resetEnable”, “false”); // 是否可以重置数据源
return servletRegistrationBean ;
}
@Bean
public FilterRegistrationBean filterRegistrationBean() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean() ;
filterRegistrationBean.setFilter(new WebStatFilter());

filterRegistrationBean.addUrlPatterns(“/*”); // 所有请求进行监控处理
filterRegistrationBean.addInitParameter(“exclusions”, “*.js,*.gif,*.jpg,*.css,/druid/*”);
return filterRegistrationBean ;
}
@Bean
@ConfigurationProperties(prefix = “spring.datasource”)
public DataSource druidDataSource() {
return new DruidDataSource();
}

}
配置中的内容就不一一细讲,有兴趣的直接百度一下 druid 就出来很多答案了,现在重新运行一下项目,运行成功之后,在浏览器中输入:http://localhost:8888/druid 这时候,druid 监控平台就出现了
此时我们输入在 DruidConfig 中设置的 loginUsername 和 loginPassword 点击登录,一个完整的 druid 监控管理平台就呈现在我们啦~
Druid 非常强大,在这里你可以查看 SQL 的执行情况、慢 SQL、API 请求情况等,根据这些可以做一些性能的调优,至于详细的用法,就靠大家自行学习啦~
如果有老铁需要项目源码,请加我微信:sisi-ceo。

觉得本文对你有帮助?请分享给更多人关注「编程无界」,提升装逼技能

退出移动版