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. php仿经典省市县三级联动

    之前有个需求要写个类似省市县三级联动的页面,于是,网上找了点资料看了下,其实原理很简单: 当我们选择一级栏目中某条记录的时候,会获取该栏目的vaule值,并发起ajax请求,后台根据这个vaule值, ...

  2. UE4中如何使物体始终朝向摄像头?

    要使物体始终正面朝向摄像头需要用到一个关键节点:Find Look at Rotation 其中Start连接需要旋转的物体位置矢量,Target连接摄像头位置矢量 最后设置SetActorRotat ...

  3. RabbitMQ 安装 Your installed version of Erlang (6.2) is too old. Please install a more recent version.

    windows安装RabbitMQ时在安装完Erlang语言开发包后,再安装RabbitMQ时报错: Your installed version of Erlang (6.2) is too old ...

  4. 学习ASP.NET Core Razor 编程系列九——增加查询功能

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...

  5. AVL Tree 操作

    1.AVL树是带有平衡条件的二叉查找树, 一棵AVL树是其每个节点的左子树和右子树的高度最多差1的二叉查找树. 2.AVL树的删除要比插入复杂.如果删除相对较少,那么用懒惰删除的方法是最好的策略. 3 ...

  6. Django rest framework(6)----序列化

    目录 Django rest framework(1)----认证 Django rest framework(2)----权限 Django rest framework(3)----节流 Djan ...

  7. XShell上传文件到Linux服务器上

    在学习Linux过程中,我们常常需要将本地文件上传到Linux主机上,这里简单记录下使用Xsheel工具进行文件传输 1:首先连接上一台Linux主机 2:输入rz命令,看是否已经安装了lrzsz,如 ...

  8. 5月第2周业务风控关注 | 央行:严禁未经授权认可的APP接入征信系统

    本文由  网易云发布. 易盾业务风控周报每周呈报值得关注的安全技术和事件,包括但不限于内容安全.移动安全.业务安全和网络安全,帮助企业提高警惕,规避这些似小实大.影响业务健康发展的安全风险. 1.央行 ...

  9. 夜神模拟器链接Android studoid

    在cmd 窗口输入:adb.exe connect 127.0.0.1:62001然后as就自动匹配了夜神经常忘记,特此提醒

  10. Spring源码阅读笔记

    前言 作为一个Java开发者,工作了几年后,越发觉力有点不从心了,技术的世界实在是太过于辽阔了,接触的东西越多,越感到前所未有的恐慌. 每天捣鼓这个捣鼓那个,结果回过头来,才发现这个也不通,那个也不精 ...