SpringBoot+Mybatis项目(一)基础Entity、Dao、Service

基于实际开发项目结构,搭建基于SpringBoot+Mybatis项目的基础Entity、Dao、Service。

1、基础实体类:Entity

      基础实体类包含了:唯一主键,使用UUID、创建时间、更新时间、创建人、更新人、删除标记 1正常 2删除、分页页数、分页数量。其中创建人、更新人在项目线程通用用户管理后可在此设置(后续微博更新)。分页页数、分页数量配合整合分页组件使用。

public class BaseEntity {

    /**
     * 数据ID
     */
    private String id ;

    /**
     * 创建时间
     */
    @JsonFormat(timezone = "GMT+8" ,pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createDate ;

    /**
     * 更新时间
     */
    @JsonFormat(timezone = "GMT+8" ,pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateDate ;

    /**
     * 创建人
     */
    private String createBy ;

    /**
     * 更新人
     */
    private String updateBy ;

    /**
     * 删除标记 1正常  2删除
     */
    private Integer delFlag ;

    /**
     * 分页页数  查询使用
     */
    @JsonIgnore
    private int pageNum = 1;   //默认值第一页
    /**
     * 分页数量  查询使用
     */
    @JsonIgnore
    private int pageSize = 10;  //默认10条数据分页

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public Date getUpdateDate() {
        return updateDate;
    }

    public void setUpdateDate(Date updateDate) {
        this.updateDate = updateDate;
    }

    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public String getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    public Integer getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(Integer delFlag) {
        this.delFlag = delFlag;
    }

    public int getPageNum() {
        return pageNum;
    }

    public void setPageNum(int pageNum) {
        this.pageNum = pageNum;
    }

    public int getPageSize() {
        return pageSize;
    }

    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    public void preInsert(){
        //添加之前执行
        this.setCreateDate(new Date());
        this.setId(IdGen.uuid());
        this.setUpdateDate(new Date());
    }
    public void preUpdate(){
        //更新之前执行
        this.setUpdateDate(new Date());
    }

}

      使用示例:

public class SysUser extends BaseEntity{

}

2、基础Dao

      基础泛型Dao实现的方法数据的增删查改。

public interface BaseDao <T> {

    /**
     * 根据ID获取单条数据
     * @param id
     * @return
     */
    public T get(String id);

    /**
     * 根据条件获取单条数据
     * @param entity
     * @return
     */
    public T getByEntity(T entity);

    /**
     * 根据条件获取多条数据
     * @param entity
     * @return
     */
    public List<T> getAllList(T entity);

    /**
     * 插入数据
     * @param entity
     * @return
     */
    public void insert(T entity);

    /**
     * 更新数据
     * @param entity
     * @return
     */
    public void update(T entity);

    /**
     * 删除数据
     * @param entity
     * @return
     */
    public void delete(T entity);

}

      使用示例:(备注:SysUserDao需要mabatis的mapper.xml来与之对应,提供相关的sql语句)

public interface SysUserDao extends BaseDao<SysUser>{

}

3、基础Service

     基础Service是基于BaseDao、BaseEntity实现的服务层代码对数据的增删查改方法。注意此处Service是abstract

@Service
public abstract class BaseService <D extends BaseDao<T>, T extends BaseEntity> {

    /**
     * 当前持久层对象
     */
    @Autowired(required = false)
    public D dao ;

    /**
     * 根据ID获取单条数据
     * @param id
     * @return
     */
    public T get(String id){
        return dao.get(id);
    }

    /**
     * 根据条件获取单条数据
     * @param entity
     * @return
     */
    public T getByEntity(T entity){
        return dao.getByEntity(entity);
    }

    /**
     * 根据条件获取多条数据
     * @param entity
     * @return
     */
    public List<T> getAllList(T entity){
        return dao.getAllList(entity);
    }


    /**
     * 分页获取数据对象
     * @param entity
     * @return
     */
    public PageInfo<T> getPageList(T entity){
        PageHelper.startPage(entity.getPageNum(),entity.getPageSize());
        PageInfo<T> pageInfo = new PageInfo<T>(getAllList(entity));
        return pageInfo;
    }

    /**
     * 插入数据
     * @param entity
     * @return
     */
    @Transactional
    public void insert(T entity){
        entity.preInsert();
        dao.insert(entity);
    }

    /**
     * 更新数据
     * @param entity
     * @return
     */
    @Transactional
    public void update(T entity){
        entity.preUpdate();
        dao.update(entity);
    }

    /**
     * 保存或更新方法
     * @param entity
     */
    @Transactional
    public void saveOrUpdate(T entity){
        if(entity.getId() != null && !entity.getId().equals("")){
            //更新
            this.update(entity);
        }else {
            //新增
            this.insert(entity);
        }
    }

    /**
     * 删除数据
     * @param entity
     * @return
     */
    @Transactional
    public void delete(T entity){
        dao.delete(entity);
    }

}

      使用示例:(备注:SysUserService中默认包含用户dao对象,且实现了对单表的增删改查方法)

@Service
public class SysUserService extends BaseService<SysUserDao,SysUser>{

}

      后续微博持续更新整合新内容,记录包含实际项目使用到技术:线程通用用户管理(解耦代码)、二维码、WebSocket、消息队列、Redis缓存等等等等...

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
下面是一个基本的Spring Boot + MyBatis项目的框架搭建步骤: 1. 创建Maven项目 使用Maven创建一个新的Java项目。 2. 添加依赖 在pom.xml文件中添加Spring BootMyBatis的依赖: ```xml <dependencies> <!-- Spring Boot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- MyBatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.4</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.23</version> </dependency> </dependencies> ``` 其中,mysql-connector-java为MySQL数据库驱动的依赖。根据需要可以替换为其他数据库的驱动。 3. 配置数据库连接 在application.properties文件中添加数据库连接配置: ``` spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase spring.datasource.username=root spring.datasource.password=password ``` 其中,mydatabase为需要连接的数据库名称,root为数据库用户名,password为数据库用户密码。 4. 创建实体类和DAO层接口 创建实体类和DAO层接口,并在接口中定义需要执行的SQL语句。 5. 创建MyBatis映射文件 在resources目录下创建MyBatis映射文件,并定义SQL语句和参数的映射关系。 6. 配置MyBatis 在application.properties文件中添加MyBatis的配置: ``` mybatis.mapper-locations=classpath:mapper/*.xml mybatis.type-aliases-package=com.example.demo.entity ``` 其中,mapper-locations为MyBatis映射文件的位置,type-aliases-package为实体类所在的包名。 7. 创建Service层和Controller层 创建Service层和Controller层,并调用DAO层接口中的方法。 8. 运行项目 运行Spring Boot项目,并测试接口是否能正常调用。 以上就是一个基本的Spring Boot + MyBatis项目的框架搭建步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

a718089112

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值