目录
前提:
基本的java语法 基本的mysql语法 基本的mvc思想
1.搭建项目
springboot新建一个项目。File-->new-->Project-->Spring initializr
勾选需要导入的依赖
创建项目后等待依赖自动配置完成,如图所示
2.数据库配置
直接运行此项目会报错,运行点击播放按钮(快捷键shift+f10)
原因是你的数据库没有进行配置。打开数据库工具Navicat,可以新建一个数据库表User,如图所示
接下来进行数据库连接配置,找到resource底下的application.properties或者application.yml。一般的话,使用yml结构更加清晰。
右键----->Refactor----->Rename更改后缀名为yml
application.yml代码如下:注意格式,格式也会导致运行失败
server:
port:8014
spring:
#数据库连接配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/tfs?characterEncoding=utf8&useSSL=false&serverTimezone=UTC
username: root
password: root
#mybatis的相关配置
mybatis: //指定xml文件
#mapper配置文件
mapper-locations: classpath:mapper/*.xml
#type-aliases-package: com.
server port是端口号,datasource是数据库的配置,driver-class-name是数据库驱动,固定写法。url为你自己数据库的地址,localhost是数据库端口,tfs是我自己数据库的名称,后面的编码格式等等为固定写法。username是数据库的用户名,password为密码。
有时候我们会遇到端口占用问题,除了去任务管理器关闭指定端口,也可以换一个别的端口运行我们这个项目。(端口默认为8080)
修改端口
这个修改了有时会依然无效,如下方法可以解决。
右上角进入配置,在Environment variables中输入代码: –server.port=8022
成功在端口8022上运行
浏览器页面如图
3.建立项目
接下来在指定目录下新建一个controller的包
再在这个包下新建一个UserController
在里面写下如图代码
这里我们写了一个类,我们需要把return中的字段返回给前端,在浏览器中显示。这里是固定的写法,使用注解的方式@RestController。我们同时还要给前端一个请求接口的地址,使用@Requestmapping("/abc")
package com.demo1.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
@RequestMapping("/abc")
public String getName(){
return "小明";
}
}
运行项目,浏览器访问地址,如图:
继续。前后端项目中,我们需要的数据格式往往是json格式,这就需要我们用别的方式来解决,是的后端返回的数据为json格式。我们再新建一个对象Animal,再赋予其一些字段。
这时我们需要给已有的字段添加一些构造方法,快捷键alt+insert出现如图
选择第一个Constructor,回车 ,将这两个都选中(按住shift),选择ok。生成构造函数,然后还需要添加setter and getter方法(固定写法)。同样操作
package com.demo1.demo.controller;
public class Animal {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Animal(String name, int age) {
this.name = name;
this.age = age;
}
}
现在我们修改UserController的代码,因为返回值已经变成了Animal,不再是String了。return一个对象为Animal,设置name与age。
运行项目,访问浏览器地址如图
建立能与数据库进行交互的项目
接下来,我们要进行项目与数据库进行交互,能显示数据库中的数据内容。
Springboot简单步骤
1.建立实体类,跟数据库字段保持一致
2.建立mapper接口,定义要操作数据库的动作
3.建立mapper的xml文件,写具体的sql语句
4.建立service类,处理业务逻辑
5.在controller类中展示处理的结果
1.建立实体类,跟数据库字段保持一致
我们新建一个包entity,再包下新建一个类User,这个就是用户实体类。字段的类型需要和数据库中的保持一致。再进行构造函数,getter and setter。
package com.demo1.demo.entity;
import javax.naming.Name;
public class User {
private int id;
private String name;
private int age;
private String email;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public User(int id, String name, int age, String email) {
this.id = id;
this.name = name;
this.age = age;
this.email = email;
}
}
2.建立mapper接口,定义要操作数据库的动作
同样的新建一个包mapper,包下新建一个接口UserMapper(New-->Javaclass-->Interface)
我们给他一个方法List<User>findAll( ); User报红则需要导包,import class即可。
package com.demo1.demo.mapper;
import com.demo1.demo.entity.User;
import java.util.List;
public interface UserMapper {
List<User>findAll();
}
3.建立mapper的xml文件,写具体的sql语句
在resource下建一个文件夹mapper,该文件夹下新建一个File文件:UserMapper.xml
UserMapper.xml固定写法如下:namespace,resulType需要改成你自己的路径。
SELECT * FROM user 是SQL语句
<?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="com.demo1.demo.mapper.UserMapper">
<select id="findAll" resultType="com.demo1.demo.entity.User">
SELECT * FROM user
</select>
</mapper>
运行项目,项目运行成功,未报错。
4.建立service类,处理业务逻辑
Java有一个约定俗成,数据展示给前端需要做一些业务逻辑,需要对数据进行筛选操作。
还是新建一个包service,用来处理业务逻辑,对数据进行操作过滤检查等等。包下新建一个类UserService 代码如下
package com.demo1.demo.service;
import com.demo1.demo.entity.User;
import com.demo1.demo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public List<User>findAll(){
return userMapper.findAll();
}
}
这里UserMapper会报红
我们需要在前面写的接口上加一个@Mapper注解,加上后保存,就不报红了
5.在controller类中展示处理的结果
添加前端访问地址,@Autowired自动装配
运行项目,访问浏览器页面
注解相当于把实例加入了Spring容器当中,相当于new了对象。通过Autowired将其从容器中拿出来,实例化了对象来用。
一个简单的Springboot项目完成。