diff --git a/src/main/java/pres/auxiliary/tool/sql/AbstractSql.java b/src/main/java/pres/auxiliary/tool/sql/AbstractSql.java index d728df7..dcaacad 100644 --- a/src/main/java/pres/auxiliary/tool/sql/AbstractSql.java +++ b/src/main/java/pres/auxiliary/tool/sql/AbstractSql.java @@ -1,8 +1,58 @@ package pres.auxiliary.tool.sql; -public class AbstractSql { +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; - public AbstractSql() { +/** + *

文件名:AbstractSql.java

+ *

用途: + * 数据库工具基类,定义工具需要实现的基本方法以及通用方法 + *

+ *

编码时间:2020年12月7日上午8:12:04

+ *

修改时间:2020年12月7日上午8:12:04

+ * @author 彭宇琦 + * @version Ver1.0 + * @since JDK 1.8 + * + */ +public class AbstractSql { + /** + * 存储需要执行的SQL语句 + */ + StringBuilder sqlText = new StringBuilder(""); + + /** + * 数据库连接类对象 + */ + protected Connection connect; + protected Statement statement; + protected PreparedStatement preState; + + /** + * 用于返回当前需要执行的Sql语句 + * @return 需要执行的Sql语句 + */ + public String getSql() { + return sqlText.toString(); + } + + /** + * 用于执行存储SQL,并返回结果集({@link ResultSet})对象 + * @return {@link ResultSet}对象 + */ + public ResultSet run() { + try { + return connect.prepareStatement(sqlText.toString()).executeQuery(); + } catch (SQLException e) { + throw new DatabaseException(String.format("SQL无法执行。\nSQL:%s", sqlText.toString())); + } } + @Override + public String toString() { + return getSql(); + } } diff --git a/src/main/java/pres/auxiliary/tool/sql/OracleSql.java b/src/main/java/pres/auxiliary/tool/sql/OracleSql.java index 801b28d..0be5ae3 100644 --- a/src/main/java/pres/auxiliary/tool/sql/OracleSql.java +++ b/src/main/java/pres/auxiliary/tool/sql/OracleSql.java @@ -3,6 +3,8 @@ package pres.auxiliary.tool.sql; import java.sql.Driver; import java.sql.DriverManager; import java.sql.SQLException; +import java.util.ArrayList; +import java.util.LinkedHashMap; import java.util.Properties; import oracle.jdbc.driver.OracleDriver; @@ -20,11 +22,6 @@ import oracle.jdbc.driver.OracleDriver; * */ public class OracleSql extends AbstractSql { - /** - * 存储需要执行的SQL语句 - */ - StringBuilder sqlText = new StringBuilder(""); - /** * 构造方法,用于指定数据库基本信息 * @param username 用户名 @@ -52,5 +49,27 @@ public class OracleSql extends AbstractSql { throw new DatabaseException(String.format("Oracle数据库连接异常,连接信息:\n用户名:%s\n密码:%s\n连接url:%s", username, password, url), e); } } - + + public OracleSql type() { + + return this; + } + + /** + * 用于查找指定表名的数据,可指定输出的字段 + * @param tableName 表名 + * @param fieldNames 字段名 + */ + public OracleSql find(String tableName, String...fieldNames) { + sqlText.append("SELECT "); + + //添加字段名 + sqlText.append(""); + + sqlText.append(" "); + sqlText.append("FROM "); + sqlText.append(tableName); + + return this; + } } diff --git a/src/main/java/pres/auxiliary/tool/sql/SqlType.java b/src/main/java/pres/auxiliary/tool/sql/SqlType.java new file mode 100644 index 0000000..e580b06 --- /dev/null +++ b/src/main/java/pres/auxiliary/tool/sql/SqlType.java @@ -0,0 +1,10 @@ +package pres.auxiliary.tool.sql; + +public enum SqlType { + SELECT, + INSERT, + DELECT, + TRUNCATE, + UPDATE; + +}