• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

hoaven-boot-libdbjpa: 对Hibernate框架的二次封装,简化对数据库的操作 ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

hoaven-boot-libdbjpa

开源软件地址:

https://gitee.com/kakanshun/hoaven-boot-libdbjpa

开源软件介绍:

一、简介

对Hibernate框架的二次封装,简化对数据库的操作。

数据库连接池: Druid
项目构建: SpringBoot

二、使用

1、数据源相关配置

@Configuration@EnableTransactionManagement(proxyTargetClass = true)public class HddMasterJpaConfig {    public final static String prefix = "hddMaster";    private final static String modelBasePackage = "com.wesd.hdd.libdbmaster.model";    private final static String propertiesPrefix = "spring.datasource.druid.hdd-master";    public final static String TRANSACTION_NAME = prefix + "TransactionManager";    @Bean(prefix + "DataSource")    @ConfigurationProperties(propertiesPrefix)    public DataSource dataSource() {        return DruidDataSourceBuilder.create().build();    }    @Bean(name = prefix + "EntityManagerFactory")    public LocalContainerEntityManagerFactoryBean entityManagerFactory(EntityManagerFactoryBuilder builder) {        return builder                .dataSource(dataSource())                .packages(modelBasePackage) //设置实体类所在位置                .persistenceUnit(prefix + "PersistenceUnit")                .build();    }    @Bean(name = prefix + "EntityManager")    public EntityManager entityManager(            @Qualifier(prefix + "EntityManagerFactory")                    LocalContainerEntityManagerFactoryBean entityManagerFactory) {        return entityManagerFactory.getObject().createEntityManager();    }    @Bean(name = TRANSACTION_NAME)    public PlatformTransactionManager transactionManager(            @Qualifier(prefix + "EntityManagerFactory")                    LocalContainerEntityManagerFactoryBean entityManagerFactory) {        return new JpaTransactionManager(entityManagerFactory.getObject());    }}

properties:

spring.datasource.druid.hdd-master.driver-class-name = com.mysql.jdbc.Driverspring.datasource.druid.hdd-master.url = jdbc:mysql://host:3306/hdd?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNullspring.datasource.druid.hdd-master.username = spring.datasource.druid.hdd-master.password = 

2、model创建

/** * Created by hoaven on 2018/5/9. */@Entity@Table(name = "hdd_cart")@Getter@Setter@NoArgsConstructor@AllArgsConstructorpublic class CartDO extends BaseModel {    private String userRefId;    private String itemMap;}//只读Model继承BaseReadOnlyModel

3、通用dao封装:直接继承AbstractBaseDao

@Repositorypublic class HddBaseDao extends AbstractBaseDao {    @Autowired    @Qualifier(HddMasterJpaConfig.prefix + "EntityManagerFactory")    EntityManager entityManager;    @Override    protected EntityManager getEntityManager() {        return entityManager;    }}

4、通用Service封装

public interface IHddBaseService extends IBaseService {}@Servicepublic class HddBaseService implements IHddBaseService {    @Resource    HddBaseDao baseDao;    @Override    @Transactional(transactionManager = TRANSACTION_NAME, propagation = Propagation.REQUIRED, rollbackFor = Exception.class)    public <T> T insert(T model) {        return baseDao.insert(model);    }    @Override    @Transactional(transactionManager = TRANSACTION_NAME, propagation = Propagation.REQUIRED, rollbackFor = Exception.class)    public <T> T update(T model) {        return baseDao.update(model);    }    @Override    @Transactional(transactionManager = TRANSACTION_NAME, propagation = Propagation.REQUIRED, rollbackFor = Exception.class)    public <T> void delete(T model) {        baseDao.delete(model);    }    @Override    @Transactional(transactionManager = TRANSACTION_NAME, propagation = Propagation.SUPPORTS, readOnly = true)    public <T> T getById(Class<T> modelClass, Long id) {        return baseDao.getById(modelClass, id);    }    @Override    @Transactional(transactionManager = TRANSACTION_NAME, propagation = Propagation.SUPPORTS, readOnly = true)    public <T> List<T> listQuery(String hql, RowBounds rowBounds, Map<String, Object> params) {        return baseDao.listQuery(hql, rowBounds, params);    }    @Override    @Transactional(transactionManager = TRANSACTION_NAME, propagation = Propagation.SUPPORTS, readOnly = true)    public <T> List<T> listQuery(String hql, RowBounds rowBounds, Object... params) {        return baseDao.listQuery(hql, rowBounds, params);    }    @Override    @Transactional(transactionManager = TRANSACTION_NAME, propagation = Propagation.SUPPORTS, readOnly = true)    public <T> List<T> listQuery(String hql, Object... params) {        return baseDao.listQuery(hql, params);    }    @Override    @Transactional(transactionManager = TRANSACTION_NAME, propagation = Propagation.SUPPORTS, readOnly = true)    public <T> T singleBySQL(String hql, Object... params) {        return baseDao.singleBySQL(hql, params);    }    @Override    @Transactional(transactionManager = TRANSACTION_NAME, propagation = Propagation.SUPPORTS, readOnly = true)    public Integer countBySQL(String hql, Object... params) {        return baseDao.countBySQL(hql, params);    }    @Override    @Transactional(transactionManager = TRANSACTION_NAME, propagation = Propagation.SUPPORTS, readOnly = true)    public Integer update(String hql, Object... params) {        return baseDao.update(hql, params);    }    @Override    @Transactional(transactionManager = TRANSACTION_NAME, propagation = Propagation.SUPPORTS, readOnly = true)    public <T> List<T> listQuery(final String hql, Map<String, Object> params) {        return baseDao.listQuery(hql, params);    }}

5、操作DB示例

public class CartServiceImpl implements CartService {    @Resource    IHddBaseService hddBaseService;        public CartDTO queryCartByUserRefId(String userRefId) {        CartDO cartDO = hddBaseService.singleBySQL("from CartDO where userRefId = ?1", userRefId);        return BeanConvertUtils.map(cartDO, CartDTO.class);    }}

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap