Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
cn.vonce.sql.spring.dao.MybatisSqlBeanDao Maven / Gradle / Ivy
Go to download
This is a tool that uses java object-oriented idea to write and generate SQL statements. On this basis,
it also implements lightweight plug-in support similar to JPA for mybatis and spring JDBC. A large number of
common SQL execution methods are built in plug-ins to improve development efficiency, reduce a large number of
SQL statement writing, and make developers focus on business code writing.
package cn.vonce.sql.spring.dao;
import cn.vonce.sql.config.SqlBeanDB;
import cn.vonce.sql.helper.Wrapper;
import cn.vonce.sql.spring.provider.MybatisSqlBeanProvider;
import cn.vonce.sql.bean.Delete;
import cn.vonce.sql.bean.Insert;
import cn.vonce.sql.bean.Select;
import cn.vonce.sql.bean.Update;
import cn.vonce.sql.bean.*;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 通用的数据库操作
*
* @param
* @author Jovi
* @version 1.0
* @email [email protected]
* @date 2018年5月15日下午3:56:51
*/
@Repository
public interface MybatisSqlBeanDao {
/**
* 根据id条件查询
*
* @param sqlBeanDB
* @param clazz
* @param id
* @return
*/
@SelectProvider(type = MybatisSqlBeanProvider.class, method = "selectById")
T selectById(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("id") Object id);
/**
* 根据id条件查询(可指定返回类型、查询的表)
*
* @param sqlBeanDB
* @param clazz
* @param returnType
* @param id
* @return
*/
@SelectProvider(type = MybatisSqlBeanProvider.class, method = "selectById")
O selectByIdO(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("returnType") Class returnType, @Param("id") Object id);
/**
* 根据ids条件查询
*
* @param sqlBeanDB
* @param clazz
* @param ids
* @return
*/
@SelectProvider(type = MybatisSqlBeanProvider.class, method = "selectByIds")
List selectByIds(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("ids") Object... ids);
/**
* 根据id条件查询(可指定返回类型、查询的表)
*
* @param sqlBeanDB
* @param clazz
* @param returnType
* @param ids
* @return
*/
@SelectProvider(type = MybatisSqlBeanProvider.class, method = "selectByIds")
List selectByIdsO(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("returnType") Class returnType, @Param("ids") Object... ids);
/**
* 根据自定义条件查询 只返回一条记录
*
* @param sqlBeanDB
* @param clazz
* @param select
* @return
*/
@SelectProvider(type = MybatisSqlBeanProvider.class, method = "select")
T selectOne(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("select") Select select);
/**
* 根据自定义条件查询 只返回一条记录(可指定返回类型)
*
* @param sqlBeanDB
* @param clazz
* @param returnType
* @param select
* @return
*/
@SelectProvider(type = MybatisSqlBeanProvider.class, method = "select")
O selectOneO(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("returnType") Class returnType, @Param("select") Select select);
/**
* 根据自定义条件查询返回Map
*
* @param sqlBeanDB
* @param clazz
* @param select
* @return
*/
@SelectProvider(type = MybatisSqlBeanProvider.class, method = "select")
Map selectMap(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("select") Select select);
/**
* 根据条件查询
*
* @param sqlBeanDB
* @param clazz
* @param where
* @param args
* @return
*/
@SelectProvider(type = MybatisSqlBeanProvider.class, method = "selectBy")
T selectOneBy(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("where") String where, @Param("args") Object... args);
/**
* 根据条件查询(可指定返回类型、查询的表)
*
* @param sqlBeanDB
* @param clazz
* @param returnType
* @param where
* @param args
* @return
*/
@SelectProvider(type = MybatisSqlBeanProvider.class, method = "selectBy")
O selectOneByO(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("returnType") Class returnType, @Param("where") String where, @Param("args") Object... args);
/**
* 根据条件查询(可指定返回类型、查询的表)
*
* @param sqlBeanDB
* @param clazz
* @param paging
* @param where
* @param args
* @return
*/
@SelectProvider(type = MybatisSqlBeanProvider.class, method = "selectBy")
List selectByO(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("returnType") Class returnType, @Param("paging") Paging paging, @Param("where") String where, @Param("args") Object... args);
/**
* 根据条件查询
*
* @param sqlBeanDB
* @param clazz
* @param paging
* @param where
* @param args
* @return
*/
@SelectProvider(type = MybatisSqlBeanProvider.class, method = "selectBy")
List selectBy(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("paging") Paging paging, @Param("where") String where, @Param("args") Object... args);
/**
* 根据条件查询统计
*
* @param sqlBeanDB
* @param clazz
* @param where
* @param args
* @return
*/
@SelectProvider(type = MybatisSqlBeanProvider.class, method = "countBy")
int countBy(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("where") String where, @Param("args") Object... args);
/**
* 查询全部
*
* @param sqlBeanDB
* @param clazz
* @param paging
* @return
*/
@SelectProvider(type = MybatisSqlBeanProvider.class, method = "selectAll")
List selectAll(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("paging") Paging paging);
/**
* 查询全部(可指定返回类型、查询的表)
*
* @param sqlBeanDB
* @param clazz
* @param returnType
* @param paging
* @return
*/
@SelectProvider(type = MybatisSqlBeanProvider.class, method = "selectAll")
List selectAllO(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("returnType") Class returnType, @Param("paging") Paging paging);
/**
* 根据自定义条件查询(可自动分页)返回List结果集
*
* @param sqlBeanDB
* @param clazz
* @param select
* @return
*/
@SelectProvider(type = MybatisSqlBeanProvider.class, method = "select")
List> selectMapList(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("select") Select select);
/**
* 根据自定义条件查询(可自动分页)返回List
*
* @param sqlBeanDB
* @param clazz
* @param select
* @return
*/
@SelectProvider(type = MybatisSqlBeanProvider.class, method = "select")
List select(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("select") Select select);
/**
* 根据自定义条件查询(可自动分页)返回List (可指定返回类型)
*
* @param sqlBeanDB
* @param clazz
* @param returnType
* @param select
* @return
*/
@SelectProvider(type = MybatisSqlBeanProvider.class, method = "select")
List selectO(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("returnType") Class> returnType, @Param("select") Select select);
/**
* 根据自定义条件统计
*
* @param sqlBeanDB
* @param clazz
* @param select
* @return
*/
@SelectProvider(type = MybatisSqlBeanProvider.class, method = "count")
int count(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("returnType") Class> returnType, @Param("select") Select select);
/**
* 获取最后插入的自增id
*
* @return
*/
@SelectProvider(type = MybatisSqlBeanProvider.class, method = "lastInsertId")
long lastInsertId();
/**
* 根据id条件删除
*
* @param sqlBeanDB
* @param clazz
* @param id
* @return
*/
@DeleteProvider(type = MybatisSqlBeanProvider.class, method = "deleteById")
int deleteById(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("id") Object id);
/**
* 根据条件删除
*
* @param sqlBeanDB
* @param clazz
* @param where
* @param args
* @return
*/
@DeleteProvider(type = MybatisSqlBeanProvider.class, method = "deleteBy")
int deleteBy(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("where") String where, @Param("args") Object... args);
/**
* 删除
*
* @param sqlBeanDB
* @param clazz
* @param delete
* @param ignore
* @return
*/
@DeleteProvider(type = MybatisSqlBeanProvider.class, method = "delete")
int delete(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("delete") Delete delete, @Param("ignore") boolean ignore);
/**
* 根据id逻辑删除
*
* @param sqlBeanDB
* @param clazz
* @param id
* @return
*/
@UpdateProvider(type = MybatisSqlBeanProvider.class, method = "logicallyDeleteById")
int logicallyDeleteById(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("id") Object id);
/**
* 根据条件逻辑删除
*
* @param sqlBeanDB
* @param clazz
* @param where
* @param args
* @return
*/
@UpdateProvider(type = MybatisSqlBeanProvider.class, method = "logicallyDeleteBy")
int logicallyDeleteBy(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("where") String where, @Param("args") Object... args);
/**
* 根据条件逻辑删除
*
* @param sqlBeanDB
* @param clazz
* @param wrapper
* @return
*/
@UpdateProvider(type = MybatisSqlBeanProvider.class, method = "logicallyDeleteByWrapper")
int logicallyDeleteByWrapper(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("wrapper") Wrapper wrapper);
/**
* 更新
*
* @param sqlBeanDB
* @param clazz
* @param update
* @param ignore
* @return
*/
@UpdateProvider(type = MybatisSqlBeanProvider.class, method = "update")
int update(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("update") Update update, @Param("ignore") boolean ignore);
/**
* 根据id条更新
*
* @param sqlBeanDB
* @param clazz
* @param bean
* @param updateNotNull
* @param optimisticLock
* @param filterColumns
* @return
*/
@UpdateProvider(type = MybatisSqlBeanProvider.class, method = "updateById")
int updateById(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("bean") T bean, @Param("id") Object id, @Param("updateNotNull") boolean updateNotNull, @Param("optimisticLock") boolean optimisticLock, @Param("filterColumns") Column[] filterColumns);
/**
* 根据实体类id条件更新
*
* @param sqlBeanDB
* @param clazz
* @param bean
* @param updateNotNull
* @param optimisticLock
* @param filterColumns
* @return
*/
@UpdateProvider(type = MybatisSqlBeanProvider.class, method = "updateByBeanId")
int updateByBeanId(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("bean") T bean, @Param("updateNotNull") boolean updateNotNull, @Param("optimisticLock") boolean optimisticLock, @Param("filterColumns") Column[] filterColumns);
/**
* 根据条件更新
*
* @param sqlBeanDB
* @param clazz
* @param bean
* @param updateNotNull
* @param optimisticLock
* @param filterColumns
* @param where
* @param args
* @return
*/
@UpdateProvider(type = MybatisSqlBeanProvider.class, method = "updateBy")
int updateBy(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("bean") T bean, @Param("updateNotNull") boolean updateNotNull, @Param("optimisticLock") boolean optimisticLock, @Param("filterColumns") Column[] filterColumns, @Param("where") String where, @Param("args") Object... args);
/**
* 根据实体类字段条件更新
*
* @param sqlBeanDB
* @param clazz
* @param bean
* @param updateNotNull
* @param optimisticLock
* @param filterColumns
* @param where
* @return
*/
@UpdateProvider(type = MybatisSqlBeanProvider.class, method = "updateByBean")
int updateByBean(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("bean") T bean, @Param("updateNotNull") boolean updateNotNull, @Param("optimisticLock") boolean optimisticLock, @Param("where") String where, @Param("filterColumns") Column[] filterColumns);
/**
* 插入数据
*
* @param sqlBeanDB
* @param clazz
* @param beanList
* @return
*/
@InsertProvider(type = MybatisSqlBeanProvider.class, method = "insertBean")
int insertBean(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("beanList") Collection beanList);
/**
* 插入数据
*
* @param sqlBeanDB
* @param clazz
* @param insert
* @return
*/
@InsertProvider(type = MybatisSqlBeanProvider.class, method = "insert")
int insert(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("insert") Insert insert);
/**
* 删除表
*
* @param clazz
* @return
*/
@UpdateProvider(type = MybatisSqlBeanProvider.class, method = "drop")
void drop(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz);
/**
* 创建表
*
* @param sqlBeanDB
* @param clazz
* @return
*/
@UpdateProvider(type = MybatisSqlBeanProvider.class, method = "create")
void create(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz);
/**
* 获取表名列表
*
* @param sqlBeanDB
* @param schema
* @param name
* @return
*/
@SelectProvider(type = MybatisSqlBeanProvider.class, method = "selectTableList")
List selectTableList(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("schema") String schema, @Param("name") String name);
/**
* 获取表名列表
*
* @param sqlBeanDB
* @param schema
* @param name
* @return
*/
@SelectProvider(type = MybatisSqlBeanProvider.class, method = "selectColumnInfoList")
List selectColumnInfoList(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("schema") String schema, @Param("name") String name);
/**
* 备份表和数据
*
* @param sqlBeanDB
* @param clazz
* @param wrapper
* @param targetTableName
* @param columns
* @return
*/
@InsertProvider(type = MybatisSqlBeanProvider.class, method = "backup")
int backup(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("wrapper") Wrapper wrapper, @Param("targetSchema") String targetSchema, @Param("targetTableName") String targetTableName, @Param("columns") Column[] columns);
/**
* 复制数据到指定表
*
* @param sqlBeanDB
* @param clazz
* @param wrapper
* @param targetTableName
* @param columns
* @return
*/
@InsertProvider(type = MybatisSqlBeanProvider.class, method = "copy")
int copy(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("clazz") Class> clazz, @Param("wrapper") Wrapper wrapper, @Param("targetSchema") String targetSchema, @Param("targetTableName") String targetTableName, @Param("columns") Column[] columns);
/**
* 执行Sql
*
* @param sql
* @return
*/
@UpdateProvider(type = MybatisSqlBeanProvider.class, method = "executeSql")
int executeSql(String sql);
/**
* 模式列表
*
* @param sqlBeanDB
* @param name
* @return
*/
@SelectProvider(type = MybatisSqlBeanProvider.class, method = "databases")
List databases(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("name") String name);
/**
* 创建模式
*
* @param sqlBeanDB
* @param name
* @return
*/
@UpdateProvider(type = MybatisSqlBeanProvider.class, method = "createSchema")
int createSchema(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("name") String name);
/**
* 删除模式
*
* @param sqlBeanDB
* @param name
* @return
*/
@UpdateProvider(type = MybatisSqlBeanProvider.class, method = "dropSchema")
int dropSchema(@Param("sqlBeanDB") SqlBeanDB sqlBeanDB, @Param("name") String name);
}