Springboot实战教程

目录

第一章 springBoot概述... 2

href="https://zhuanlan.zhihu.com/write#_Toc508178432">一、Spring Boot是什么?... 2

href="https://zhuanlan.zhihu.com/write#_Toc508178433">二、Spring Boot的主要目标是:... 2

三、Spring Boot优点和缺点... 2

第二章spring boot 实现控器(springMvc+json)... 3

案例:用springboot实现一个springMvc控制器,并测试成功... 3

准备:... 3

一、创建工程... 3

二、配置pom.. 4

三、写主程序(com.jh.Test.java) 6

四、写控制器(UserController) 6

五、编写配置文件 src/main/resources/application.properties. 6

六、启动服务Test,测试... 7

七、代码工程:... 7

第三章、 springboot 使用jsp做视图... 7

案例:springboot实现控制器跳转到jsp(springMvc+普通跳转) 7

一、准备:... 7

二、编写 控制器... 10

三 、编写配置文件application.properties. 11

四、编写跳转页面... 11

五、测试... 12

六代码工程: proj/TestSpringbootWeb(2控制器实现跳转jsp页面) 13

第四章:springboot 使用jdbc访问数据库... 13

案例 spring boot用jdbc访问数据库... 13

一、 建立数据库... 13

二、准备(工程+pom.xml+主程序) 15

三、编写配置文件application.properties. 19

四、创建实体类... 19

五、服务层接口,服务层实现... 19

六、写控制层... 21

七、测试... 21

(1)直接测试... 21

(2) 用jsp测试... 21

八、代码工程:见/proj/ TestSpringbootWeb(4 jdbc访问mysql) 22

第五章、springboot 集成 mybatis. 22

案例5:spring boot 与mybatis集成... 22

一、准备... 22

二、创建用户接口UserDao(不是类)和对应的UserMapper.xml文件... 27

(1)接口... 27

(2)创建UserMapper.xml. 27

三、配置application.properties. 28

四 服务层接口和实现... 28

五、控制层... 29

六、测试... 29

七、代码工程:/proj/5 spring boot 集成mybatis. 30

第六章、springboot 事务控制... 30

案例:创建springboot 工程,实现对用户的添加(要求mybatis+spring+springMvc+事务控制) 30

一、准备... 30

二、编写 UserDao.java接口和UserMapper.xml 34

三、写UserService 接口和实现类... 35

四、写控制层... 36

五、测试... 36

六、代码工程:/proj/TestSpringbootWeb(6 事务控制) 37

第七章:总结:... 37

第一章 springBoot概述

一、Spring Boot是什么?

首先Spring Boot不是一个框架,它是一种用来轻松创建具有最小或零配置的独立应用程序的方式。这是方法用来开发基于Spring的应用,但只需非常少的配置。

它提供了默认的代码和注释配置,快速启动新的Spring项目而不需要太多时间。它利用现有的Spring项目以及第三方项目来开发生产就绪(投入生产)的应用程序。

二、Spring Boot的主要目标是:

Ø 为所有Spring开发提供一个基本的,更快,更广泛的入门体验。

Ø 开箱即用,但随着需求开始偏离默认值,快速启动。

Ø 提供大型项目(例如嵌入式服务器,安全性,度量,运行状况检查,外部化配置)常见的一系列非功能特性。

Ø 绝对没有代码生成以及不需要XML配置,完全避免XML配置。

Ø 为了避免定义更多的注释配置(它将一些现有的 Spring Framework 注释组合成一个简单的单一注释)

Ø 避免编写大量import语句。

Ø 提供一些默认值,以便在短时间内快速启动新项目。

三、Spring Boot优点和缺点

Spring Boot的优点:

使用Java或Groovy开发基于Spring的应用程序非常容易。

它减少了大量的开发时间并提高了生产力。

它避免了编写大量的样板代码,注释和XML配置。

Spring Boot应用程序与其Spring生态系统(如Spring JDBC,Spring ORM,Spring Data,Spring Security等)集成非常容易。

它遵循“自用默认配置”方法,以减少开发工作量。

它提供嵌入式HTTP服务器,如Tomcat,Jetty等,以开发和测试Web应用程序非常容易。

它提供CLI(命令行界面)工具从命令提示符,非常容易和快速地开发和测试Spring Boot(Java或Groovy)应用程序。

它提供了许多插件来开发和测试Spring启动应用程序非常容易使用构建工具,如Maven和Gradle。

它提供了许多插件,以便与嵌入式和内存数据库工作非常容易。

Spring Boot缺点 :

将现有或传统的Spring Framework项目转换为Spring Boot应用程序是一个非常困难和耗时的过程。它仅适用于全新Spring项目

第二章 spring boot

第二章springboot 实现控器(springMvc+json)

案例:用springboot实现一个springMvc控制器,并测试成功

准备:

maven+eclipse+连接互联网

一、创建工程

TestSpringCloudWeb工程

二、配置pom

<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/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>com.jh</groupId>

<artifactId>TestSpringCloudWeb</artifactId>

<packaging>war</packaging>

<version>0.0.1-SNAPSHOT</version>

<name>TestSpringCloud1 Maven Webapp</name>

<url>http://maven.apache.org</url>

<!--父 -->

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>1.4.3.RELEASE</version>

<relativePath />

</parent>

<dependencies>

<!-- junit -->

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.12</version>

<scope>test</scope>

</dependency>

<!-- 1 jsp servlet jstl -->

<dependency>

<groupId>javax.servlet.jsp</groupId>

<artifactId>jsp-api</artifactId>

<version>2.1</version>

<scope>provided</scope>

</dependency>

<!-- servlet -->

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>javax.servlet-api</artifactId>

<version>3.1.0</version>

<scope>provided</scope>

</dependency>

<!-- jstl -->

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>jstl</artifactId>

<version>1.2</version>

</dependency>

<!--2 spring boot -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter</artifactId>

<version>1.4.3.RELEASE</version>

</dependency>

<!-- 3 spring boot Web -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

<version>1.4.3.RELEASE</version>

</dependency>

</dependencies>

<!--版本管理 -->

<dependencyManagement>

<dependencies>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-dependencies</artifactId>

<version>Dalston.SR3</version>

<type>pom</type>

<scope>import</scope>

</dependency>

</dependencies>

</dependencyManagement>

<build>

<finalName>TestSpringCloudWeb</finalName>

</build>

</project>

三、写主程序(com.jh.Test.java)

//spring boot 应用程序

@SpringBootApplication

public class Test {

public static void main(String[] args) {

//

SpringApplication.run(Test.class, args);

}

}

四、写控制器(UserController)

//控制器

@Controller

public class UserController {

//1映射

@RequestMapping("/getUserName")

public String getUserName()

{

//2跳转

return "succuss";

}

}

五、编写配置文件 src/main/resources/application.properties

#服务器端口

server.port=8081

#server.context-path=/test

六、启动服务Test,测试

http://localhost:8081/getUserName

结果 jwg

七、代码工程:

/proj/TestSpringbootWeb(1controller简单实用)

第三章、 springboot 使用jsp做视图

在 springboot 中实现控制器跳转到jsp网页与单纯的 springMvc有些不同

具体情况通过一个案例来演示

案例:springboot实现控制器跳转到jsp(springMvc+普通跳转)

一、准备:

1 创建工程;

2 、配置pom ;

<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/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>com.jh</groupId>

<artifactId>TestSpringCloudWeb</artifactId>

<packaging>war</packaging>

<version>0.0.1-SNAPSHOT</version>

<name>TestSpringCloud1 Maven Webapp</name>

<url>http://maven.apache.org</url>

<!--父 -->

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>1.4.3.RELEASE</version>

<relativePath />

</parent>

<dependencies>

<!-- junit -->

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.12</version>

<scope>test</scope>

</dependency>

<!-- 1 jsp servlet jstl -->

<!-- <dependency>

<groupId>javax.servlet.jsp</groupId>

<artifactId>jsp-api</artifactId>

<version>2.1</version>

<scope>provided</scope>

</dependency> -->

<dependency>

<groupId>javax.servlet.jsp</groupId>

<artifactId>jsp-api</artifactId>

<version>2.2</version>

<scope>provided</scope>

</dependency>

<!-- servlet -->

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>javax.servlet-api</artifactId>

<version>3.1.0</version>

<scope>provided</scope>

</dependency>

<!-- jstl -->

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>jstl</artifactId>

<version>1.2</version>

</dependency>

<!--2 spring boot -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter</artifactId>

<version>1.4.3.RELEASE</version>

</dependency>

<!-- 3 spring boot Web -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

<version>1.4.3.RELEASE</version>

</dependency>

<!--4 mybatis -->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis</artifactId>

<version>3.3.0</version>

</dependency>

<!-- 5 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>

<!-- <dependency>

<groupId>org.glassfish.web</groupId>

<artifactId>el-impl</artifactId>

<version>2.2</version>

</dependency> -->

</dependencies>

<!--版本管理 -->

<dependencyManagement>

<dependencies>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-dependencies</artifactId>

<version>Dalston.SR3</version>

<type>pom</type>

<scope>import</scope>

</dependency>

</dependencies>

</dependencyManagement>

<build>

<finalName>TestSpringCloudWeb</finalName>

</build>

</project>

3、写主要程序;

//spring boot 应用程序

@SpringBootApplication

public class Test {

public static void main(String[] args) {

//

SpringApplication.run(Test.class, args);

}

}

二、编写 控制器

//控制器

@Controller

public class CategoryController {

//1 映射

@RequestMapping("/getCategoryList")

public String getCategoryList(Model map) {

Category c1 = new Category();

c1.setId(1);

c1.setName("c语言");

Category c2 = new Category();

c2.setId(2);

c2.setName("java语言");

List<Category> list = new ArrayList<Category>();//列表

list.add(c1);

list.add(c2);

//2参数传递

map.addAttribute("categoryList",list);

//3跳转

return "success";

}

}

三 、编写配置文件application.properties

#服务器端口

server.port=8081

#server.context-path=/test

//关键

#jsp

# 配置jsp文件的位置,默认位置为:src/main/webapp

spring.mvc.view.prefix=/

# 配置jsp文件的后缀

spring.mvc.view.suffix=.jsp //关键点

四、编写跳转页面

Success.js

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8" isELIgnored="false"%>

<%@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>

<%@ page import="java.util.*,com.jh.entity.Category"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

<!-- jstl+el表达式 -->

<c:forEach items="${categoryList}" var="category">

${category.id} <br>

${category.name }<br>

${category.description} <br>

</c:forEach>

<%-- <%

//jsp形式显示,成功

List<Category> list=(List<Category>)request.getAttribute("categoryList");

out.println( list.size()+" "+list.get(0).getName());

%> --%>

</body>

</html>

五、测试

http://localhost:8081:/getCategoryList

v2-3c40829a650f96ab57be6975d78f8601_b.jpg

六代码工程: proj/TestSpringbootWeb(2控制器实现跳转jsp页面)

第四章:springboot 使用jdbc访问数据库

本章主要实现springBoot 中实现对mysql数据库的访问.通过一个实际案例说明.

案例 spring boot用jdbc访问数据库

一、 建立数据库

/*

SQLyog Ultimate v11.24 (32 bit)

MySQL - 5.6.26-log : Database - springboot

*********************************************************************

*/

/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;

/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;

/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;

/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

CREATE DATABASE /*!32312 IF NOT EXISTS*/`springboot` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `springboot`;

/*Table structure for table `artiche` */

DROP TABLE IF EXISTS `artiche`;

CREATE TABLE `artiche` (

`id` bigint(11) DEFAULT NULL,

`title` varchar(200) DEFAULT NULL,

`path` varchar(500) DEFAULT NULL COMMENT '文章存放路径',

`categoryId` bigint(11) DEFAULT NULL,

`createDate` datetime DEFAULT NULL,

`modifyDate` datetime DEFAULT NULL,

`userId` bigint(20) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

/*Data for the table `artiche` */

/*Table structure for table `category` */

DROP TABLE IF EXISTS `category`;

CREATE TABLE `category` (

`id` bigint(11) NOT NULL AUTO_INCREMENT,

`name` varchar(20) DEFAULT NULL,

`desc` varchar(500) DEFAULT NULL,

`parentId` bigint(11) DEFAULT NULL,

KEY `id` (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

/*Data for the table `category` */

insert into `category`(`id`,`name`,`desc`,`parentId`) values (1,'java基础','java基础',0),(2,'java Web','java Web',0),(3,'java 框架 ','java 框架 ',0);

/*Table structure for table `comment` */

DROP TABLE IF EXISTS `comment`;

CREATE TABLE `comment` (

`id` bigint(20) DEFAULT NULL,

`content` varchar(500) DEFAULT NULL,

`useId` bigint(20) DEFAULT NULL COMMENT '用户',

`articheId` bigint(20) DEFAULT NULL COMMENT '文章',

`createDate` bigint(20) DEFAULT NULL COMMENT '时间'

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

/*Data for the table `comment` */

/*Table structure for table `user` */

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (

`id` bigint(11) NOT NULL AUTO_INCREMENT,

`name` varchar(50) DEFAULT NULL,

`password` varchar(50) DEFAULT NULL,

`age` int(11) DEFAULT NULL,

`birthday` datetime DEFAULT NULL,

`createDate` datetime DEFAULT NULL,

KEY `id` (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

/*Data for the table `user` */

insert into `user`(`id`,`name`,`password`,`age`,`birthday`,`createDate`) values (1,'admin','admin',30,NULL,NULL),(2,'jwg1','jwg1',27,NULL,NULL),(3,'jwg2','jwg2',27,NULL,NULL);

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;

/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;

/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;

/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

二、准备(工程+pom.xml+主程序)

创建工程,

配置pom.xml

<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/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>com.jh</groupId>

<artifactId>TestSpringCloudWeb</artifactId>

<packaging>war</packaging>

<version>0.0.1-SNAPSHOT</version>

<name>TestSpringCloud1 Maven Webapp</name>

<url>http://maven.apache.org</url>

<!--父 -->

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>1.4.3.RELEASE</version>

<relativePath />

</parent>

<dependencies>

<!-- junit -->

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.12</version>

<scope>test</scope>

</dependency>

<!-- 1 jsp servlet jstl -->

<!-- <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId>

<version>2.1</version> <scope>provided</scope> </dependency> -->

<dependency>

<groupId>javax.servlet.jsp</groupId>

<artifactId>jsp-api</artifactId>

<version>2.2</version>

<scope>provided</scope>

</dependency>

<!-- servlet -->

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>javax.servlet-api</artifactId>

<version>3.1.0</version>

<scope>provided</scope>

</dependency>

<!-- jstl -->

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>jstl</artifactId>

<version>1.2</version>

</dependency>

<!--2 spring boot -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter</artifactId>

<version>1.4.3.RELEASE</version>

</dependency>

<!-- 3 spring boot Web -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

<version>1.4.3.RELEASE</version>

</dependency>

<!--4 mybatis -->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis</artifactId>

<version>3.3.0</version>

</dependency>

<!-- 5 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>

<!-- <dependency> <groupId>org.glassfish.web</groupId> <artifactId>el-impl</artifactId>

<version>2.2</version> </dependency> -->

<!-- 6 spring boot 开发模式 -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-devtools</artifactId>

<optional>true</optional> <!-- 表示依赖不会传递 -->

</dependency>

<!--7 spring boot 访问数据库 -->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

</dependency>

<!-- jdbc springjdbc springtx tomcat-jdbc -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-jdbc</artifactId>

</dependency>

</dependencies>

<!--版本管理 -->

<dependencyManagement>

<dependencies>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-dependencies</artifactId>

<version>Dalston.SR3</version>

<type>pom</type>

<scope>import</scope>

</dependency>

</dependencies>

</dependencyManagement>

<build>

<finalName>TestSpringCloudWeb</finalName>

<!-- -->

<plugins>

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

<configuration>

<fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->

</configuration>

</plugin>

</plugins>

</build>

</project>

编写主要程序

三、编写配置文件application.properties

#服务器端口

server.port=8081

#server.context-path=/test

#2 jsp跳转

# 配置jsp文件的位置,默认位置为:src/main/webapp

spring.mvc.view.prefix=/

# 配置jsp文件的后缀

spring.mvc.view.suffix=.jsp

#3 jdbc 访问数据库

spring.datasource.url=jdbc:mysql://localhost:3306/springboot

spring.datasource.username=root

spring.datasource.password=root

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

四、创建实体类

public class User {

private Long id;

private String name;

private String password;

private int age ;

private Date birthday;

private Date createDate; //创建日期

get set …略

}

五、服务层接口,服务层实现

(1)服务层接口

public interface UserService {

/**

* 获取用户列表

* @return

*/

public List<User> getUserList();

}

(2)实现接口

@Service

public class UserServiceImpl implements UserService {

// 直接注入使用

@Autowired

private JdbcTemplate jdbcTemplate;

@Override

public List<User> getUserList() {

// TODO Auto-generated method stub

String sql = "select * from user";

//返回列表 查询数据 并封装成对象列表

return (List<User>)jdbcTemplate.query(sql, new RowMapper<User>() {

@Override

public User mapRow(ResultSet rs, int arg1) throws SQLException {

// TODO Auto-generated method stub

//

User user = new User();

//获取数据填充

user.setId(rs.getLong("id"));

user.setName(rs.getString("name"));

user.setPassword(rs.getString("password"));

user.setAge(rs.getInt("age"));

user.setBirthday(rs.getDate("birthday"));

user.setCreateDate(rs.getDate("createDate"));

return user;

}

});

}

}

六、写控制层

@RestController

public class UserController {

@Autowired

private UserService userService;

@RequestMapping("/getUserList")

public List<User> getUserList()

{

//调用服务层获取数据

List<User> list=userService.getUserList();

return list;

}

}

七、测试

(1)直接测试

v2-3c40829a650f96ab57be6975d78f8601_b.jpg

(2) 用jsp测试

1 在工程webapp下创建testDb.js

写入下列 内容

<a href="/getUserList">测试获取数据库用户 表</a>

2 打开浏览器输入

http://localhost:8081/testDb.jsp

v2-3c40829a650f96ab57be6975d78f8601_b.jpg

点击看到效果

八、代码工程:见/proj/ TestSpringbootWeb(4 jdbc访问mysql)

第五章、springboot 集成 mybatis

Springboot 集成mybatis比较简单,但步骤繁多,具体情况通过一个案例解决。

案例5:spring boot 与mybatis集成

一、准备

创建工程

修改pom.xml

<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/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>com.jh</groupId>

<artifactId>TestSpringCloudWeb</artifactId>

<packaging>war</packaging>

<version>0.0.1-SNAPSHOT</version>

<name>TestSpringCloud1 Maven Webapp</name>

<url>http://maven.apache.org</url>

<!--父 -->

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>1.4.3.RELEASE</version>

<relativePath />

</parent>

<!--属性 -->

<properties>

<mybatis.version>3.4.2</mybatis.version>

</properties>

<dependencies>

<!-- junit -->

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.12</version>

<scope>test</scope>

</dependency>

<!-- 1 jsp servlet jstl -->

<!-- <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId>

<version>2.1</version> <scope>provided</scope> </dependency> -->

<dependency>

<groupId>javax.servlet.jsp</groupId>

<artifactId>jsp-api</artifactId>

<version>2.2</version>

<scope>provided</scope>

</dependency>

<!-- servlet -->

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>javax.servlet-api</artifactId>

<version>3.1.0</version>

<scope>provided</scope>

</dependency>

<!-- jstl -->

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>jstl</artifactId>

<version>1.2</version>

</dependency>

<!--2 spring boot -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter</artifactId>

<version>1.4.3.RELEASE</version>

</dependency>

<!-- 3 spring boot Web -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

<version>1.4.3.RELEASE</version>

</dependency>

<!--4 mybatis -->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis</artifactId>

<version>3.3.0</version>

</dependency>

<!-- 5 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>

<!-- <dependency> <groupId>org.glassfish.web</groupId> <artifactId>el-impl</artifactId>

<version>2.2</version> </dependency> -->

<!-- 6 spring boot 开发模式 -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-devtools</artifactId>

<optional>true</optional> <!-- 表示依赖不会传递 -->

</dependency>

<!--7 spring boot 访问数据库 -->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

</dependency>

<!-- jdbc springjdbc springtx tomcat-jdbc -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-jdbc</artifactId>

</dependency>

<!--mybatis spring boot mybatis -->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis</artifactId>

<version>3.4.2</version>

</dependency>

<dependency>

<groupId>org.mybatis.spring.boot</groupId>

<artifactId>mybatis-spring-boot-starter</artifactId>

<version>1.3.1</version>

</dependency>

<!-- 数据源 -->

<dependency>

<groupId>com.zaxxer</groupId>

<artifactId>HikariCP</artifactId>

<!-- 版本号可以不用指定,Spring Boot会选用合适的版本 -->

</dependency>

</dependencies>

<!--版本管理 -->

<dependencyManagement>

<dependencies>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-dependencies</artifactId>

<version>Dalston.SR3</version>

<type>pom</type>

<scope>import</scope>

</dependency>

</dependencies>

</dependencyManagement>

<build>

<finalName>TestSpringCloudWeb</finalName>

<!-- -->

<plugins>

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

<configuration>

<fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->

</configuration>

</plugin>

</plugins>

</build>

</project>

创建主程序

@SpringBootApplication

//扫描mapper

@MapperScan("com.jh.dao") //1关键,否则报错

public class Test {

public static void main(String[] args) {

SpringApplication.run(Test.class, args);

}

}

二、创建用户接口UserDao(不是类)和对应的UserMapper.xml文件

定义相关方法,注意方法名称要和Mapper.xml文件中的id一致,这样会自动对应上

(1)接口

public interface UserDao {

public List<User> getUserList();

}

(2)创建UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mapper PUBLIC "-//http://mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.jh.dao.UserDao">

<!-- 获取用户列表 -->

<select id="getUserList" resultType="User">

select * from user

</select>

</mapper>

三、配置application.properties

#3 jdbc 访问数据库

spring.datasource.url=jdbc:mysql://localhost:3306/springboot

spring.datasource.username=root

spring.datasource.password=root

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

#4 mybatis 扫描 mapper和 配置别名

#mybatis.config-location=classpath:mybatis-config.xml

mybatis.mapper-locations=classpath:com/jh/dao/*Mapper.xml

mybatis.type-aliases-package=com.jh.entity

四 服务层接口和实现

接口:

public interface UserService {

/**

* 获取用户列表

* @return

*/

public List<User> getUserList();

}

接口实现:

@Service

public class UserServiceImpl implements UserService {

@Autowired

private UserDao userDao;

@Override

public List<User> getUserList() {

// TODO Auto-generated method stub

return userDao.getUserList(); // 获取用户列表

}

}

五、控制层

@RestController

public class UserController {

@Autowired

private UserService userService;

@RequestMapping("/getUserList")

public List<User> getUserList()

{

//调用服务层获取数据

List<User> list=userService.getUserList();

return list;

}

}

六、测试

http://localhost:8081/getUserList

v2-3c40829a650f96ab57be6975d78f8601_b.jpg

七、代码工程:/proj/5 spring boot 集成mybatis

第六章、springboot 事务控制

配置步骤

1首先使用注解 @EnableTransactionManagement 开启事务支持后

2然后在访问数据库的Service方法上添加注解 @Transactional 便可。

具体情况通过一个案例解决.

案例:创建springboot 工程,实现对用户的添加(要求mybatis+spring+springMvc+事务控制)

一、准备

创建工程

配置pom.xml

<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/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>com.jh</groupId>

<artifactId>TestSpringCloudWeb</artifactId>

<packaging>war</packaging>

<version>0.0.1-SNAPSHOT</version>

<name>TestSpringCloud1 Maven Webapp</name>

<url>http://maven.apache.org</url>

<!--父 -->

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>1.4.3.RELEASE</version>

<relativePath />

</parent>

<!--属性 -->

<properties>

<mybatis.version>3.4.2</mybatis.version>

</properties>

<dependencies>

<!-- junit -->

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.12</version>

<scope>test</scope>

</dependency>

<!-- 1 jsp servlet jstl -->

<!-- <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId>

<version>2.1</version> <scope>provided</scope> </dependency> -->

<dependency>

<groupId>javax.servlet.jsp</groupId>

<artifactId>jsp-api</artifactId>

<version>2.2</version>

<scope>provided</scope>

</dependency>

<!-- servlet -->

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>javax.servlet-api</artifactId>

<version>3.1.0</version>

<scope>provided</scope>

</dependency>

<!-- jstl -->

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>jstl</artifactId>

<version>1.2</version>

</dependency>

<!--2 spring boot -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter</artifactId>

<version>1.4.3.RELEASE</version>

</dependency>

<!-- 3 spring boot Web -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

<version>1.4.3.RELEASE</version>

</dependency>

<!--4 mybatis -->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis</artifactId>

<version>3.3.0</version>

</dependency>

<!-- 5 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>

<!-- <dependency> <groupId>org.glassfish.web</groupId> <artifactId>el-impl</artifactId>

<version>2.2</version> </dependency> -->

<!-- 6 spring boot 开发模式 -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-devtools</artifactId>

<optional>true</optional> <!-- 表示依赖不会传递 -->

</dependency>

<!--7 spring boot 访问数据库 -->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

</dependency>

<!-- jdbc springjdbc springtx tomcat-jdbc -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-jdbc</artifactId>

</dependency>

<!--mybatis spring boot mybatis -->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis</artifactId>

<version>3.4.2</version>

</dependency>

<dependency>

<groupId>org.mybatis.spring.boot</groupId>

<artifactId>mybatis-spring-boot-starter</artifactId>

<version>1.3.1</version>

</dependency>

<!-- 数据源 -->

<dependency>

<groupId>com.zaxxer</groupId>

<artifactId>HikariCP</artifactId>

<!-- 版本号可以不用指定,Spring Boot会选用合适的版本 -->

</dependency>

</dependencies>

<!--版本管理 -->

<dependencyManagement>

<dependencies>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-dependencies</artifactId>

<version>Dalston.SR3</version>

<type>pom</type>

<scope>import</scope>

</dependency>

</dependencies>

</dependencyManagement>

<build>

<finalName>TestSpringCloudWeb</finalName>

<!-- -->

<plugins>

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

<configuration>

<fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->

</configuration>

</plugin>

</plugins>

</build>

</project>

写主程序

//spring boot 应用程序

@SpringBootApplication

//扫描mapper

@MapperScan("com.jh.dao")

@EnableTransactionManagement //开启事务管理器

public class Test {

public static void main(String[] args) {

SpringApplication.run(Test.class, args);

}

}

二、编写 UserDao.java接口和UserMapper.xml

1接口:

public interface UserDao {

public List<User> getUserList();

/**

* 增加用户

* @param user

*/

public int addUser(User user);

}

2 UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mapper PUBLIC "-//http://mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.jh.dao.UserDao">

<!-- 添加用户 -->

<insert id="addUser" parameterType="User">

insert into user(name,password,age,birthday,createDate)

values(#{name},#{password},#{age},#{birthday},#{createDate})

</insert>

</mapper>

三、写UserService 接口和实现类

@Service

public class UserServiceImpl implements UserService {

@Autowired

private UserDao userDao;

//添加事务

@Transactional

public int addUser(User user) {

userDao.addUser(user);

}

}

四、写控制层

/**

* 添加用户

*/

@RequestMapping("/addUser")

public int addUser()

{

User user=new User();

user.setName("jwg3");

user.setCreateDate(new Date());

userService.addUser(user); //添加用用户

}

五、测试

1 正常

v2-3c40829a650f96ab57be6975d78f8601_b.jpg

2 非正常 ,在服务层人为产生异常加上

// 添加事务

@Transactional

@Override

public int addUser(User user) {

// TODO Auto-generated method stub

int result;

result = userDao.addUser(user);

int i=3/0; //产生异常

return result;

}

测试:

v2-3c40829a650f96ab57be6975d78f8601_b.jpg

到数据库查看User 表

没有添加记录 ,说明成功

六、代码工程:/proj/TestSpringbootWeb(6 事务控制)

第七章:总结:

经过前面6章节的学习,基本能运用 spring 进行基于SSM的开发,由于时间有限,就写这里,但springboot 内容远不止这些,以后的内容需要大家自己去挖掘。

springboot springmvc mybatis_深圳嘉华学校之springboot实战教程相关推荐

  1. hadoop使用mapreduce统计词频_深圳嘉华学校之Hadoop简介(什么是Map-Reduce-Mapreduce-about云开发)...

    Hadoop简介 Hadoop就是一个实现了Google云计算系统的开源系统,包括并行计算模型Map/Reduce,分布式文件系统HDFS,以及分布式数据库Hbase,同时Hadoop的相关项目也很丰 ...

  2. 北大青鸟深圳嘉华学校分享Hibernate查询

    1.Hibernate查询方式 1.get|load(class,id):OID查询 2.HQL(Hibernate Query Lanage):HQL查询 3.QBC(Query By Criter ...

  3. 北大青鸟深圳嘉华学校分享Hibernate关联映射

    关联映射: 1.关于n:1 使用emp和dept进行举例 单项多对一: emp: entity:+private Dept dept: hbm.xml:+ dept无需修改 双向一对多:emp:ent ...

  4. SQL 登录注入脚本_深圳嘉华学校之SQL 注入

    SQL Server 2005 联机丛书 SQL Injection 是一种攻击方法,它可以将恶意代码插入到以后将传递给 SQL Server 供分析和执行的字符串中.任何构成 SQL 语句的过程都应 ...

  5. action请求_深圳嘉华学校之Action方法返回类型

    Action方法返回类型 . Action方法返回类型 . Void . 简单或复杂类型 . HttpResponseMessage . IHttpActionResult . 自定义返回类型 在前面 ...

  6. SpringBoot整合Shiro实现权限管理,经典实战教程

    String username = authenticationToken.getPrincipal().toString(); if(!username.equals("zhang&quo ...

  7. Java项目:嘟嘟图片展览馆管理系统(java+Springboot+SpringMVC+JPA+Jsp+maven+mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclisp ...

  8. springboot springmvc 抛出全局异常解决方法

    springboot springmvc 抛出全局异常解决方法 参考文章: (1)springboot springmvc 抛出全局异常解决方法 (2)https://www.cnblogs.com/ ...

  9. 【Java从0到架构师】SpringBoot - SpringMVC

    SpringBoot - SpringMVC SpringMVC 的配置 文件上传功能 文件下载 - 以附件形式下载 静态资源访问 静态资源访问 - 映射 静态资源访问 - webjars Java ...

最新文章

  1. snowflake算法 php,PHP实现Snowflake生成分布式唯一ID的方法示例
  2. java文件的相对路径_java中使用相对路径读取文件的写法总结 ,以及getResourceAsStream() (转)...
  3. 计算机二级web前端,web前端:原生js之Math对象
  4. 八城联动丨神策 2020 数据驱动用户大会「上海场」10 月 23 日如期而至!
  5. [转载]学习数据库分表和分库思想
  6. Wpf TextChanged事件导致死循环,事件触发循环问题
  7. 一张图解决Android Studio 项目运行按钮灰色
  8. 【渝粤题库】广东开放大学 跨文化商务沟通 形成性考核
  9. [vue] 请描述下vue的生命周期是什么?
  10. 2135亿!2018 双11阿里数据库技术战报新鲜出炉
  11. 让input标签的range属性显示数值
  12. JavaScript 条件语句和循环语句
  13. 淘宝分布式NOSQL框架:Tair
  14. Mapreduce的分区—Partitioner
  15. CISSP 认证的 12 部优秀 CISSP 书籍和学习指南+学习网站
  16. Word无法打开该文件,因为文件格式与文件扩展名不匹配。Microsoft Word无法从该位置打开扩展名为.asd的文件。请将此文件移动到原始.asd位置,然后重试。
  17. AUTOSAR架构软件结构简介
  18. 山西初中计算机,山西初中信息技术教学计划
  19. 【数据库原理及应用】——数据库设计(学习笔记)
  20. node.js使用手册_权威的Node.js手册

热门文章

  1. 图像处理五:python读取图片的几种方式
  2. 贺利坚老师汇编课程52笔记:汇编语言模块化程序设计
  3. 获取虚拟账号列表失败啥意思_「图」Windows 10 Build 18963发布:可显GPU温度 支持重命名虚拟桌面...
  4. Java入门第37课——猜字母游戏之设计数据结构
  5. Mysql中autocommit的用法
  6. 获取Oracle隐含參数信息
  7. MyEclipse Web 项目导入 Eclipse 中需要改的文件
  8. ASCII、Unicode、GBK和UTF-8字符编码的区别联系(转载)
  9. [转贴]SQL2005数据类型
  10. [转载] python strptime函数转时间数组_python—时间与时间戳之间的转换