springboot集成spring-data-jpa

来源:互联网 发布:ubuntu vmdk 下载 编辑:程序博客网 时间:2024/06/05 15:56

在成功创建hello word后,接下来我首先想到了数据库的访问,之前也用过不少ORM,Hibernate、Mybatis,既然是学习就要学习没用过的不是,spring有自己的解决方案,那就是spring-data-jpa,这篇文章主要学习使用spring-data-jpa来访问数据库的过程。

1.我使用的数据库是mysql,首先将spring-data-jpa和mysql驱动的jar包导入到项目中来。

[html] view plain copy
  1. <span style="white-space:pre">    </span><dependency>  
  2.             <groupId>org.springframework.boot</groupId>  
  3.             <artifactId>spring-boot-starter-data-jpa</artifactId>  
  4.         </dependency>  
  5.         <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->  
  6.         <dependency>  
  7.             <groupId>mysql</groupId>  
  8.             <artifactId>mysql-connector-java</artifactId>  
  9.             <version>5.1.30</version>  
  10.         </dependency>  
2.配置连接mysql数据库,在application.properties添加以下内容

[html] view plain copy
  1. ########################################数据库配置#########################################  
  2. spring.datasource.url=jdbc:mysql://127.0.0.1:3306/springboot  
  3. spring.datasource.username=root  
  4. spring.datasource.password=Password  
  5. spring.datasource.driver-class-name=com.mysql.jdbc.Driver  
3.创建一个人员表对应的实体UserDomain

[java] view plain copy
  1. package com.zity.springboot.domain;  
  2.   
  3.   
  4. import javax.persistence.Column;  
  5. import javax.persistence.Entity;  
  6. import javax.persistence.GeneratedValue;  
  7. import javax.persistence.Id;  
  8.   
  9. @Entity  
  10. public class UserDomain {  
  11.   
  12.     /** 用户id */  
  13.     @Id  
  14.     @GeneratedValue  
  15.     private long id;  
  16.     /** 用户编号 */  
  17.     @Column(nullable = true)  
  18.     private String userNo;  
  19.     /** 用户名称 */  
  20.     @Column(nullable = true)  
  21.     private String userName;  
  22.     /** 用户密码 */  
  23.     @Column(nullable = true)  
  24.     private String userPwd;  
  25.     /** 用户盐值 */  
  26.     @Column(nullable = true)  
  27.     private String salt;  
  28.     /** 用户状态 */  
  29.     @Column(nullable = true)  
  30.     private String userStatus;  
  31.   
  32.     public long getId() {  
  33.         return id;  
  34.     }  
  35.   
  36.     public void setId(long id) {  
  37.         this.id = id;  
  38.     }  
  39.   
  40.     public String getUserNo() {  
  41.         return userNo;  
  42.     }  
  43.   
  44.     public void setUserNo(String userNo) {  
  45.         this.userNo = userNo;  
  46.     }  
  47.   
  48.     public String getUserName() {  
  49.         return userName;  
  50.     }  
  51.   
  52.     public void setUserName(String userName) {  
  53.         this.userName = userName;  
  54.     }  
  55.   
  56.     public String getUserPwd() {  
  57.         return userPwd;  
  58.     }  
  59.   
  60.     public void setUserPwd(String userPwd) {  
  61.         this.userPwd = userPwd;  
  62.     }  
  63.   
  64.     public String getSalt() {  
  65.         return salt;  
  66.     }  
  67.   
  68.     public void setSalt(String salt) {  
  69.         this.salt = salt;  
  70.     }  
  71.   
  72.     public String getUserStatus() {  
  73.         return userStatus;  
  74.     }  
  75.   
  76.     public void setUserStatus(String userStatus) {  
  77.         this.userStatus = userStatus;  
  78.     }  
  79. }  
4.创建业务service层和数据访问dao层

 

5.在UserDao文件中写入以下代码

[java] view plain copy
  1. package com.zity.springboot.dao;  
  2.   
  3. import com.zity.springboot.domain.UserDomain;  
  4. import org.springframework.data.jpa.repository.JpaRepository;  
  5.   
  6. /** 
  7.  * Created by Andy on 2016/10/30. 
  8.  */  
  9. public interface UserDao extends JpaRepository<UserDomain, Long> {  
  10.     /** 
  11.      * 根据用户名称查询用户 
  12.      * @param userNo 
  13.      * @return 
  14.      */  
  15.     UserDomain findByUserNo(String userNo);  
  16. }  
6.在UserService.java和UserServiceImpl.java中分别添加

[java] view plain copy
  1. package com.zity.springboot.service;  
  2.   
  3. import com.zity.springboot.domain.UserDomain;  
  4.   
  5. /** 
  6.  * Created by Andy on 2016/10/30. 
  7.  */  
  8.   
  9. public interface UserService {  
  10.     /** 
  11.      * 根据用户编号获取用户信息 
  12.      * @param userNo 
  13.      * @return 
  14.      */  
  15.     UserDomain findUserByUserNo(String userNo);  
  16. }  

[java] view plain copy
  1. package com.zity.springboot.service;  
  2.   
  3. import com.zity.springboot.dao.UserDao;  
  4. import com.zity.springboot.domain.UserDomain;  
  5. import org.springframework.beans.factory.annotation.Autowired;  
  6. import org.springframework.stereotype.Service;  
  7.   
  8. /** 
  9.  * Created by Andy on 2016/10/30. 
  10.  */  
  11. @Service("userService")  
  12. public class UserServiceImpl implements UserService{  
  13.     @Autowired  
  14.     private UserDao userDao;  
  15.     @Override  
  16.     public UserDomain findUserByUserNo(String userNo) {  
  17.         return userDao.findByUserNo(userNo);  
  18.     }  
  19. }  

7.在Controller.java中添加查找方法如下:

[java] view plain copy
  1. package com.zity.springboot.web;  
  2.   
  3. import com.zity.springboot.domain.UserDomain;  
  4. import com.zity.springboot.service.UserService;  
  5. import org.springframework.beans.factory.annotation.Autowired;  
  6. import org.springframework.web.bind.annotation.RequestMapping;  
  7. import org.springframework.web.bind.annotation.RestController;  
  8.   
  9. /** 
  10.  * Created by Andy on 2016/10/26. 
  11.  */  
  12. @RestController  
  13. @RequestMapping(value = "/")  
  14. public class Controller {  
  15.     @Autowired  
  16.     private UserService userService;  
  17.   
  18.     /** 
  19.      * hello word 
  20.      * @return 
  21.      */  
  22.     @RequestMapping(value = "/hello")  
  23.     public String sayHello(){  
  24.         return "Hello word";  
  25.     }  
  26.   
  27.     /** 
  28.      * 根据用户编号获取用户信息 
  29.      * @param userNo 
  30.      * @return 
  31.      */  
  32.     @RequestMapping(value = "/getUserByNo")  
  33.     public UserDomain getUserByNo(String userNo){  
  34.         UserDomain user=null;  
  35.         try {  
  36.             user=userService.findUserByUserNo(userNo);  
  37.         } catch (Exception e) {  
  38.             e.printStackTrace();  
  39.         }  
  40.         return user;  
  41.     }  
  42. }  

8.在数据库中创建数据库表以及插入初始数据,这里需要说明的是,由于Hibernate具有根据实体类自动创建表的功能,所以我们只需要在application.properties中加入spring.jpa.properties.hibernate.hbm2ddl.auto=create,当创建完成后就将该配置删除,防止数据库数据在重启程序后丢失。


9.启动程序然后在浏览器中输入http://127.0.0.1:8080/getUserByNo?userNo=111111,将看到从数据库中查询出的数据。这样集成jpa的工作就结束了!


原创粉丝点击