SpringBoot自学笔记(四)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: SpringBoot自学笔记(四) 特此声明:本自学笔记,主要是参照《从零开始学Spring Boot》(作者: 林祥纤)一书,并对部分例子进行了改动,便于理解,非盈利为目的,仅供学习交流,如有侵权,立即撤下!  历史笔记链接:《SpringBoot自学笔记(一)》   历史笔记链接:《SpringBoot自学笔记(二)》   历史笔记链接:《SpringB

SpringBoot自学笔记(四)

特此声明:本自学笔记,主要是参照《从零开始学Spring Boot》(作者: 林祥纤)一书,并对部分例子进行了改动,便于理解,非盈利为目的,仅供学习交流,如有侵权,立即撤下!

 历史笔记链接:SpringBoot自学笔记(一) 

 历史笔记链接:SpringBoot自学笔记(二) 

 历史笔记链接:SpringBoot自学笔记(三) 

(七)Srping Boot——使用JdbcTemplate及修改SpringBoot默认配置

1.博主以“spring-boot-database”Maven工程为例。

2.修改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/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>yan.li</groupId>

<artifactId>spring-boot-database</artifactId>

<version>0.0.1-SNAPSHOT</version>

  <!-- 引入spring-boot-start-parent 依赖管理,引入以后在申明其它dependency的时候就不需要version-->

<parent>

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

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

<version>1.3.3.RELEASE</version>

</parent>

<dependencies>

<!-- 引入spring-boot-starter-web 包含了spring webmvctomcatweb开发的特性 -->

<dependency>

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

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

</dependency>

<!-- 引入fastjson -->

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>fastjson</artifactId>

<version>1.2.7</version>

</dependency>

<!-- 引入mysql -->

<dependency>

<groupId>mysql</groupId>

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

</dependency>

<!-- 引入JPA规范 -->

<dependency>

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

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

</dependency>

</dependencies>

<!-- 如果我们要直接Main启动spring,那么以下plugin必须要添加,否则是无法启动的。如果使用maven 的spring-boot:run的话是不需要此配置的 -->

<build>

<plugins>

<plugin>

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

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

</plugin>

<dependencies>

<!--springloaded hot deploy 热部署-->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>springloaded</artifactId>

<version>1.2.4.RELEASE</version>

</dependency>

</dependencies>

<executions>

<execution>

<goals>

<goal>repackage</goal>

</goals>

<configuration>

<classifier>exec</classifier>

</configuration>

</execution>

</executions>

<!-- 配置JDK1.8 -->

<plugin>

<artifactId>maven-compiler-plugin</artifactId>

<configuration>

<source>1.8</source>

<target>1.8</target>

</configuration>

</plugin>

</plugins>

</build>

</project>

3.在src/main/resources目录下修改application.properties配置文件(配置端口为80,修改默认拦截“/spring-boot”)

########################################################

###datasource

########################################################

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

spring.datasource.username = root

spring.datasource.password = root

spring.datasource.driverClassName = com.mysql.jdbc.Driver

spring.datasource.max-active=20

spring.datasource.max-idle=8

spring.datasource.min-idle=8

spring.datasource.initial-size=10

########################################################

### Java Persistence Api

########################################################

# Specify the DBMS

spring.jpa.database = MYSQL

# Show or not log for each sql query

spring.jpa.show-sql = true

# Hibernate ddl auto (create, create-drop, update)

spring.jpa.hibernate.ddl-auto = update

# Naming strategy

spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy

# stripped before adding them to the entity manager)

spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

########################################################

###EMBEDDED SERVER CONFIGURATION (ServerProperties)

########################################################

server.port=80

server.context-path=/spring-boot

4.yan.li.dao包下,创建DemoDao.java:

package yan.li.dao;

import javax.annotation.Resource;

import org.springframework.jdbc.core.BeanPropertyRowMapper;

import org.springframework.jdbc.core.JdbcTemplate;

import org.springframework.jdbc.core.RowMapper;

import org.springframework.stereotype.Repository;

import yan.li.pojo.Student;

/**

 * 数据库操作类

 * @author Liyan

 * @date 20161129日 上午8:58:26

 */

@Repository

public class DemoDao {

@Resource

private JdbcTemplate jdbcTemplate;

/**

 * 通过id获取Student对象

 */

public Student getById(Long Id){

String sql = "select * from Student where id = ?";

RowMapper<Student> rowMapper = new BeanPropertyRowMapper<Student>(Student.class);

return jdbcTemplate.queryForObject(sql, rowMapper ,Id);

}

}

5.yan.li.service包下,修改DemoService.java:

package yan.li.service;

import javax.annotation.Resource;

import javax.transaction.Transactional;

import org.springframework.stereotype.Service;

import yan.li.dao.DemoDao;

import yan.li.dao.DemoRepositor;

import yan.li.pojo.Student;

/**

 * service

 * @author Liyan

 * @date 20161124日 下午5:59:25

 */

@Service

public class DemoService {

@Resource

private DemoRepositor repositor;

@Transactional

/**

 * 使用Repository接口

 * @author Liyan

 */

public void save(Student student) {

repositor.save(student);

}

 

@Resource

private DemoDao dao;

/**

 * 使用JdbcTemplate

 * @author Liyan

 */

public Student getById(Long Id){

//demoRepository.findOne(id); //demoRepository可以直接使用findOne进行获取.

return dao.getById(Id); //使用jdbcTemplate

}

}

6.yan.li.controller包下,修改DemoController.java:

package yan.li.controller;

import javax.annotation.Resource;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import yan.li.pojo.Student;

import yan.li.service.DemoService;

 

@RestController

@RequestMapping("/demo")

public class DemoController {

@Resource

private DemoService service;

/**

 * 使用Repository接口,保存对象

 * @author Liyan

 */

@RequestMapping("/save")

public String save() {

Student student = new Student();

student.setName("Tom");

service.save(student);

return "成功保存:"+student.toString();

}

/**

 * 使用JdbcTemplate,通过Id获取对象

 * @author Liyan

 */

@RequestMapping("/getById")

public Student getById(Long id){

return service.getById(id);

}

}

 

7.MainApp 启动类上右键Run As → Java Application启动(或是使用Maven的spring-boot:run)浏览器访问http://localhost/spring-boot/demo/getById?id=1,即可看到如下信息:

{"id":1,"name":"Tom"}

 

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
Java 关系型数据库 MySQL
SpringBoot自学笔记(三)
SpringBoot自学笔记(三) 特此声明:本自学笔记,主要是参照《从零开始学Spring Boot》(作者: 林祥纤)一书,并对部分例子进行了改动,便于理解,非盈利为目的,仅供学习交流,如有侵权,立即撤下!  历史笔记链接:《SpringBoot自学笔记(一)》   历史笔记链接:《SpringBoot自学笔记(二)》  (六)Srping Boot——整合Mysql及Hi
2031 0
|
Web App开发 Java Apache
SpringBoot自学笔记(二)
SpringBoot自学笔记(二)     特此声明:本自学笔记,主要是参照《从零开始学Spring Boot》(作者: 林祥纤)一书,并对部分例子进行了改动,便于理解,非盈利为目的,仅供学习交流,如有侵权,立即撤下!        历史笔记链接:《SpringBoot自学笔记(一)》  (四)Srping Boot——使用FastJson返回Json格式数据 1.仍以上一节的“s
1872 0
|
Java Apache Maven
SpringBoot自学笔记(一)
SpringBoot自学笔记(一)        特此声明:本自学笔记,主要是参照《从零开始学Spring Boot》(作者: 林祥纤)一书,并对部分例子进行了改动,便于理解,非以盈利为目的,仅供学习交流,如有侵权,立即撤下! (一)Srping Boot——入门程序HelloWord 1.使用Eclispe创建一个Maven工程(jar)。这里以“spring-boot-hel
1919 0
|
23天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的服装商城管理系统
基于Java+Springboot+Vue开发的服装商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的服装商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
64 2
基于Java+Springboot+Vue开发的服装商城管理系统
|
23天前
|
前端开发 JavaScript Java
SpringBoot项目部署打包好的React、Vue项目刷新报错404
本文讨论了在SpringBoot项目中部署React或Vue打包好的前端项目时,刷新页面导致404错误的问题,并提供了两种解决方案:一是在SpringBoot启动类中配置错误页面重定向到index.html,二是将前端路由改为hash模式以避免刷新问题。
116 1
|
21天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的大学竞赛报名管理系统
基于Java+Springboot+Vue开发的大学竞赛报名管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的大学竞赛报名管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
57 3
基于Java+Springboot+Vue开发的大学竞赛报名管理系统
|
22天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的蛋糕商城管理系统
基于Java+Springboot+Vue开发的蛋糕商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的蛋糕商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
58 3
基于Java+Springboot+Vue开发的蛋糕商城管理系统
|
22天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的美容预约管理系统
基于Java+Springboot+Vue开发的美容预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的美容预约管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
33 3
基于Java+Springboot+Vue开发的美容预约管理系统
|
22天前
|
JavaScript Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
本文介绍了一个基于Spring Boot和Vue.js实现的在线考试系统。随着在线教育的发展,在线考试系统的重要性日益凸显。该系统不仅能提高教学效率,减轻教师负担,还为学生提供了灵活便捷的考试方式。技术栈包括Spring Boot、Vue.js、Element-UI等,支持多种角色登录,具备考试管理、题库管理、成绩查询等功能。系统采用前后端分离架构,具备高性能和扩展性,未来可进一步优化并引入AI技术提升智能化水平。
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
|
1天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用
【10月更文挑战第7天】本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,通过 Spring Initializr 创建 Spring Boot 项目并配置 Spring Security。接着,实现后端 API 以提供菜单数据。在前端部分,使用 Ant Design Pro Vue 脚手架创建项目,并配置动态路由和菜单。最后,启动前后端服务,实现高效、美观且功能强大的应用框架。
5 2