SpringBoot web项目中使用jpa操作mysql数据库

我们使用这篇文章所创建的项目:IDEA创建SpringBoot的WEB项目

本项目gitee:https://gitee.com/PingzZ/springboot-jpa

1.pom.xml中添加jpa和mysql依赖

然后idea右下角会有提示,点击Import Changes,如果本地Maven仓库没有这个依赖,会从远端的仓库下载下回来。

快捷复制: 

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-jpa</artifactId>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>

2. 配置数据库连接信息和创建所需的包、类、接口。

创建完成后目录结构如下(其实正常的项目还需要一个service包,不过目前不需要):

我们创建了一个User类,一个UserRepo接口,一个UserController类和在application.properties中添加数据库的连接信息:

User类:

@Entity
@Table(name = "user")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    protected Long id;

    private String name;

    private int age;

    //set和get。。。节省空间这里就不写了,自己记得添加上
}

UserRepo接口:

改接口只需要继承JpaRepository<T, ID>,这个接口需要传递两个泛型,第一个是实体类,第二个是实体类属性中注明了@Id的类型。

我们这里的实体类是User,而User属性id属性是Long类型,所以这里是JpaRepository<User,Long>,我们只需要继承JpaRepository<User,Long>接口,我们就已经可以对user表进行简单的CRUD了

public interface UserRepo extends JpaRepository<User,Long>{

}

UserController类:

@RestController
@RequestMapping("user")
public class UserConroller {

    @Autowired
    private UserRepo userRepo;

    //查找所有用户
    @RequestMapping(value = "list",method = RequestMethod.GET)
    public List<User> getUsers(){
        return userRepo.findAll();
    }

    //添加一个用户
    @RequestMapping(value = "add",method = RequestMethod.POST)
    public User saveUsers(User user){
        return userRepo.save(user);
    }

//    根据id查找一个用户
    @RequestMapping(value = "/{id}",method = RequestMethod.GET)
    public User getUser(@PathVariable("id") Long id){
        Optional<User> userOptional =userRepo.findById(id);
        return userOptional.get();
    }

    //更新一个用户信息,userRepo.save方法可以执行添加也可以执行更新,如果需要执行持久化的实体存在主键值则更新数据,如果不存在则添加数据。
    @RequestMapping(value = "modify",method = RequestMethod.PUT)
    public User updateUser(User user){
        return userRepo.save(user);
    }

    //根据id删除一个用户
    @RequestMapping(value = "/{id}",method = RequestMethod.DELETE)
    public void deleteUser(@PathVariable("id") Long id){
        userRepo.deleteById(id);
    }
}

application.properties配置文件添加信息: 

数据库名和账号密码根据你自己的情况改变。

#SpringBoot 2.1.3.RELEASE 需要以下配置控制台才会打印api,去掉'#'开启
#logging.level.org.springframework.web=trace

spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://localhost:3306/bootdemo?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.show-sql=true

因为我配置文件中使用的数据库是:bootdemo,所以需要提前创建好数据库,数据表不需要创建,会自动生成。 

3.启动项目,用Postman进行http测试 

①先添加几条数据

记得是POST请求,只需要name和age参数,id不用传,会自动生成,保存成功会返回创建成功的对象,返回对象包含了自动创建的id值

               

我一共创建了3条数据。

②查找所有用户,GET请求

③根据id查找一个用户,GET请求

④修改一个用户信息 。PUT请求

 

查询所有进行验证

⑤ 根据id删除一个用户,DELETE请求

查询所有进行验证,id为3的用户已删除。 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值