(五)spring-boot中使用spring-data-jpa(hibernate实现)

好久没写了,今天更一篇。在spring-boot中使用spring-data-jpa作为持久层框架,hibernate作为实现。在多项目构建的基础上,在dafangzi-core,dafangzi-system中引入对spring-boot-starter-data-jpa的依赖。
首先,增加service层公共接口,

package com.xkx.dafangzi.core.foundation.service;

import com.xkx.dafangzi.core.foundation.entity.BaseEntity;

/**
 * Created by Administrator on 2017/8/3.
 */
public interface IBaseService<T extends BaseEntity, PK> {

    public T saveOrUpdate(T t);

    public int deleteById(PK id);

    public int deleteByIds(String ids);

    public T getEntityById(PK id);

}

然后创建接口ISystemConfigService继承自IBaseService。创建SystemConfigServiceImpl类实现ISystemConfigService,在实现类中引用ISystemConfigDao,该类继承子spring中的JpaRepository,在实现中就可以使用spring提供的已有方法了。

package com.xkx.dafangzi.system.service.impl;

import com.xkx.dafangzi.core.foundation.service.impl.BaseServiceImpl;
import com.xkx.dafangzi.system.dao.ISystemConfigDao;
import com.xkx.dafangzi.system.entity.SystemConfigEntity;
import com.xkx.dafangzi.system.service.ISystemConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * Created by pc on 2017/8/13.
 */
@Service
public class SystemConfigServiceImpl implements ISystemConfigService {

    @Autowired
    private ISystemConfigDao systemConfigDao;

    @Override
    public SystemConfigEntity saveOrUpdate(SystemConfigEntity systemConfigEntity) {
        return systemConfigDao.saveAndFlush(systemConfigEntity);
    }

    @Override
    public int deleteById(Long id) {
        return 0;
    }

    @Override
    public int deleteByIds(String ids) {
        return 0;
    }

    @Override
    public SystemConfigEntity getEntityById(Long id) {
        return systemConfigDao.findOne(id);
    }
}

在fangzi-system中添加实体SystemConfigEntity,

package com.xkx.dafangzi.system.entity;

import com.xkx.dafangzi.core.foundation.entity.BaseEntity;

import javax.persistence.*;
import java.io.Serializable;

/**
 * Created by pc on 2017/8/9.
 */
@Entity
@Table(name="dafangzi_system_config")
public class SystemConfigEntity extends BaseEntity {

    private String systemId;
    private String systemName;

    public String getSystemId() {
        return systemId;
    }

    public void setSystemId(String systemId) {
        this.systemId = systemId;
    }

    public String getSystemName() {
        return systemName;
    }

    public void setSystemName(String systemName) {
        this.systemName = systemName;
    }
}

最后,添加配置文件,

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

spring.jpa.database=mysql
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.DefaultNamingStrategy
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

并且增加Application作为启动的入口,

package com.xkx.dafangzi.web.test.controller;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.ComponentScan;

/**
 * Created by pc on 2017/7/26.
 */
//@SpringBootApplication
@ComponentScan(basePackages = "com.xkx.dafangzi")
@EnableConfigurationProperties
@EnableAutoConfiguration
public class Application {

    public static void main(String[] args) throws Exception {
        SpringApplication.run(Application.class, args);
    }

}

运行后,访问SystemConfigController中的请求,即可自动生成数据库表。
详细代码可参看https://github.com/xukexin/dafangzi

更多有趣,好玩的信息请关注我的微信公众号!

(五)spring-boot中使用spring-data-jpa(hibernate实现)_第1张图片

你可能感兴趣的:((五)spring-boot中使用spring-data-jpa(hibernate实现))