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. 搜索应用参考示例XXL-SEARCH

    <搜索应用参考示例XXL-SEARCH> 一.简介 1.1 概述 XXL-SEARCH 是以 "lucene/elasticsearch" 为核心的,Pragmatic ...

  2. .NET Core使用微软官方类库实现汉字转拼音

    一.NuGet包 拼音:Install-Package SimplifiedChinesePinYinConversion 简体-繁体互转:Install-Package TraditionalChi ...

  3. 言简意赅的TIME_WAIT

    为什么要有TIME_WAIT? 主动关闭端发送完ACK后等2MSL(最长分节生命期),防止对端没有收到ACK这种情况,重发. 官方点,再官方点...... (1) 可靠地实现TCP全双工连接的终止: ...

  4. Linux kernel的中断子系统之(七):GIC代码分析

    返回目录:<ARM-Linux中断系统>. 总结: 原文地址:<linux kernel的中断子系统之(七):GIC代码分析> 参考代码:http://elixir.free- ...

  5. [爬虫]scrapy框架

    Scrapy介绍 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. 所谓网络爬虫,就是一个在网上到处或定向抓取数据 ...

  6. (二)Maven的安装与环境配置

    主要内容 在Windows上安装Maven 安装目录分析 在Windows上安装Maven 本机环境:Windows10,JDK9.0.4. 想要安装Maven,需要下载Maven的zip文件,并将其 ...

  7. 如何在markdown中打出上标、下标和一些特殊符号

    转自:https://www.jianshu.com/p/80ac23666a98 如何在markdown中打出上标.下标和一些特殊符号 这是朕的江山 关注 2016.08.16 17:07* 字数 ...

  8. xp开机黑屏故障分析

    今天装完xp系统之后,重启开机发现竟然黑屏了,查资料发现有很多用户在修改分辨率后,因显示器不支持修改后的分辨率,会出现电脑黑屏的情况.分辨率调高了,超出了屏幕的范围,肯定会黑屏,而且这个问题还挺麻烦, ...

  9. 电脑开机失败提示"用户配置文件服务登录失败"的三种解决办法

    最近遇到这样一个怪现象,就是每次打开电脑输入密码,突然提示"User Profile Service 服务未能登录,无法加载用户配置文件",然后就没办法正常开机了,为什么会这样呢? ...

  10. BZOJ_1834_[ZJOI2010]network 网络扩容_费用流

    BZOJ_1834_[ZJOI2010]network 网络扩容_费用流 题意: 给定一张有向图,每条边都有一个容量C和一个扩容费用W.这里扩容费用是指将容量扩大1所需的费用. 求:  1.在不扩容的 ...