SpringBoot----[7]---Spring Boot JPA-Hibernate

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010996565/article/details/82562459

步骤

在pom.xml添加mysql,spring-data-jpa的依赖

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

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

在application.properties文件中配置mysql连接配置文件

########################################################
###datasource mysql 数据库配置
########################################################
spring.datasource.url = jdbc:mysql://localhost:3306/test
spring.datasource.username = root
spring.datasource.password = ok
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.max-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10

在application.properties中配置JPA的配置信息

########################################################
### Java Persistence Api Spring JPA 配置信息
########################################################
# Specify the DBMS
spring.jpa.database = MYSQL
# Show or not log for each sql query
spring.jpa.show-sql = true
# Hibernate ddl auto (create, create-drop, update)
spring.jpa.hibernate.ddl-auto = update
# Naming strategy
#[org.hibernate.cfg.ImprovedNamingStrategy  #org.hibernate.cfg.DefaultNamingStrategy]
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
# stripped before adding them to the entity manager)
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

测试

创建一个实体类

package com.cheny.spring_boot_hello.demo.bean;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

/**
 * 创建一个实体类
 * 如何持久化
 * 使用@entity尽心实体类的持久化操作, 当jpa检测到我们实体类中
 * 有@entity注解的时候,回在数据库中生成表结构
 * 
 * 如果指定主键以及生成策略
 * @author Administrator
 *
 */
@Entity
public class Cat {
    /**
     * 使用@id注定主键
     * 使用@GeneratedValue(strategy=GenerationType.AUTO)
     * 指定主键的生成策略,mysql是自增的
     */
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int id;

    private String catName;

    private int catAge;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getCatName() {
        return catName;
    }

    public void setCatName(String catName) {
        this.catName = catName;
    }

    public int getCatAge() {
        return catAge;
    }

    public void setCatAge(int catAge) {
        this.catAge = catAge;
    }



}

创建Repository

只要继承CrudRepository类就可以

package com.cheny.spring_boot_hello.demo.repository;

import org.springframework.data.repository.CrudRepository;

import com.cheny.spring_boot_hello.demo.bean.Cat;

public interface CatRepository extends CrudRepository<Cat, Integer> {

}

创建一个service

package com.cheny.spring_boot_hello.demo.service;

import javax.annotation.Resource;
import javax.transaction.Transactional;

import org.springframework.stereotype.Service;

import com.cheny.spring_boot_hello.demo.bean.Cat;
import com.cheny.spring_boot_hello.demo.dao.CatDao;
import com.cheny.spring_boot_hello.demo.repository.Cat2Repository;
import com.cheny.spring_boot_hello.demo.repository.CatRepository;

@Service
public class CatService {

    @Resource
    private CatRepository catRepository;

    @Resource
    private CatDao catDao;

    /**
     * save update delete 方法需要绑定事务
     * 使用@transactional进行事务的绑定
     */
    @Transactional
    public void save(Cat cat) {
        catRepository.save(cat);
    }

    @Transactional
    public void delete(int id) {
        catRepository.delete(id);
    }

    public Iterable<Cat> getAll() {
        return catRepository.findAll();
    }

    public Cat findByCatName(String catName) {
        return cat2Repository.findByCatName(catName);
    }

    public Cat findByCatName2(String catName) {
        return cat2Repository.findMyCatName(catName);
    }

    public Cat selectByCatName(String catName) {
        return  catDao.selectByCatName(catName);
    }
}

创建请求Controller

package com.cheny.spring_boot_hello.demo.controller;

import javax.annotation.Resource;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.cheny.spring_boot_hello.demo.bean.Cat;
import com.cheny.spring_boot_hello.demo.service.CatService;

@RestController
@RequestMapping("/cat")
public class CatController {

    @Resource
    private CatService catService;

    @RequestMapping("/save")
    public String sava() {
        Cat cat = new Cat();
        cat.setCatName("jack");
        cat.setCatAge(3);
        catService.save(cat);
        return "save ok";
    }

    @RequestMapping("/delete")
    public String delete() {
        catService.delete(1);
        return "delete ok";
    }

    @RequestMapping("/findAll")
    public Iterable<Cat> findAll(){
        return catService.getAll();
    }

    @RequestMapping("/findByCatName")
    public Cat findByCatName(String catName){
        return catService.findByCatName(catName);
    }

    @RequestMapping("/findByCatName2")
    public Cat findByCatName2(String catName){
        return catService.findByCatName2(catName);
    }

    @RequestMapping("/selectByCatName")
    public Cat selectByCatName(String catName){
        return catService.selectByCatName(catName);
    }
}

浏览器输入请求地址测试

猜你喜欢

转载自blog.csdn.net/u010996565/article/details/82562459
今日推荐