SpringBoot基于Jpa操作Mysql,简单的增删改查

增加controller和restcontroller的区别:

https://mp.weixin.qq.com/s?src=11&timestamp=1568796617&ver=1859&signature=dr560SpPS6sRKE0pbJWUSOXsiiWkAQEgQiuPs7Y16L8tzx8nCfyjf4WlYRW1JcF8v1vDw3y88PwAqMXXxMfvGPHHl3taLwtH2sVCfOCg0f83bYXfdRzkXvbZ6GZNsy7L&new=1

简单来讲,
仅仅是@Controller 将会返回一个页面
仅仅@RestController 返回JSON 或 XML 形式数据
@Controller +@ResponseBody 返回JSON 或 XML 形式数据

  1. 首先在pom.xml里添加相关依赖

     <dependency>
         <groupId>mysql</groupId>
         <artifactId>mysql-connector-java</artifactId>
     </dependency>
    
     <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-data-jpa</artifactId>
     </dependency>
    
  2. 在application.yml里配置数据库(注意什么参数和什么参数是同级的还是分支的,新手容易错)

     spring:
     	profiles:
     		active: dev
     	
     	datasource:
     		driver-class-name: com.mysql.cj.jdbc.Driver
     		url: jdbc:mysql://localhost:3306/sss?serverTimezone=UTC&characterEncoding=utf-8
     		//sss为你的数据库名字
     		username: root
     		password: ******   //你的数据库密码
    
     	jpa:
     		hibernate:
     			ddl-auto: update (还有create方式) # 为update,否则每次启动都会重建表:
     		show-sql: true
    
  3. 创建实体类

     @Entity
     public class User {
     @Id
     @GeneratedValue
     private Integer id;
     private String name;
     private Integer age;
    
     public User() {
     }
    
     public User(Integer id,Integer age) {
     this.id = id;
     this.name = name;
     this.age = age;
     }
    
     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;
     }
    
     }
    
  4. 创建Repository, 传入User类 和 id的数据类型Integer:

      public interface DataRepository extends JpaRepository<User,Integer> {
     	//public List<User> findByAge(Integer age);
     	//什么都不写都行
     }
    

    此时运行程序,打开数据库观察,已经发现新建了一个叫 user 的表单。
    p.s. 博主有次做新项目时,一模一样写的出现了error creating bean with name ‘entityManagerFactory’ 的报错,解决方法:将maven中mysql-connector-java的版本指定为5.1.42.这个错误产生的原因是mysql默认的驱动版本太高,与hibernate版本不“兼容” 。5.1.42是我测试可以用的,其他高于此的版本不太清楚能不能用,小伙伴们可以试一试。

  5. 创建Controller

     @CrossOrigin(origins = "*", maxAge = 3600)  
     
     //@RestController只能返回对象,不能返回视图,如有其它应用请注意
     //@RestController
     
     @Controller
     public class UserController {
     @Autowired
     DataRepository dataRepository;
     
     @PostMapping (value = "/delete")    //删除(此方式为前端发来id:x,后端删除)
     @ResponseBody
     public void delete(@RequestParam("id") int id)
     {
    	 	User user=new User();
    	 	user.setId(id);
     		dataRepository.delete(user);
     		//dataRepository.deleteById(id);
     }
    
    
     @PostMapping (value = "/search")  //查询全部
     @ResponseBody
     public List<User>find()
      {
    		 User user=new User();
    		 return dataRepository.findAll();
      }
    
     @PostMapping (value = "/add")   //增
     @ResponseBody
     public User add(@RequestParam("age") int age,
                 @RequestParam("name") String name)
      {
     	User user=new User();
    	 	user.setAge(age);
     	user.setName(name);
     	return dataRepository.save(user);
      }
    
     	@PostMapping (value = "/edit")    //改
     	@ResponseBody
     	public User userupdate(@RequestParam("id") Integer id,
                        @RequestParam("name") String name,
                        @RequestParam("age") Integer age
     	)
     	{
     		User user=new User();
     		user.setId(id);
     		user.setName(name);
     		user.setAge(age);
     		return dataRepository.save(user);
     	}
     
     	@PostMapping (value = "/searchone")       //限定条件查询
     	@ResponseBody
     	public List<User> searchone(@RequestParam("age") Integer age)
     		{
     			return dataRepository.findByAge(age);
     		}
     }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值