自学java,第一次创建spring boot工程,写了一个简单的增删改查。。。
1. 新建project
新建project可参考此文章:SpringBoot工程创建
2. 本地搭建数据库环境
本地搭建mysql数据库,可参考此64位win10系统安装mysql教程
3. 在mysql新建数据库
(1)用navcat工具连接上本地数据库,然后如图,右键新建数据库,命名为student,字符集和排序规则默认选择图中这两个。
(2)新建数据表
按下保存之后弹出小窗填写数据表名称。(后续在项目中添加entity时候,需要跟此处表名称保持一致)
(3)方便测试查询接口,可以现在数据库手动添加一条数据,如图:
4. 新建实体类
数据库准备完成之后,回到我们新建的project,先完成三件事:
(1)新建四个package,分别为controller,service,dao,entity。 (2)将原本的application.properties文件改为application.yml,存放相关配置信息。
具体内容如下:
server:
port:8080
servlet.context-path:/nly
spring:
datasource:
type:com.alibaba.druid.pool.DruidDataSource
driver-class-name:com.mysql.cj.jdbc.Driver
url:jdbc:mysql://127.0.0.1:3306/student?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username:root
password:sagis
initialSize:20
minIdle:50
maxActive:500
jpa:
show-sql: true
properties:
hibernate:
format_sql: true
(3)在pom文件中配置druid数据库连接池,引入相关依赖。
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
5. 新建entity
在上面新建的entity文件夹下新建一个class,名称需要跟数据库表名保持一致,首字母大写。我的数据表名称是user,所以此处新建一个User类。(先上代码~~~~)具体内容如下:
package com.nly.test.entity;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "User")
public class User {
@Id
private Integer id;
private String name;
private Integer age;
private Integer sex;
private String tel;
private String email;
private String remark;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Integer getSex() {
return sex;
}
public void setSex(Integer sex) {
this.sex = sex;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getRemark() {
return remark;
}
@Override
public String toString() {
return "UserDao{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", sex=" + sex +
", tel='" + tel + '\'' +
", email='" + email + '\'' +
", remark='" + remark + '\'' +
'}';
}
public void setRemark(String remark) {
this.remark = remark;
}
}
6. 新建dao class
在我们新建的dao文件夹下面新建一个class,命名一般是entity的名称加dao,如UserDao.class
package com.nly.test.dao;
import com.nly.test.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserDao extends JpaRepository<User,Integer> {
}
新建的UserDao.class,将class改为interface,并且添加extends JpaRepository
7. 新建service
在service文件下面新建UserService.class,提供接口,并且在service问价下面新建一个impl package,然后在impl下新建UserServiceImpl.class用来实现接口。结构如图:
UserService.class
##需要把class改为interface
package com.nly.test.service;
import com.nly.test.entity.User;
public interface UserService {
User getById(Integer id);//根据id查询
User addUser(User user);//添加用户
User updateUser(User user);//修改用户
void deleteUser(int id);//删除用户
}
UserServiceImpl.class
package com.nly.test.service.impl;
import com.nly.test.dao.UserDao;
import com.nly.test.entity.User;
import com.nly.test.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public User getById(Integer id){
return userDao.getOne(id);
}
@Override
public User addUser(User user){
return userDao.save(user);
}
@Override
public User updateUser(User user){
return userDao.save(user);
}
@Override
public void deleteUser(int id) {
userDao.deleteById(id);
}
}
@Autowired自动为属性赋值,自动注入
package com.nly.test.controller;
import com.nly.test.entity.User;
import com.nly.test.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/test")//公用接口,访问时候需要先加上
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/hello")//测试,试试项目能否成功运行并访问
//私有接口,访问时候需要先加上公共再加私有
public String hello(){
return "hello world";
}
@RequestMapping("/getById")//查询
public String getById(Integer id){
User user = userService.getById(id);
return user.toString();
}
@ResponseBody
@RequestMapping(value="/add",method = RequestMethod.POST)
//添加
public String add(@RequestBody User user){
User newuser = userService.addUser(user);
user.setId(newuser.getId());
return newuser.toString();
}
@ResponseBody
@RequestMapping(value="update",method = RequestMethod.POST)
//修改
public String update(@RequestBody User user){
User newuser = userService.updateUser(user);
user.setId(newuser.getId());
return newuser.toString();
}
@RequestMapping(value="/delete/{id}",method = RequestMethod.GET)
//删除
public String delete(@PathVariable int id){
userService.deleteUser(id);
return "sucesss";
}
}
8. 运行项目
这两种方式都可以
控制台出现这个即为运行成功,接下来便可在浏览器访问
9. 测试效果
这里需要注意的是因为在application.yml文件中配置了servlet.context-path,所以访问路径需要加上这个,然后再加公共路径再加私有路径,再加其他参数
(1)hello测试
(2)查询
这里查询到的是事先在数据库添加的一条数据
(3)添加
添加是post请求,所以可以在postman或者其他工具中测试,添加成功后可以去数据库验证是否添加了数据
刷新数据表即可发现刚刚添加的数据
(4)修改
将id为2的用户的name,age和sex做一个修改
数据库查看数据验证:
(5)删除
将需要删除的用户id直接接跟随在url后面
删除成功后数据库验证
以上就是全部的内容,基础的增删改查,批量或者更多功能还需进一步努力~~~~加油!!!