美文网首页
SpringBoot整合JPA

SpringBoot整合JPA

作者: 低调的灬攻城狮 | 来源:发表于2020-04-14 16:25 被阅读0次
  • 添加依赖 pom.xml
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.0.28</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
    </dependency>
    
  • 修改application.properties文件
    spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    spring.datasource.username=root
    spring.datasource.password=123456
    spring.datasource.url=jdbc:mysql://localhost:3307/jpa?useSSL=true&serverTimezone=UTC&characterEncoding=UTF-8
    #jpa connect mysql
    spring.jpa.database=mysql
    #jpa show sql
    spring.jpa.show-sql=true
    #jpa format sql
    spring.jpa.properties.hibernate.format_sql=true
    #create-drop create update validate
    spring.jpa.hibernate.ddl-auto=update
    
  • IUserDao.java
    public interface IUserDao extends JpaRepository<User, Integer> {
        List<User> findByPassword(String password);
        List<User> findByUsername(String username);
    }
    
  • IUserService.java
    public interface IUserService {
        List<User> getAllUsers();
        void saveUsers(User u);
        List<User> getUsersByPassword(String password);
        List<User> getUsersByUsername(String username);
    }
    
  • UserServiceImpl.java
    @Service
    public class UserServiceImpl implements IUserService {
        @Resource
        private IUserDao userDao;
        @Override
        public List<User> getAllUsers() {
            return userDao.findAll();
        }
        @Override
        public void saveUsers(User u) {
            userDao.saveAndFlush(u);
        }
        @Override
        public List<User> getUsersByPassword(String password) {
            return userDao.findByPassword(password);
        }
        @Override
        public List<User> getUsersByUsername(String username) {
            return userDao.findByUsername(username);
        }
    }
    
  • TestUserService.java
    //@RunWith(SpringRunner.class)
    @SpringBootTest
    public class TestUserService {
        @Resource
        private IUserService userService;
        @Test
        public void testSaveUser(){
            User u = new User(0, "wangwu", "999999", "beijing");
            userService.saveUsers(u);
        }
        @Test
        public void testGetUsersByUsername(){
            for (User user : userService.getUsersByUsername("zhangsan")) {
                System.out.println(user);
            }
        }
        @Test
        public void testGetUsersByPassword(){
            for (User user : userService.getUsersByPassword("999999")) {
                System.out.println(user);
            }
        }
    }
    
  • 运行结果:
    Hibernate: 
        select
            user0_.col_uid as col_uid1_0_,
            user0_.addr as addr2_0_,
            user0_.col_password as col_pass3_0_,
            user0_.col_username as col_user4_0_ 
        from
            tbl_user user0_ 
        where
            user0_.col_username=?
    User(uid=1, username=zhangsan, password=999999, addr=beijing)
    
  • 至此Springboot完成了数据库测试,继续写前端控制器,UserController.java
    @RestController
    public class UserController {
        @Resource
        private IUserService userService;
        @GetMapping("/Users")
        public List<User> getAllUsers(){
            return userService.getAllUsers();
        }
        ```
    
  • 访问http://localhost:8080/Users,得到如下的json字符串:
    [{"uid":1,"username":"zhangsan","password":"999999","addr":"beijing"},
    {"uid":2,"username":"lisi","password":"999999","addr":"beijing"},
    {"uid":3,"username":"wangwu","password":"999999","addr":"beijing"}]
    
  • 至此SpringBoot整合JPA完成

相关文章

网友评论

      本文标题:SpringBoot整合JPA

      本文链接:https://www.haomeiwen.com/subject/buxtvhtx.html