本次我们使用Spring Data Jpa 来操作数据库,这样省去了配置文件!
<!-- MySQL的java驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- druid数据源 -->
<dependency>
groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.26</version>
</dependency>
<!-- JPA -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>复制
spring:
profiles:
active: dev
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/yang
username: root
password: root
#jpa连接数据库
jpa:
hibernate:
ddl-auto: create
#create:自动创建表,如果有则删除--hibernate
#update:创建表,但不删除
#create-drop:应用停下来的时候把表删掉
#none:默认的什么都不做
#validate:验证类的结构和变得结构是否一致,不一致会报错
show-sql: true #创建sql复制
package cn.javaYH.girl.controller;
import java.util.List;
import javax.validation.Valid;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import cn.javaYH.girl.aspect.HttpAspect;
import cn.javaYH.girl.jpa.GirlRrepository;
import cn.javaYH.girl.pojo.Girl;
import cn.javaYH.girl.service.GirlService;
@RestController
@Configuration
public class GirlController {
@Autowired
private GirlRrepository girlRrepository;
@Autowired
private GirlService girlService;
Girl girl = new Girl();
/**利用spring的slf4j打印日志*/
private final static Logger logger =LoggerFactory.getLogger(HttpAspect.class);
/
/**
* 根据id更新数据信息
* @param id
* @param cupSize
* @param age
* @return
*/
@PutMapping(value="/girl/id")
public Girl girlUpata(@PathVariable("id") Integer id,
@RequestParam("cupSize") String cupSize,
@RequestParam("age") Integer age){
girl.setId(id);
girl.setCupSize(cupSize);
girl.setAge(age);
return girlRrepository.save(girl);
}
/**
* 根据id删除数据
* @param id
*/
@DeleteMapping(value="/girl/id")
public void girlDelete(@PathVariable("id") Integer id){
girlRrepository.delete(id);
}
/**
* 添加一条数据,并进行表单验证(年龄小于18岁的禁止入内)
* @param cupSize
* @param age
* @return
*/
@PostMapping(value="/girl")
public Girl girlAdd(@Valid Girl girl,BindingResult bindingResult){//把蛋哥属性环城对象,省去写多个参数
if(bindingResult.hasErrors()){
//打印错误信息
System.out.println(bindingResult.getFieldError().getDefaultMessage());
return null;
}
girl.setCupSize(girl.getCupSize());
girl.setAge(girl.getAge());
return girlRrepository.save(girl);
}
/**
* 查询列表所有
* @return
*/
@GetMapping(value="/girlList")
public List<Girl> girlList(){
//logger.info("girlList(++++)");
return girlRrepository.findAll();
}
}复制
特别强调,Hibernate完美的支持SpringDataJpa
package cn.javaYH.girl.jpa;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import cn.javaYH.girl.pojo.Girl;
public interface GirlRrepository extends JpaRepository<Girl,Integer> {
这里无需写任何代码,hibernate实现5大接口
}复制
package cn.javaYH.girl.pojo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.validation.constraints.Min;
//@Entity 表示对应数据库的一个表
@Entity
public class Girl {
@Id
@GeneratedValue
private Integer id;
private String cupSize;
@Min(value = 18,message = "未成年人禁止入内")
private Integer age;
public Girl() {
super();
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getCupSize() {
return cupSize;
}
public void setCupSize(String cupSize) {
this.cupSize = cupSize;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}复制
数据库插入数据
页面查找效果
文章转载自Java有货,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【MySQL 30周年庆】MySQL 8.0 OCP考试限时免费!教你免费领考券
墨天轮小教习
2979次阅读
2025-04-25 18:53:11
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
严少安
852次阅读
2025-04-25 15:30:58
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
496次阅读
2025-04-17 17:02:24
MySQL 9.3 正式 GA,我却大失所望,新特性亮点与隐忧并存?
JiekeXu
436次阅读
2025-04-15 23:49:58
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
373次阅读
2025-04-15 14:48:05
MySQL 8.0 OCP 1Z0-908 考试解析指南(二)
JiekeXu
292次阅读
2025-04-30 17:37:37
记录MySQL数据库的一些奇怪的迁移需求!
陈举超
279次阅读
2025-04-15 15:27:53
SQL优化 - explain查看SQL执行计划(下)
金同学
274次阅读
2025-05-06 14:40:00
MySQL 8.0 OCP 1Z0-908 考试题解析指南
青年数据库学习互助会
257次阅读
2025-04-30 12:17:54
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
数据库运维之道
249次阅读
2025-04-28 11:01:25