开发工具我们采用IntelliJ IDEA,环境安装不在叙述,如果对环境搭建不会的朋友,可以评论或私聊,本人后期在写一章环境搭建,MySQL安装的文章:
如上图所示 Group 修改为自己的报名,推荐为域名+项目名,比如** www.td0f7.cn.springboot01* * Artifact 为自己的项目名称,英文可以下划线比如spring_boot_demo type 为包管理方式,如果不了解这两种推荐用默认的方式即可,不用修改 Lauguage 为开发语言,默认为JAVA,可自行修改 Packaging 为打包方式,本人习惯用war所以选择war方式 Java Version 为开发语言的版本号,我本地java版本号是8,所以选择8
改动完成,点击 Next 出现第二个界面,在点击下一步
Project Name是项目名称,修改成自己的即可,默认是上个界面带过来的,不用修改 Project location 为项目存储路径修改为自己的存储路径即可 点击Firish,等待加载完成
如图所示 根目录下 pom.xml 是包管理,引入一些新的jar包都在这,修改springboot版本号,修改打包方式等等 src main java 是写代码的地方 SpringBootDemoApplication 是程序主入口 resources 存储一些资源 application.properties 是配置文件,配置端口号,mysql,redis等等都在这里 static 是静态资源,js css 图片等 templates 放html界面
由于新项目没有引入任何包,所以要引入数据库的包。 首先打开项目根目录的 pom.xml 在内容 dependencies 节点下添加
<dependencies>
<!--新添加的-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
<!--项目自带的-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-Tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
复制代码
lombok为实体类工具包,可以自动添加get set方法 mysql 是链接mysql数据库必须添加的包 org.mybatis.spring.boot 是mysql数据库的封装框架,更简易的操作数据库 gson 是对象转json字符串的工具类
spring.datasource.url=jdbc:mysql://mysqlip:端口/数据库名?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=true
spring.datasource.username=数据库账号
spring.datasource.password=数据库密码
复制代码
如
spring.datasource.url=jdbc:mysql://127.0.0.1/springboot?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=true
spring.datasource.username=springboot
spring.datasource.password=wangzhong
复制代码
CREATE TABLE `springboot`.`user` ( `id` INT NOT NULL AUTO_INCREMENT , `user` VARCHAR(30) NOT NULL , `pass` VARCHAR(30) NOT NULL , PRIMARY KEY (`id`), UNIQUE `u_user` (`user`) ENGINE = MEMORY;
复制代码
在mysql数据库执行这段mysql语句添加user表 id 主键自增 user 登录账号,不重复 pass 登陆密码
首先在 src main java 你的包 下 SpringBootDemoApplication 同级目录下创建 mapper controller entity 三个包 mapper 存储操作数据库的代码 controller 存储api的代码,前台调用的api都是这个下的 entity 存储数据库对应的实体类
import lombok.Data;
//@Data 注释会为我们自动给该实体类的属性添加 get set方法,必须引用了lombok包才可以使用
@Data
public class User {
private int id;
private String user;
private String pass;
}
复制代码
import org.Apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import www.td0f7.cn.springboot01.spring_boot_demo.entity.User;
//必须有这个注解,否则无法扫描到该mapper
@Mapper
public interface UserMapper {
/**
* @Select 代表查询语句
* #{user} 代表 取该方法中 user参数
* @返回值 登陆是查询,由于user登陆账号是唯一的,所有返回类型是一个User对象而不是集合
*/
@Select("select * from user where user = #{user} and pass = #{pass}")
User login(String user, String pass);
}
复制代码
import com.google.gson.Gson;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import www.td0f7.cn.springboot01.spring_boot_demo.entity.User;
import www.td0f7.cn.springboot01.spring_boot_demo.mapper.UserMapper;
@RestController//如果返回值为对象,则自动转换成json
//@RequestMapping("user"),此注释代表这个controller需要+user才可以访问,如下
//我们启动的网站都是http://localhost:8080,要访问这个controller则是http://localhost:8080/user
@RequestMapping("user")
public class UserController {
@Autowired(required = false)//自动扫描mapper文件
private UserMapper mapper;
/**
* 该接口为post方式
*
* @param user 参数user默认值为空,不写defaultValue为null
* @param pass
* @return
*/
@PostMapping("login")
public String login(@RequestParam(value = "user", defaultValue = "") String user,
@RequestParam(value = "pass", defaultValue = "") String pass) {
if (user.equals("")) return "账号必传";
if (pass.equals("")) return "密码必传";
User user1 = mapper.login(user, pass);
if (user1 == null) {//没有查询到数据,代表没有此账号
return "账号密码不正确!";
} else {
return new Gson().toJson(user1);//登陆成功则给对象转json字符串返回
}
}
}
复制代码
INSERT INTO `user`(`user`, `pass`) VALUES ('wz', '123456')
复制代码
以上添加了账号 wz 密码 123456 的数据
使用postman测试