天天看點

SpringBoot如何整合JPA-Hibernate? | 帶你讀《SpringBoot實戰教程》之二十四

上一篇:SpringBoot的事務管理 | 帶你讀《SpringBoot實戰教程》之二十三 下一篇:如何在SpringBoot中實作郵件的發送? | 帶你讀《SpringBoot實戰教程》之二十五

本文來自于千鋒教育在阿裡雲開發者社群學習中心上線課程《SpringBoot實戰教程》,主講人楊紅豔,

點選檢視視訊内容

SpringBoot整合JPA-Hibernate

添加依賴:

<!-- springboot整合jpa -->
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-data-jpa</artifactId>
      </dependency>
      <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
       </dependency>           

建立全局配置檔案:application.properties,添加與JPA有關的資訊以及連接配接資料庫:使用db6資料庫

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://localhost:3306/db6

#讓控制器輸出json字元串格式
spring.jackson.serialization.indent-output=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect           

建立包:com.qianfeng.pojo,生成實體類

@Entity
@Table(name="t_user")
public class User {

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Integer id;
    
    @Column
    private String name;
    private String password;
    private String email;
    private Date birthday;

    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 String getPassword() {
        return password;
    }
    public void setPassword(String password) {
    
        this.password = password;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
    
        this.email = email;
    }
    public Date getBirthday() {
        return birthday;
    }
    public void setBirthday(Date birthday) {
    
        this.birthday = birthday;
    }
}           

實作添加功能

UserDao:

public interface UserDao extends JpaRepository<User, Integer>{
}           

UserService:

public interface UserService {

    void addUser(User user);
}           

UserServiceImpl:

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserDao userDao;

    @Override
    public void addUser(User user) {
        
        userDao.save(user);
    }
}           

UserController:

@Controller
public class UserController {

    private UserService userService;
    
    @RequestMapping("/save")
    @ResponseBody
    public String saveUser() {
        User user = new User();
        user.setName("小花");
        user.setPassword("123");
        user.setEmail("[email protected]");
        user.setBirthday(new Date());

        userService.addUser(user);
        return "success";
    }
}           

在啟動類中添加所有需要掃描的包

@SpringBootApplication(scanBasePackages="com.qianfeng")
@EntityScan("com.qianfeng.pojo")     //掃描實體類
@EnableJpaRepositories("com.qianfeng.dao")      //掃描dao           

執行結果:

SpringBoot如何整合JPA-Hibernate? | 帶你讀《SpringBoot實戰教程》之二十四
SpringBoot如何整合JPA-Hibernate? | 帶你讀《SpringBoot實戰教程》之二十四
SpringBoot如何整合JPA-Hibernate? | 帶你讀《SpringBoot實戰教程》之二十四

添加查找和删除功能:

void findUser(Integer id);
    void delUser(Integer id);           
@Override
public User findUser(Integer id) {
    return userDao.findOne(id);

}

public void delUser(Integer id) {

    userDao.delete(id);
}           
@RequestMapping("/find/{id}")
@ResponseBody
public User findUser(@PathVariable Integer id) {

    return userService.findUser(id);
}

@RequestMapping("/del/{id}")
@ResponseBody
public String delUser(@PathVariable Integer id) {

    userService.delUser(id);
    return "ok";
}           

執行查找結果:

SpringBoot如何整合JPA-Hibernate? | 帶你讀《SpringBoot實戰教程》之二十四

執行删除結果:

SpringBoot如何整合JPA-Hibernate? | 帶你讀《SpringBoot實戰教程》之二十四
SpringBoot如何整合JPA-Hibernate? | 帶你讀《SpringBoot實戰教程》之二十四

配套視訊