springboot-jpa环境搭建与应用-----springboot-jpa分享(一)

springboot 集成jpa,对快速开发项目很有帮助

源码地址:  https://gitee.com/xing_xin/springboot-jpa.git

本章节主要讲一些简单用法,如单表的增删改查

本项目采用springboot  2.0.0.RELEASE

一、项目搭建

    建立项目,结构如下

  

注:entity包里放与表对应的实体,repository包里放jpa的Repository,相当于dao层

引入必要jar包

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.15</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.31</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>

   

二、完善相关的业务代码

      1、增加实体类

     

@Data
@Entity
@Table(name = "t_user")
public class User {
    /**GenerationType
     * TABLE:使用一个特定的数据库表格来保存主键。
     SEQUENCE:根据底层数据库的序列来生成主键,条件是数据库支持序列。
     IDENTITY:主键由数据库自动生成(主要是自动增长型)
     AUTO:主键由程序控制。
     */
    @Id
    @GeneratedValue(strategy= GenerationType.IDENTITY)
    private Integer id;
    @Column(name = "name")
    private String name;
    @Column(name = "age")
    private String age;
    @Column(name = "school")
    private String school;
    @Column(name = "sex")
    private String sex;
}

注意:上面@table标签是表示这个实体与表(t_user)映射,如果表名是user,不用这个注解,jpa能自动找到那user表,反之不行

2、增加自定义Repository接口

@Repository
public interface TUserRepository extends JpaRepository<User,Long> {
}

注:这里是自定义jpa的接口,默认有保存与查询的可以直接用

3、增加 一个service并调用

    

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private TUserRepository userRepository;
    @Override
    public void save(User user) {
        userRepository.save(user);
     
    }

    @Override
    public List<User> selectList(User user) {
        return userRepository.findAll();
    }
}

4、写个测试类批量保存数据,看是否成功

@RunWith(SpringRunner.class)
@SpringBootTest(classes = {JpaApplication.class})// 指定启动类
public class UserTest {
    @Autowired
    private UserService userService;

    @Test
    public void save(){
        for (int i = 0 ;i < 10;i++ )  {
            User user = new User();
            user.setAge("1_"+i);
            user.setName("test1_"+i);
            user.setSchool("school1_" + i);
            user.setSex("男_" + i);
            userService.save(user);
        }
    }
}

到此一个简单的springboot + jpa项目已经完成了

三、如何实现增删除改查

为了方便测试,我们直接把  userRepository 注入到测试类里(实际项目可不能这么干的)

如下

  1、增加数据

   下面是批量增加10条数据

       for (int i = 0 ;i < 10;i++ )  {
            User user = new User();
            user.setAge("1_"+i);
            user.setName("test1_"+i);
            user.setSchool("school1_" + i);
            user.setSex("男_" + i);
            userRepository.save(user);
        }

   运行结果如下

2、修改数据

     

    @Test
    public void update(){
        User user = new User();
        user.setId(3);
        user.setAge("1_更新");
        user.setName("test1_更新");
        user.setSchool("school1_更新");
        user.setSex("男_更新" );
        userRepository.save(user);
    }

更新结果如下

注:总结上面可以看出,更新与新增数据时,实体对象只有一个区别,那就是更新时参数里有主键,新增时没有,所以平时项目开发时,只传了主键值 ,jpa会执行更新操作

3、删除数据

  

   @Test
    public void del(){
        User user = new User();
        user.setId(4);
        userRepository.delete(user);
    }

4、查询列表

  

    @Test
    public void selectList(){
        List<User> list = userRepository.findAll();
        System.out.println(list);
    }

源码地址:  https://gitee.com/xing_xin/springboot-jpa.git

以上都是些简单的查询,下节展示一些复杂的操作

发布了57 篇原创文章 · 获赞 22 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/yb546822612/article/details/101295542