Spring Boot学习笔记

必备条件:

JDK 环境必须是 1.8 及以上

Maven 管理工具 3.2.5 及以上

安装IDEA,并配置Tomcat8.5

使用 idea 快速搭建 Spring Boot步骤

1.新建 Spring Initializr 项目


2.选择默认的 url 点击【Next】,除非你需要自己定义


3.勾选上 Web 模板:

勾选必要的引用,勾选Web、MySql和jdbc

4.创建hellocontroller文件

package com.example.springbootdemo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String hello() {
        return "hello spring boot";
    }
}

5.修改application.properties文件

  • 如果不配置则遇到错误:无法配置DataSource:未指定'url'属性,也无法配置嵌入数据源。

  • 配置

#访问根路径
#应用名称
spring.application.name=springboot-demo
#访问端口号
server.port=8080
#编码格式
server.tomcat.uri-encoding=utf-8
#数据库相关配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://IP:3306/数据库名
spring.datasource.username=root
spring.datasource.password=admin
spring.datasource.max-idle=10
spring.datasource.max-wait=10000
spring.datasource.min-idle=5
spring.datasource.initial-size=5
#session生命周期
server.servlet.session.timeout=30m

6.完成项目生成后,需要一段时间下载Maven依赖,可以看到右下角进度条。耐心等完,避免不必要的错误。 

7.启动

SpringbootApplication 这个类中,然后右键点击运行。 可以看到我们的 Tomcat 运行在 8080 端口,我们来访问 “/hello” 地址试一下


项目结构:


初步完成,可运行,浏览器可见如下


访问mysql数据库

前面已经在application.properties中添加了数据库信息,只需要编写数据库访问类即可

使用JdbcTemplate访问数据库,验证数据库连接成功

获取基础的数据库信息

改一下HelloController,使其读取数据库中users表中第一行的username,并返回给浏览器

@Autowired
JdbcTemplate jdbcTemplate;
@RequestMapping(value="/hello", method= RequestMethod.GET)
public String index() {
    String sql = "select  username from users where id = ?";
    String value = (String) jdbcTemplate.queryForObject(
            sql, new Object[]{1}, String.class);

    return "Hello " + value;
}
//http://localhost:8080/getMapById?id=1
@RequestMapping(value = "/getMapById", method = RequestMethod.GET)
public Map<String, Object> getMapById(Integer id) {
    String sql = "SELECT * FROM users WHERE ID = ?";
    Map<String, Object> map = jdbcTemplate.queryForMap(sql, id);
    return map;
}

进一步可以返回Map<String, Object>,在浏览器得到的结果是json格式


如果想要返回类(其实也是json)

创建实体类

package com.example.springbootdemo.bean;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;

public class UserBean implements RowMapper<UserBean> {
  private int id;
  private String userName;
  @Override
  public String toString() {
    return " ID: " + this.getId() + " UserName: " + this.getUserName();
  }
  public UserBean() {
  }
  public int getId() {
    return id;
  }
  public void setId(int id) {
    this.id = id;
  }
  public String getUserName() {
    return userName;
  }
  public void setUserName(String user_name) {
    this.userName = user_name;
  }
  @Override
  public UserBean mapRow(ResultSet resultSet, int i) throws SQLException {
    UserBean user = new UserBean();
    user.setId(resultSet.getInt("id"));
    user.setUserName(resultSet.getString("username"));
    return user;
  }
}

Controller部分代码

//http://localhost:8080/getMapById?id=1
@RequestMapping(value = "/getUserById", method = RequestMethod.GET)
public UserBean getUserById(Integer id) {
    String sql = "SELECT * FROM users WHERE ID = ?";
    UserBean user= jdbcTemplate.queryForObject(sql,new UserBean(),new Object[]{id});
    return user;
}

最终浏览器结果


更好的方式

这样结构更合理

UserBean的代码:

package com.example.springbootdemo.bean;
import java.sql.ResultSet;
import java.sql.SQLException;

public class UserBean {
  private int id;
  private String userName;
  public UserBean() {
  }
  public int getId() {
    return id;
  }
  public void setId(int id) {
    this.id = id;
  }
  public String getUserName() {
    return userName;
  }
  public void setUserName(String user_name) {
    this.userName = user_name;
  }
}

Dao\UserRowMapper.java文件

package com.example.springbootdemo.dao;
import com.example.springbootdemo.bean.UserBean;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
public class UserRowMapper implements RowMapper<UserBean> {
    @Override
    public UserBean mapRow(ResultSet resultSet, int i) throws SQLException {
        UserBean user = new UserBean();
        user.setId(resultSet.getInt("id"));
        user.setUserName(resultSet.getString("username"));
        return user;
    }
}

Controller\HelloController.java文件

//http://localhost:8080/getMapById?id=1
@RequestMapping(value = "/getUserById", method = RequestMethod.GET)
public UserBean getUserById(Integer id) {
    String sql = "SELECT * FROM users WHERE ID = ?";
    UserBean user = jdbcTemplate.queryForObject(sql, new UserRowMapper(), new Object[]{id});
    return user;
}

码云仓库

posted @ 2020-08-15 07:58  shengguo  阅读(147)  评论(0编辑  收藏  举报