spring boot mybatis

来源:互联网 发布:linux kangle一键安装 编辑:程序博客网 时间:2024/06/18 12:57


原文地址 http://blog.csdn.net/sinat_36203615/article/details/53759935

spring-boot 注解配置mybatis+druid(新手上路)

之前已经介绍了新手如何搭建一个简单的springboot,接下来介绍一下springboot+mybatis+druid的配置方法。

鄙人不才,参考了一些高手的博文以及官方文档,整理出了一点心得。

对高手的感谢无以言表,原文地址:http://blog.csdn.net/lxhjh/article/details/51764604

http://blog.csdn.net/xiaoyu411502/article/details/51392237

使用环境:JDK1.8 、eclipse-neon、maven3.5+、mysql5.5

框架使用:springboot1.4.1、druid1.0.26、mybatis自动获取版本号

介绍:我使用的配置文件格式为application.properties,基本都是使用注解的方式搭建。

数据库表结构,databases名为mydatabases;表明为city,字段有三个,分别是id、name、province,数据类型是varchar(20)。

第一步:

开始还是新建springboot项目,然后导包。

新建maven项目,选择jar包。

配置pom.xml文件。

[html] view plain copy
  1.  <properties>  
  2.     <java.version>1.8</java.version>  
  3.  </properties>  
  4.  <parent>  
  5.    <groupId>org.springframework.boot</groupId>  
  6.    <artifactId>spring-boot-starter-parent</artifactId>  
  7.    <version>1.4.1.RELEASE</version>  
  8.  </parent>  
  9.  <dependencies>  
  10.    <dependency>  
  11.        <groupId>org.springframework.boot</groupId>  
  12.        <artifactId>spring-boot-starter-web</artifactId>  
  13.    </dependency>  
  14.    <!-- druid数据库连接池 -->  
  15.    <dependency>  
  16.        <groupId>com.alibaba</groupId>  
  17.        <artifactId>druid</artifactId>  
  18.        <version>1.0.26</version>  
  19. </dependency>  
  20. <!-- springboot的mybatis -->  
  21. <dependency>  
  22.        <groupId>org.mybatis.spring.boot</groupId>  
  23.        <artifactId>mybatis-spring-boot-starter</artifactId>  
  24.        <version>1.1.1</version>  
  25.    </dependency>  
  26.    <!-- MySql数据库驱动 -->  
  27.    <dependency>  
  28.        <groupId>mysql</groupId>  
  29.        <artifactId>mysql-connector-java</artifactId>  
  30.    </dependency>  
  31.    <!-- Springboot 热部署 -->  
  32.    <dependency>  
  33.        <groupId>org.springframework.boot</groupId>  
  34.        <artifactId>spring-boot-devtools</artifactId>  
  35.        <optional>true</optional>  
  36.    </dependency>  
  37.    </dependencies>  

第二步:

创建启动类。

[java] view plain copy
  1. import org.mybatis.spring.annotation.MapperScan;  
  2. import org.springframework.boot.SpringApplication;  
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;  
  4. import org.springframework.boot.web.servlet.ServletComponentScan;  
  5.   
  6. @SpringBootApplication  
  7. @ServletComponentScan   //扫描Servlet  
  8. @MapperScan("mapper")<span style="white-space:pre"> </span>//这里mapper是你的mybatis的mapper目录。  
  9. public class Application {  
  10.     public static void main(String[] args) {  
  11.         SpringApplication.run(Application.class, args);  
  12.     }  
  13. }  

第三步:

填写配置文件。(这里呀,参数比较多,可以选择填写。)

我使用的是application.properties文件,该文件放在src/main/resources目录下,springboot框架启动后会自动读取它。

[plain] view plain copy
  1. #数据库设置  
  2. spring.datasource.type=com.alibaba.druid.pool.DruidDataSource  
  3. spring.datasource.driverClassName=com.mysql.jdbc.Driver  
  4. spring.datasource.url=jdbc:mysql://localhost:3306/mydatabases  
  5. spring.datasource.username=root  
  6. spring.datasource.password=123  
  7. #--------------------------  
  8. # 下面为连接池的补充设置,应用到上面所有数据源中  
  9. # 初始化大小,最小,最大  
  10. spring.datasource.initialSize=5  
  11. spring.datasource.minIdle=5  
  12. spring.datasource.maxActive=20  
  13. # 配置获取连接等待超时的时间  
  14. spring.datasource.maxWait=60000  
  15. # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒   
  16. spring.datasource.timeBetweenEvictionRunsMillis=60000  
  17. # 配置一个连接在池中最小生存的时间,单位是毫秒   
  18. spring.datasource.minEvictableIdleTimeMillis=300000  
  19. spring.datasource.validationQuery=SELECT 1 FROM DUAL  
  20. spring.datasource.testWhileIdle=true  
  21. spring.datasource.testOnBorrow=false  
  22. spring.datasource.testOnReturn=false  
  23. # 打开PSCache,并且指定每个连接上PSCache的大小   
  24. spring.datasource.poolPreparedStatements=true  
  25. spring.datasource.maxPoolPreparedStatementPerConnectionSize=20  
  26. # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙   
  27. spring.datasource.filters=stat,wall,log4j  
  28. # 通过connectProperties属性来打开mergeSql功能;慢SQL记录  
  29. spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000  
  30. # 合并多个DruidDataSource的监控数据  
  31. #spring.datasource.useGlobalDataSourceStat=true  

第四步:

配置数据源。这里相关的参数会自动赋值到datasource里。

[java] view plain copy
  1. import javax.sql.DataSource;  
  2. import org.springframework.boot.context.properties.ConfigurationProperties;  
  3. import org.springframework.context.annotation.Bean;  
  4. import org.springframework.context.annotation.Configuration;  
  5.   
  6. import com.alibaba.druid.pool.DruidDataSource;  
  7. @Configuration  
  8. public class DruidDataSourceConfiguration {  
  9.   
  10.     @Bean  
  11.     @ConfigurationProperties(prefix = "spring.datasource")  
  12.     public DataSource druidDataSource() {  
  13.         DruidDataSource druidDataSource = new DruidDataSource();  
  14.         return druidDataSource;  
  15.     }  
  16. }  

第五步:

写一个实体类。这里可以随意哈。

[java] view plain copy
  1. import java.io.Serializable;  
  2.   
  3. public class City implements Serializable{  
  4.     private static final long serialVersionUID = 1L;  
  5.     private String id;  
  6.     private String name;  
  7.     private String province;  
  8.     City(){  
  9.           
  10.     }  
  11.     public String getId() {  
  12.         return id;  
  13.     }  
  14.     public void setId(String id) {  
  15.         this.id = id;  
  16.     }  
  17.     public String getName() {  
  18.         return name;  
  19.     }  
  20.     public void setName(String name) {  
  21.         this.name = name;  
  22.     }  
  23.     public String getProvince() {  
  24.         return province;  
  25.     }  
  26.     public void setProvince(String province) {  
  27.         this.province = province;  
  28.     }  
  29.     @Override  
  30.     public String toString() {  
  31.         return "City [id=" + id + ", name=" + name + ", province=" + province + "]";  
  32.     }  
  33.       
  34. }  

第六步:

写mapper文件。这里的包地址为Application的MapperScan的值。

[java] view plain copy
  1. import org.apache.ibatis.annotations.Param;  
  2. import org.apache.ibatis.annotations.Select;  
  3.   
  4. public interface CityMapper {  
  5.       
  6.     @Select("select * from city where id = #{id}")  
  7.     City findCityById(@Param("id") String id);  
  8. }  

第七步:

这里就不写Service了,直接在Controller里写了。

[java] view plain copy
  1. import javax.annotation.Resource;  
  2.   
  3. import org.springframework.boot.autoconfigure.EnableAutoConfiguration;  
  4. import org.springframework.web.bind.annotation.RequestMapping;  
  5. import org.springframework.web.bind.annotation.RequestParam;  
  6. import org.springframework.web.bind.annotation.RestController;  
  7.   
  8. @RestController  
  9. @RequestMapping("/demo")  
  10. @EnableAutoConfiguration  
  11. public class HelloController {  
  12.     @Resource  
  13.     private CityMapper cityMapper;  
  14.     @RequestMapping("/test")  
  15.     String test1(){  
  16.         return "hello,test1()";  
  17.     }  
  18.     @RequestMapping("/findCity2")  
  19.     City findCity2(@RequestParam String id){  
  20.         return cityMapper.findCityById(id);  
  21.     }  
  22. }  

第八步:

这里要写filter,配合druid监控的使用。

[java] view plain copy
  1. import javax.servlet.annotation.WebFilter;  
  2. import javax.servlet.annotation.WebInitParam;  
  3.   
  4. import com.alibaba.druid.support.http.WebStatFilter;  
  5.   
  6. @WebFilter(filterName="druidWebStatFilter",urlPatterns="/*",  
  7. initParams={  
  8.          @WebInitParam(name="exclusions",value="*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")// 忽略资源  
  9.  }  
  10. )  
  11. public class DruidStatFilter extends WebStatFilter{  
  12.   
  13. }  


第九步:

配置监控界面。

[java] view plain copy
  1. import com.alibaba.druid.support.http.StatViewServlet;  
  2. import javax.servlet.annotation.WebServlet;  
  3. import javax.servlet.annotation.WebInitParam;  
  4. @WebServlet(urlPatterns = "/druid/*",   
  5.     initParams={  
  6.             @WebInitParam(name="allow",value="192.168.16.110,127.0.0.1"),// IP白名单 (没有配置或者为空,则允许所有访问)  
  7.             @WebInitParam(name="deny",value="192.168.16.111"),// IP黑名单 (存在共同时,deny优先于allow)  
  8.             @WebInitParam(name="loginUsername",value="admin"),// 用户名  
  9.             @WebInitParam(name="loginPassword",value="123"),// 密码  
  10.             @WebInitParam(name="resetEnable",value="false")// 禁用HTML页面上的“Reset All”功能  
  11.     })  
  12. public class DruidStatViewServlet extends StatViewServlet {  
  13.     private static final long serialVersionUID = 1L;  
  14.       
  15. }  

第十步:

启动测试。在application.Java中启动,浏览器中先进入:localhost:8080/druid/login.html,输入用户名:admin,密码:123,进入。

再执行一下localhost:8080/demo/findCity2?id=001,(你的数据)查看结果。这里需要你的数据库里有数据。

在监控页面看看sql监控是否被监控到。

附上源码:https://git.oschina.net/xiaojiann/springbootdemo


肚子饿。。。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 科目二考试第一次不合格怎么办 科目二不想考了怎么办 科二有事考不了怎么办 科四有事去不了怎么办 社保卡发了密码怎么办 不知道社保卡号怎么办 科目三未到30天怎么办 户口地址变了驾照怎么办 拿了驾照没开车怎么办 免检的车在外地怎么办 2018年b2证扣3分怎么办 科一考试没去怎么办 上海房子卖了户口怎么办 贷款买房买房人不是贷款人怎么办 行驶证驾驶证都遗失了怎么办 c1增驾b2没考过怎么办 没驾照买车怎么办行驶证 广州车辆年审加装踏板怎么办 租车感觉违章了 怎么办 武汉驾照扣12分怎么办 驾驶证照片泡水不清楚怎么办 驾驶证过了180天怎么办 天津有公司执照怎么办落户 温州车在上海年审手续怎么办 广东小高考考了d怎么办 深圳开摩托抓到怎么办 深圳车卖了车牌怎么办 a1驾照时期过了怎么办 b1驾照扣了12分怎么办 北京的驾照换证怎么办 b2汽车驾驶证年审过期几天怎么办 上海驾照到期人在外地怎么办 交警开的罚单交不了怎么办 珠海交警微信交罚单扣分怎么办 驾驶证违法罚款单子没有了怎么办 转账密码输错3次怎么办 汽车违章扣6分怎么办 汽车扣了72分年检怎么办 汽车扣了50分怎么办 汽车扣了15分怎么办 汽车扣了27分怎么办