zoukankan      html  css  js  c++  java
  • mybatis写接口 简单的实现等

    mybatis书写自定义的接口

    实现伪删除,排序置顶等接口

    使用的mybatis是

    <dependency>
        <groupId>tk.mybatis</groupId>
        <artifactId>mapper</artifactId>
        <version>3.4.0</version>
    </dependency>

    1、定义接口

    package tk.mybatis.mapper.common.base.delete;
    
    import org.apache.ibatis.annotations.DeleteProvider;
    import tk.mybatis.mapper.provider.base.BaseDeleteProvider;
    
    /**
     * @author xiebq 2018/12/24
     */
    public interface LogicDeleteByPrimaryKey<T> {
    
    
            /**
             * 根据主键字段进行删除,方法参数必须包含完整的主键属性
             *
             * @param key
             * @return
             */
            @DeleteProvider(type = BaseDeleteProvider.class, method = "dynamicSQL")
            int logicDeleteByPrimaryKey(Object key);
    
    
    }

    2、集成接口

    public interface BaseDeleteMapper<T> extends
            DeleteMapper<T>,
            LogicDeleteByPrimaryKey<T>,
            DeleteByPrimaryKeyMapper<T> {
    
    }

    3、实现接口 在BaseDeleteProvider 类中实现接口的方法

        /**
         * 伪删除的实现
         *
         * @param ms
         */
        public String logicDeleteByPrimaryKey(MappedStatement ms) {
            final Class<?> entityClass = getEntityClass(ms);
            StringBuilder sql = new StringBuilder();
            sql.append(SqlHelper.updateTable(entityClass, tableName(entityClass)));
            sql.append(" set is_delete = 1 ");
            Date date = new Date();
            SimpleDateFormat sdf2= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            sql.append(" ,updated = '"+sdf2.format(date) +"' ");
            sql.append(SqlHelper.wherePKColumns(entityClass));
            return sql.toString();
        }
    

      

    4、使用接口

    @Mapper
    public interface UserDao extends MyMapper<User> {}
        public Boolean logicDelete(Integer id) {
            userDao.logicDeleteByPrimaryKey(id);
            return true;
        } 

    tk mybatis

    通过拼接sql的语句实现,显示接口定义,实现类拼接sql语句,然后实现语句

    在mybatis拼接sql语句中,提供多个sql语句拼接的Provider

    练习项目github上地址链接

    mybatis源码的理解

  • 相关阅读:
    jQuery仿yahoo首页弹出层效果
    显示中文的星期几
    Oracle 會話級Session誤解
    异常处理點滴
    DataGrid 呈現數據——綁定與編程混合
    document.body.scrollTop 值总为0的解决方法(转载)
    DataGridView 一些設置
    事務回滾之實例
    数据库表设计下手
    WebApp匯入CSV資料
  • 原文地址:https://www.cnblogs.com/xiebq/p/10193156.html
Copyright © 2011-2022 走看看