美文网首页天工开物Kotlin编程Spring-Boot
Spring Boot 之 Spring Data JPA 二

Spring Boot 之 Spring Data JPA 二

作者: 孙亖 | 来源:发表于2017-11-15 21:26 被阅读157次

    今天继续学习JPA,但是IDE工具变为了IntelliJ IDEA,其实多数我还是更喜欢Eclipse系列,但是Android Studio什么的,多Get一个技能也不是坏事。

    1 新建Spring Boot工程

    IntelliJ IDEA 新建Spring Initializr工程

    Next,然后填写项目信息:

    项目信息

    看上面,我把语言改成了Kotlin,因为我最近在学习Kotlin,所以,你又get到新技能了。继续Next

    项目依赖选择
    依赖,我们这里选择了JPA和一种数据库驱动。Next 项目名称位置信息

    项目名称和位置,这里项目创建完毕,点击Finisth等待项目初始化完毕(主要是下载模版和依赖)。


    代码结构

    除了代码由java改为kotlin,其他没有变化。

    2 新建实体

    我们先建一个包,名为cn.techcave.demo.jpa.domain,在此包下通过新建一个kotlin Clasee来创建名为Record的实体,具体代码如下:

    package cn.techcave.demo.jpa.domain
    
    import javax.persistence.Entity
    import javax.persistence.GeneratedValue
    import javax.persistence.GenerationType
    import javax.persistence.Id
    
    @Entity
    data class Record(
            @Id
            @GeneratedValue(strategy = GenerationType.IDENTITY)
            var id: Long? = null,
            var name:String? = null,
            var value: Double? = null
    ) {
    }
    

    3 新建Repository

    对于Repository,我的理解就是dao,代码说话:

    package cn.techcave.demo.jpa.repository
    
    import cn.techcave.demo.jpa.domain.Record
    import org.springframework.data.jpa.repository.JpaRepository
    import org.springframework.stereotype.Repository
    
    @Repository
    interface RecordRepo :JpaRepository<Record, Long> {
    }
    

    超简单好不好,我都不想说话了。

    4 新建一Service吧

    好了,默默的看代码

    package cn.techcave.demo.jpa.service
    
    import cn.techcave.demo.jpa.domain.Record
    import cn.techcave.demo.jpa.repository.RecordRepo
    import org.springframework.beans.factory.annotation.Autowired
    import org.springframework.data.domain.Example
    import org.springframework.stereotype.Service
    import org.springframework.data.domain.ExampleMatcher
    import org.springframework.data.domain.ExampleMatcher.GenericPropertyMatchers.startsWith
    
    
    @Service
    class RecordService {
    
        @Autowired
        lateinit var recRepo: RecordRepo
        fun qbeRecord(rec: Record): Record? {
            val matcher = ExampleMatcher.matching()
                    .withIgnorePaths("value")//忽略value属性
                    .withIncludeNullValues()//包含空值
                    .withMatcher("name", startsWith().ignoreCase())//字段name,匹配开始,忽略大小写
    
            val example = Example.of(rec, matcher)
            return recRepo.findOne(example)
        }
    
        fun findOne(id:Long): Record? {
            return recRepo.findOne(id)
        }
    
        fun newRecored(rec: Record) {
            recRepo.save(rec)
        }
    }
    

    qbeRecord方法就是Query By Example 的使用例子

    原文地址

    相关文章

      网友评论

        本文标题:Spring Boot 之 Spring Data JPA 二

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