All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.test4j.module.database.enviroment.DBEnvironment Maven / Gradle / Ivy

There is a newer version: 1.1.2
Show newest version
package org.test4j.module.database.enviroment;

import cn.org.atool.fluent.mybatis.metadata.DbType;
import org.test4j.functions.EConsumer;
import org.test4j.functions.EFunction;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public interface DBEnvironment {
    /**
     * 数据库类型
     *
     * @return DataSourceType
     */
    DbType getDbType();

    /**
     * 执行sql语句
     *
     * @param sql      sql
     * @param executor statement consumer
     */
    void execute(String sql, EConsumer executor);

    /**
     * 执行sql语句  bb
     *
     * @param statementEFunction statement function
     * @param executor           statement consumer
     */
    void execute(EFunction statementEFunction,
                 EConsumer executor);

    /**
     * 查询
     *
     * @param statementEFunction statement function
     * @param resultFunction     result function
     * @param                 结果类型
     * @return 结果
     */
     R query(EFunction statementEFunction,
                EFunction resultFunction);

    /**
     * 查询
     *
     * @param sql            sql
     * @param resultFunction result function
     * @param             结果类型
     * @return 查询结果
     */
     R query(String sql, EFunction resultFunction);

    /**
     * 获得数据表的元信息
     *
     * @param table table name
     * @return table meta
     */
    TableMeta getTableMetaData(String table);

    /**
     * 返回指定类型的默认值
     *
     * @param javaType java type name
     * @return default value
     */
    Object getDefaultValue(String javaType);

    /**
     * 将字符串类型转换为java对象
     *
     * @param input    string value
     * @param javaType java type
     * @return object of java type
     */
    Object toObjectValue(String input, String javaType);

    void commit();

    void rollback();

    /**
     * 用反义符将字段包裹起来
     *
     * @param column 字段名称
     * @return 包裹起来的字段
     */
    default String wrapper(String column) {
        return this.getDbType().wrap(column);
    }

    Object convertToSqlValue(Object value);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy