SpringBoot是一种用来简化新Spring应用初始搭建及开发过程的框架,它使用特定方式来进行配置,使得开发人员不再需要定义样板化的配置。MyBatis是一个支持普通SQL查询、存储和高级映射的持久层框架,它消除了几乎所有的JDBC代码和参数的手工配置以及对结果集的检索封装,可以使用简单的XML或注解用于配置和原始映射,将接口和Java的对象映射成数据库中的记录。

  最近的项目有相关需求,集成SpringBoot和MyBatis框架后,进行Mysql数据库的数据访问,实现功能后总结于此博客,方便以后查看。

  首先下载一个SpringBoot的demo程序,然后在它上面集成,访问:demo下载,如下图所示,勾选Web选项后点击Generate Project即可下载工程。

  打开demo后可以更改项目名称,设置目录为如下图形式,其中需要的jar包自行下载,

  然后对每一个文件进行编辑,示例中有Disaster和Economic两部分内容,仅介绍Disaster部分原理即可。

  先构建Disaster类,根据Mysql中表的数据情况建立对象,Disaster.java代码如下:

 package smm.springboot.bean;

 public class Disaster {
private int id;
private String deathtoll;//死亡人数
private String injuriesnumber;//受伤人数
private String disappearancenumber;//失踪人数
private String total;//总人数
private String did;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getDeathtoll() {
return deathtoll;
}
public void setDeathtoll(String deathtoll) {
this.deathtoll = deathtoll;
}
public String getInjuriesnumber() {
return injuriesnumber;
}
public void setInjuriesnumber(String injuriesnumber) {
this.injuriesnumber = injuriesnumber;
}
public String getDisappearancenumber() {
return disappearancenumber;
}
public void setDisappearancenumber(String disappearancenumber) {
this.disappearancenumber = disappearancenumber;
}
public String getTotal() {
return total;
}
public void setTotal(String total) {
this.total = total;
}
public String getDid() {
return did;
}
public void setDid(String did) {
this.did = did;
}
}

  接下来是Mybatis的接口DisasterMapper.java,代码如下:

 package smm.springboot.mapper;
import org.apache.ibatis.annotations.Mapper; import smm.springboot.bean.Disaster; @Mapper
public interface DisasterMapper {
public void insert(Disaster disaster);//插入数据
public Disaster find(int id);//查找数据
}

  对应的mapper文件,DisasterMapper.xml,插入数据和查找数据的程序都是在这个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="smm.springboot.mapper.DisasterMapper">
<!-- insert disaster -->
<insert id="insert" parameterType="smm.springboot.bean.Disaster">
INSERT INTO d_disaster_overview(deathtoll,injuriesnumber,disappearancenumber,total,did) VALUE(#{deathtoll},#{injuriesnumber},#{disappearancenumber},#{total},#{did});
</insert> <!-- find disaster -->
<select id="find" parameterType="int" resultType="smm.springboot.bean.Disaster">
SELECT sum(deathtoll) as deathtoll,sum(injuriesnumber) as injuriesnumber,sum(disappearancenumber) as disappearancenumber, sum(total) as total FROM d_disaster_overview WHERE ID=#{id}
</select>
</mapper>

  然后是业务层的接口与实现类,DisasterIService.java的代码如下:

 package smm.springboot.service;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.DispatcherServlet; import smm.springboot.bean.Disaster; public interface DisasterIService{ public boolean insert(Disaster disaster);
public Disaster find(int id);
}

  DisasterService.java的代码如下:

 package smm.springboot.service.impl;

 import javax.annotation.Resource;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.stereotype.Service; import smm.springboot.bean.Disaster;
import smm.springboot.mapper.DisasterMapper;
import smm.springboot.service.DisasterIService; @ComponentScan({"smm.springboot.mapper"})
@Service("disasterService")
public class DisasterService implements DisasterIService{
@Resource
private DisasterMapper disasterMapper;
@Override
public boolean insert(Disaster disaster) { try {
disasterMapper.insert(disaster);
} catch (Exception e) {
//TODO Auto-generated catch block
return false;
}
return true;
}
@Override
public Disaster find(int id) {
return disasterMapper.find(id);
}
}

  接下来是比较重要的前端控制器AllController.java,它之中关于Disaster的部分代码如下:

 package com.example.demo;

 import javax.annotation.Resource;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.google.gson.JsonObject; import smm.springboot.bean.*;
import smm.springboot.service.impl.*; @Controller
@ComponentScan({"smm.springboot.service"})
@MapperScan({"smm.springboot.mapper"})
public class AllController { @Resource
private DisasterService disasterService;
//Disaster部分
@RequestMapping("/DisasterSaveresult")
@ResponseBody
public String helloD(Disaster disaster) {
boolean result=disasterService.insert(disaster);
JsonObject json=new JsonObject();
if(result){
json.addProperty("manager", "添加成功");
json.addProperty("result", "1");
}else{
json.addProperty("manager", "添加失败");
json.addProperty("result", "0");
}
return json.toString();
}
@RequestMapping("/DisasterFind")
@ResponseBody
public String sayD(int id){
Disaster d=disasterService.find(id);
JsonObject json=new JsonObject();
json.addProperty("deathtoll", d.getDeathtoll());
json.addProperty("injuriesnumber", d.getInjuriesnumber());
json.addProperty("disappearancenumber", d.getDisappearancenumber());
json.addProperty("total", d.getTotal());
return json.toString();
}
@RequestMapping("/DisasterSave")
public String jspD() {
return "DisasterIndex";
}
}

  还有ServletInitializer.java,其代码如下:

 package com.example.demo;

 import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;; public class ServletInitializer extends org.springframework.boot.web.servlet.support.SpringBootServletInitializer{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(this.getClass());
}
}

  还有SpringBoot的配置文件application.properties,内容如下:

server.context-path=/HelloWorld

spring.datasource.driver-class-name =com.mysql.jdbc.Driver
spring.datasource.url =jdbc:mysql://10.10.10.7:3306/mysql
spring.datasource.username =name
spring.datasource.password =password mybatis.typeAliasesPackage=smm.springboot.bean
mybatis.mapperLocations=classpath:mapper/*Mapper.xml spring.freemarker.template-loader-path=classpath:/templates/
spring.freemarker.cache=false
spring.freemarker.charset=UTF-8
spring.freemarker.check-template-location=true
spring.freemarker.content-type=text/html
spring.freemarker.expose-request-attributes=true
spring.freemarker.expose-session-attributes=true
spring.freemarker.request-context-attribute=request
spring.freemarker.suffix=.ftl spring.mvc.view.prefix = /WEB-INF/jsp/
spring.mvc.view.suffix = .jsp

  还有maven项目的配置文件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>disaster</groupId>
<artifactId>disaster</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging> <name>springbootone</name>
<url>http://maven.apache.org</url> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> <!-- 添加springboot继承 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.0.RELEASE</version>
</parent> <dependencies>
<!-- 添加springMVC支持 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- MySQL -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.19</version>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.1.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.7</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.6</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- tomcat支持 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<!-- jsp标签库 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.0</version>
</dependency>
</dependencies> <build>
<finalName>BOOT</finalName>
<plugins>
<!-- 引入java编译器插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<compilerVersion>1.8</compilerVersion>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- 资源文件拷贝插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>

  另外还配置了一个用来输入数据的页面DisasterIndex.jsp,目录如下图:

  内容代码如下:

 <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>输入灾害数据</title>
</head>
<body>
<h1>Please input disaster data!</h1>
<form action="DisasterSaveresult" name="form">
<p>
<table border="1">
<tr>
<td>死亡人数</td>
<td>受伤人数</td>
<td>失踪人数</td>
<td>总人数</td>
<td>Did</td>
</tr>
<tr>
<td><input name="deathtoll" type="text" /></td>
<td><input name="injuriesnumber" type="text" /></td>
<td><input name="disappearancenumber" type="text" /></td>
<td><input name="total" type="text" /></td>
<td><input name="did" value="1" type="text" /></td>
</tr>
</table>
</p>
<tr>
<td><input type="submit" value="确定" size="50" /></td>
<td><input type="reset" value="取消" size="50" /></td>
</tr>
</form>
</body>
</html>

  最后是程序启动类DemoApplication.java,内容如下:

 package com.example.demo;

 import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import java.net.*;
import java.util.ArrayList;
import java.util.List;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.FileNotFoundException;
import java.io.IOException; import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.codehaus.jettison.json.JSONObject; @SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}

  点击Run As Java Application后启动,可看到如下信息:

  在浏览器输入http://localhost:8080//DisasterSave,得到以下页面,便可在表格中输入数据并插入到Mysql数据库的表中。

  至此,整个工程已经完成!

SpringBoot框架与MyBatis集成,连接Mysql数据库的更多相关文章

  1. Mybatis学习---连接MySQL数据库

    [目录]

  2. 记录一次Spring boot 搭建框架连接Mysql数据库注解事务不回滚的故障

    搭建了一个新框架,使用了spring boot 替换以简化原来繁杂的spring配置,使用Spring注解管理事务,持久层使用mybatis. 连接mysql数据库完成项目的过程中发现不支持事务,因为 ...

  3. 如何用IDEA创建springboot(maven)并且整合mybatis连接mysql数据库和遇到的问题

    一.New->Project 二.点击next 三.在Group栏输入组织名,Artifact就是项目名.选择需要的java版本,点击next 四.添加需要的依赖 在这里我们也可以添加sql方面 ...

  4. 五、使用druid管理数据库,mybatis连接mysql数据库

    简介:    使用 mybatis 连接 mysql 数据库, 一套简单的增删改查流程, 前台用 bootstrap, bootstrap-table 框架, 最后用 druid 监控数据库连接情况 ...

  5. (45). Spring Boot MyBatis连接Mysql数据库【从零开始学Spring Boot】

    大家在开发的时候,会喜欢jdbcTemplate操作数据库,有喜欢JPA操作数据库的,有喜欢MyBatis操作数据库的,对于这些我个人觉得哪个使用顺手就使用哪个就好了,并没有一定要使用哪个,个人在实际 ...

  6. springboot通过ssh通道连接mysql数据库

    navicat可以通过ssh通道连接mysql数据库,那java中如何实现了,springboot又该怎样集成呢? 1.添加包 <dependency> <groupId>co ...

  7. SpringBoot 整合 hibernate 连接 Mysql 数据库

    前一篇搭建了一个简易的 SpringBoot Web 项目,最重要的一步连接数据库执行增删改查命令! 经过了一天的摸爬滚打,终于成功返回数据! 因为原来项目使用的 SpringMVC + Hibern ...

  8. mybatis连接mysql数据库实现的jdbc功能

    最近公司项目要使用myBatis,自己以前没有接触过,就在网上找到了一些资料研究了些.初步做出了基于myBatis连接mysql数据库的jdbc实现的功能. employee.java package ...

  9. SpringBoot配置JDBC连接MySql数据库的时候遇到了报错:HikariPool-1 - Exception during pool initialization

    使用SpringBoot做JAVA开发时,JDBC连接MySql数据库的时候遇到了报错: ERROR 10392 --- [ main] com.zaxxer.hikari.pool.HikariPo ...

随机推荐

  1. SOFA 源码分析 — 自动故障剔除

    前言 集群中通常一个服务有多个服务提供者.其中部分服务提供者可能由于网络,配置,长时间 fullgc ,线程池满,硬件故障等导致长连接还存活但是程序已经无法正常响应.单机故障剔除功能会将这部分异常的服 ...

  2. my views--软件工程、python

    这是大三第二学期开的一门课,由吴世枫老师和王韬助教教的. 大一开了C语言,大二开了java.matlab,而用得最多的应该是学java顺便学会的C++了.matlab在实训和数学建模用了多次,尤其是数 ...

  3. Java开源生鲜电商平台-购物车模块的设计与架构(源码可下载)

    ava开源生鲜电商平台-购物车模块的设计与架构(源码可下载) 说明:任何一个电商无论是B2C还是B2B都有一个购物车模块,其中最重要的原因就是客户需要的东西放在一起,形成一个购物清单,确认是否有问题, ...

  4. python 闯关之路三(面向对象与网络编程)

    1,简述socket 通信原理 如上图,socket通信建立在应用层与TCP/IP协议组通信(运输层)的中间软件抽象层,它是一组接口,在设计模式中,socket其实就是一个门面模式,它把复杂的TCP/ ...

  5. Python_字符串查找与分隔

    #字符串常用方法 s='apple,peach,banana,peach,pear' #返回第一次出现的位置 print(s.find('peach')) #指定位置开始查找 print(s.find ...

  6. js创建数组

    var a1 =  new Array(); var a2 =  new Array(7); var a3 =  new Array(100,"0",true); var a4 = ...

  7. Linux时间子系统之七:定时器的应用--msleep(),hrtimer_nanosleep()

    我们已经在前面几章介绍了低分辨率定时器和高精度定时器的实现原理,内核为了方便其它子系统,在时间子系统中提供了一些用于延时或调度的API,例如msleep,hrtimer_nanosleep等等,这些A ...

  8. Python报错:SyntaxError: Non-ASCII character '\xe5' in file 1.py on line 6, but no encoding declared...

    本文由荒原之梦原创,原文链接:http://zhaokaifeng.com/?p=686 具体报错内容: File "1.py", line 6 SyntaxError: Non- ...

  9. SpringBoot vue

    springboot 整合vue就行前后端完全分离,监听器,过滤器,拦截器 https://github.com/ninuxGithub/spring-boot-vue-separateA blog ...

  10. 微信H5中静默登录及非静默登录的正确使用姿势

    在微信中打开网页且需要调用微信登录接口时,微信官方给我们提供了两种登录调用方式:静默登录和非静默登录:但是官方文档中却没有说明在何种情况下使用静默登录,何种情况下使用非静默登录,所以在这里,我想将之前 ...