com.ecfront.easybi.dbutils.exchange.DB Maven / Gradle / Ivy
package com.ecfront.easybi.dbutils.exchange;
import com.ecfront.easybi.dbutils.inner.ConnectionWrap;
import com.ecfront.easybi.dbutils.inner.DBExecutor;
import com.ecfront.easybi.dbutils.inner.DSLoader;
import com.ecfront.easybi.dbutils.inner.Transaction;
import com.ecfront.easybi.dbutils.inner.dialect.Dialect;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.Reader;
import java.sql.Clob;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
/**
* 数据操作类
*/
public class DB {
/**
* 创建表
*
* @param tableName 表名
* @param fields 表字段
* @param pk 主键名
*/
public void createTableIfNotExist(String tableName, Map fields, String pk) throws SQLException {
DBExecutor.ddl(getDialect(dsCode).createTableIfNotExist(tableName, fields, pk), getConnection(dsCode), isCloseConnection());
}
/**
* DDL操作
*
* @param ddl DDL语句
*/
public void ddl(String ddl) throws SQLException {
DBExecutor.ddl(ddl, getConnection(dsCode), isCloseConnection());
}
/**
* 获取单条记录
*
* @param tableName 表名
* @param pkValue 主键值
* @param clazz 对象类
* @return java对象
*/
public E getObjectByPk(String tableName, Object pkValue, Class clazz) throws SQLException {
return getObject("SELECT * FROM " + tableName + " WHERE id= ?", new Object[]{pkValue}, clazz);
}
/**
* 获取单个对象
*
* @param sql SQL
* @param clazz 对象类
* @return java对象
*/
public E getObject(String sql, Class clazz) throws SQLException {
return getObject(sql, null, clazz);
}
/**
* 获取单个对象
*
* @param sql SQL
* @param params 参数
* @param clazz 对象类
* @return java对象
*/
public E getObject(String sql, Object[] params, Class clazz) throws SQLException {
return DBExecutor.get(sql, params, clazz, getConnection(dsCode), isCloseConnection());
}
/**
* 获取多个对象
*
* @param sql SQL
* @param clazz 对象类
* @return java对象
*/
public List findObjects(String sql, Class clazz) throws SQLException {
return findObjects(sql, null, clazz);
}
/**
* 获取多个对象
*
* @param sql SQL
* @param params 参数
* @param clazz 对象类
* @return java对象
*/
public List findObjects(String sql, Object[] params, Class clazz) throws SQLException {
return DBExecutor.find(sql, params, clazz, getConnection(dsCode), isCloseConnection());
}
/**
* 获取多个对象(带分页)
*
* @param sql SQL
* @param pageNumber 页码(从1开始)
* @param pageSize 每页条数
* @param clazz 对象类
* @return 多个对象(带分页)
*/
public Page findObjects(String sql, long pageNumber, long pageSize, Class clazz) throws SQLException {
return findObjects(sql, null, pageNumber, pageSize, clazz);
}
/**
* 获取多个对象(带分页)
*
* @param sql SQL
* @param params 参数
* @param pageNumber 页码(从1开始)
* @param pageSize 每页条数
* @param clazz 对象类
* @return 多个对象(带分页)
*/
public Page findObjects(String sql, Object[] params, long pageNumber, long pageSize, Class clazz) throws SQLException {
return DBExecutor.find(sql, params, pageNumber, pageSize, clazz, getConnection(dsCode), isCloseConnection(), getDialect(dsCode));
}
/**
* 获取单条记录
*
* @param tableName 表名
* @param pkValue 主键值
* @return 单条记录
*/
public Map getByPk(String tableName, Object pkValue) throws SQLException, IOException {
return get("SELECT * FROM " + tableName + " WHERE id= ?", new Object[]{pkValue});
}
/**
* 获取单条记录
*
* @param sql SQL
* @return 单条记录
*/
public Map get(String sql) throws SQLException, IOException {
return get(sql, null);
}
/**
* 获取单条记录
*
* @param sql SQL
* @param params 参数
* @return 单条记录
*/
public Map get(String sql, Object[] params) throws SQLException, IOException {
return DBExecutor.get(sql, params, getConnection(dsCode), isCloseConnection());
}
/**
* 删除单条记录
*
* @param tableName 表名
* @param pkValue 主键值
* @return 单条记录
*/
public Integer deleteByPk(String tableName, Object pkValue) throws SQLException {
return update("DELETE FROM " + tableName + " WHERE id= ?", new Object[]{pkValue});
}
/**
* 删除所有记录
*
* @param tableName 表名
* @return 单条记录
*/
public Integer deleteAll(String tableName) throws SQLException {
return update("DELETE FROM " + tableName, null);
}
/**
* 获取多条记录(带分页)
*
* @param sql SQL
* @return 多条记录(带分页)
*/
public List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy