springboot与mybatis整合操作数据库

来源:互联网 发布:java语言 编辑:程序博客网 时间:2024/06/03 14:31

    今天这篇博客主要介绍springboot与mybatis整合操作数据库,数据源采用阿里的Druid。mybatis可以基于注解也可以基于xml配置。至于怎么新建maven项目这里不再做介绍。

1、首先要新建一个maven项目,项目结构如下,注意启动类的springboot启动类要在所有类的父一级目录。



2、pom.xml配置如下:

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>demo</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.6.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency>         <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency> <!-- druid数据库连接池 --><dependency>         <groupId>com.alibaba</groupId>         <artifactId>druid</artifactId>         <version>1.0.26</version>  </dependency><!-- springboot的mybatis -->   <dependency>         <groupId>org.mybatis.spring.boot</groupId>         <artifactId>mybatis-spring-boot-starter</artifactId>         <version>1.1.1</version>     </dependency>       <!-- MySql数据库驱动 -->     <dependency>         <groupId>mysql</groupId>         <artifactId>mysql-connector-java</artifactId>     </dependency>     <!-- Springboot 热部署 -->     <dependency>         <groupId>org.springframework.boot</groupId>         <artifactId>spring-boot-devtools</artifactId>         <optional>true</optional>     </dependency>   </dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
2、配置application.properties文件

主要包括数据库连接池,mapper映射等

#数据库设置  spring.datasource.type=com.alibaba.druid.pool.DruidDataSourcespring.datasource.driverClassName=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/test_dbspring.datasource.username=rootspring.datasource.password=root#--------------------------  # 下面为连接池的补充设置,应用到上面所有数据源中  # 初始化大小,最小,最大  spring.datasource.initialSize=5spring.datasource.minIdle=5spring.datasource.maxActive=20# 配置获取连接等待超时的时间  spring.datasource.maxWait=60000# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒   spring.datasource.timeBetweenEvictionRunsMillis=60000# 配置一个连接在池中最小生存的时间,单位是毫秒   spring.datasource.minEvictableIdleTimeMillis=300000spring.datasource.validationQuery=SELECT 1 FROM DUALspring.datasource.testWhileIdle=truespring.datasource.testOnBorrow=falsespring.datasource.testOnReturn=false# 打开PSCache,并且指定每个连接上PSCache的大小   spring.datasource.poolPreparedStatements=truespring.datasource.maxPoolPreparedStatementPerConnectionSize=20# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙   spring.datasource.filters=stat,wall,log4j# 通过connectProperties属性来打开mergeSql功能;慢SQL记录  spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000# 合并多个DruidDataSource的监控数据  #spring.datasource.useGlobalDataSourceStat=true #配置mapper映射mybatis.mapperLocations=classpath*:com/example/mapper/*.xmlmybatis.typeAliasesPackage=com.example.domain
3、创建mapper文件UserMapper.java

package com.example.mapper;import org.apache.ibatis.annotations.Mapper;import com.example.domain.User;@Mapperpublic interface UserMapper {//@Select({"select * from t_user where id=#{id}"})//User getUserById(@Param("id") Integer id);User getUserById(Integer id);}
备注:目前展示的是mybatis基于xml配置的方式操作数据库,如果想基于注解的方式可以直接使用注释部分代码,不用再去创建xml映射配置,同时application.properties中如下配置可以去掉。

#配置mapper映射mybatis.mapperLocations=classpath*:com/example/mapper/*.xmlmybatis.typeAliasesPackage=com.example.domain

4、创建sql_userMapper.xml

<?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" >  <mapper namespace="com.example.mapper.UserMapper" >      <select id="getUserById" resultType="com.example.domain.User">          select * from t_user where id = #{id,jdbcType=NUMERIC}      </select>        </mapper>
5、接下来就是创建DAO,Service类。这部分代码就不粘贴了。

6、创建controller类,UserController.java

package com.example.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;import com.example.domain.User;import com.example.service.UserService;@RestController@RequestMapping("/user")public class UserController {@Autowiredprivate UserService userService;@RequestMapping("/getUserbyId") public User getUser(@RequestParam String id){User user= userService.getUserById(Integer.valueOf(id));return user;}}

7、启动类DemoApplication.java

package com.example;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.transaction.annotation.EnableTransactionManagement;@SpringBootApplication//启注解事务管理  @EnableTransactionManagementpublic class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}}
备注:点击@SpringBootApplication进入源码会发现这个注解已经包含了一系列的注解,所以引用了@SpringBootApplication这个注解就可以不用再去引用@EnableAutoConfiguration,@ComponentScan这些注解了。

8、运行DemoApplication.java,在浏览器中输入

http://localhost:8080/user/getUserbyId?id=1,可以看到返回的数据





原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 华华为p10信号不好怎么办 烟没拆封受潮了怎么办 和亲儿子发生了性关系怎么办 无心磨磨出来圆度不好怎么办 中国人在越南办结婚证怎么办? 无线网被限速了怎么办 联通大王卡上传速度慢怎么办 小米手机下载视频速度慢怎么办 大疆御air脚架断了怎么办 大疆飞行器线断了怎么办 移动校园卡套餐到期后怎么办 流量年包到期了怎么办 家里无线网信号不好怎么办 无线网光信号红灯了怎么办 机顶盒获取不了lp地址怎么办 32内存卡丢了怎么办 手机上的相机找不到了怎么办 有刘鑫这样的闺蜜该怎么办 电脑开机网络初始化失败怎么办 电脑放音乐没有声音怎么办 苹果手机gprs信号弱怎么办 苹果导航gprs信号弱怎么办 au没有波形 没有声音怎么办 屏幕驱动板坏了怎么办 安吉星流量超了怎么办 网络被伪基站覆盖怎么办 骨头渣子卡嗓子里怎么办 执法仪记录仪关不了机怎么办 执法记录仪开不了机怎么办 华为警务通丢了怎么办 华德安执法记录仪死机怎么办 行车仪内存满了怎么办 海康威视摄像头没有通道怎么办 电脑屏膜变大了怎么办 手机2g模块坏了怎么办 腾讯大王卡是2g怎么办 华为手机4g坏了怎么办 优盘中毒打不开怎么办 vr头戴链接不起怎么办 人在缺氧的时候怎么办 脑缺氧供血不足怎么办