开发者学堂课程【Java Spring Boot 2.6.0开发实战-1024程序员节创造营公益课:搭建3层架构实战 MySQL(二)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/903/detail/14340
搭建3层架构实战 MySQL(二)
五,实操代码展示
1) 快速创建 springboot 项目的两种方式:
第一种,在浏览器中输入网址 start.spring.io 进入官网,勾选 Maven Project ,Language 栏选择 Java,最后选择好对应的版本,加入对应的依赖即可,点击 GENERATE CTRL 将项目打包好,导入对应的包即可使用。
第二种,点击 File,选择 New,勾选 SpringStarterProject,在弹窗内修改项目名称,在 Available 中搜索 Web,MySQL Driver 并加入对应的依赖,同时,勾选SpringBootDevTools,点击 Finish 即可完成项目的创建。
2) 项目代码展示:
启动器:
package com.alibaba;
import org.springframework.boot. CommandLineRunner;口
@SpringBootApplication
public class Application implements CommandLineRunnerr
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
@Override
public void run(String.. . argo) throws Exception {
// TODO Auto-generated method stub
system.out.println("阿里巴巴Java Spring Boot 2.5实战开发课程");
}
}
在 api 接口处创建一个 Usercontroller
在 dao 层下创建一个 UserDAO 和 UserRepository 类
在 services 层下创建一个 UserService、
创建一个 entity 包,在其包下创建一User 的实体类
进入数据库查看对应的字段
实体类 User 代码展示如下:
//两种方法生成 get set 方法
//使用快捷键一键生成
//加入 Lombok Config 依赖,再添加 @Data 注解
package com.alibaba.entity;
//@Data 使用该注解可以不用生成 get set 方法
public class User {
private Integer id;
private String name;
private String password;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setnNme(String username) {
his.username = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
在Application.properties下添加如下配置:
spring.application.name=SpringBoot260Demoserver.port=8088
spring.datasource.url=jdbc:mysql://localhost/alibaba?useSSL=false&serverTimez
o
spring.datasource.username=root
spring.datasource.password=1234qwer
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
UserRepository 类代码展示:
package com.alibaba.repository;
import java.util.List;口
public interface UsersRepository extends CrudRepository<Users,Integer> {
@Query( "select u from Users u where u.name =?1")
public List<Users> getUserByName(@Param( "name" )string name);
@Query("select u from Users u where u.name=?1 and u.password=?2")
public Users getUserByNameAndPassword(String name,String password);
@Query ( "select u from Users u where u.id =?1")
public Users getUserById(int id);
}
在 pom.xml 中添加以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
刷新一下 maven,更新 jar 包
UserController 代码展示如下:
package com.alibaba.api;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import com.alibaba.entity.Users;
import com.alibaba.repository.UsersRepository;
@RequestMapping("/getAll")
@RestController
public class UsersController {
@Autowired UsersRepository userReposity;
@RequestMapping("/getAll")public List<Users> getAll(){
return userReposity.getAl1();
}
}
启动项目查看是否报错
进入浏览器输入以下指令:
L
ocalhost:8
088
/
users/getAll
返回的结果为;
UserDAO 类的代码展示如下:
package com.alibaba.dao;
import java.util.List;
import com.alibaba.entity.Users;
i
mport com.alibaba.repository.UserRepository;
public class UsersDAO {
@
Autowired UserRepository userReposity;
public List<Users> getAll(String name) {
r
eturn userReposity.getUserByName(name);
}
}
进入 UserService 层更新代码:
Importorg.springframework.beans.factory.annotation.Autowired;
import com.alibaba.dao.UsersDAO;
import com.alibaba.entity.Users;
public class Userservice {
@Autowired UsersDAO userDAO;
public List<Users> getAl1(String name) {
return userDAO.getUserByName( name) ;
}
}
进入 UserController 层更新代码:
@RequestMapping(" /users")@RestController
public class UsersControllerr
@Autowired Userservice;
@RequestMapping( "/getAl1/{name}")
public List<Users> getAll(@Param( "name" ) string name) {
[ / String name ="java";
return userservice.getAl1( name) ;
}
}
进入 UserController 层更新代码;
@RequestMapping(" / users")@Restcontroller
public class UsersController {
@Autowired
UserService;
@RequestMapping("/getAll/{name}")
public List<Users> getAll(@Pathvariable("name") string name){
/ / String name ="java";
return userService.getAll(name);}}