SpringBoot 数据库相关操作

导入依赖

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

配置文件

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

ddl-auto:

  • create:创建一个表,若表已经存在,则先删除再创建一个
  • create-drop:项目结束运行时,表格就删除了
  • update:表格不会清空只是更新操作
  • validate:运行程序时,校验字段类型是否相同,不同会报错。

数据库连接

@Entity :每个持久化POJO类都是一个实体Bean,用于映射数据库表
@Table:声明此对象映射到数据库的数据表,该注释不是必须的,如果没有,系统会使用默认值(实体类的短名)
@Id:用于指定表的主键
@GeneratedValue:默认使用主键生成方式为自增,hibernate会自动生成一个名为HIBERNATE_SEQUENCE的序列
@Column:用来映射属性名和字段名,没有注解的时候,hibernate会自动根据属性名字生成数据表的字段名。如:name映射生成NAME,多字母属性如:userName会自动映射USER_NAME

Sprin-Data-Jpa

Jpa:(Java Persistence API) 定义了一系列对象持久化标准

如:设计一个RESTful API
在这里插入图片描述

// StudentRepository 命名规范 表+Repository
//<Student,Integer>  实体类,主键类型
public interface StudentRepository extends JpaRepository<Student,Integer> {
}
@RestController
public class StudentRepositoryTest {

    @Autowired
    private StudentRepository repository;
	
	//获取学生所有信息
    @GetMapping("/students")
    public List<Student> getAll(){
        return repository.findALL();
    }
    
    //创建一条学生信息
    @PostMapping("/students")
    public Student Create(@RequestParam("name") String name,@RequestParam("fee") String fee)){
	    Student student = new Student();
	    Student.setName("name");
	    Student.setFee("fee")
	    return  repository.save(student);
    }

	//通过id查询学生
	@GetMapping("/students/{id}")
	public Student findByid(@PathVariable("id") Integer id){
		return  repository.findByid(id).orElse(null); //若找到返回学生,没找到返回null
	}

	//通过id更新学生
	//require="false" 不是必须的
	@PutMapping("/students/{id}")
	public Student update(@PathVariable("id") Integer id,@RequestParam(value="name",require="false") String name,@RequestParam(value="fee",require="false") String fee){
		Optional<Student> optional = repository.findByid(id);
		Student student;
		
		if(optional.ifPresent()){  //若学生存在
			student = optional.get();
		}else{
			return null;
		}
		Student.setName("neme");
		Student.setFee("fee")

	    return  repository.save(student);
	}
}

数据库事务操作

在类上加入注解@Transactional即可实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值