improve JdbcUtils

This commit is contained in:
wenshao
2012-08-15 10:20:07 +08:00
parent 5e5cd4b4d1
commit edd164db58
3 changed files with 151 additions and 3 deletions
@@ -275,7 +275,7 @@ public class MappingEngine {
int updateCount = JdbcUtils.executeUpdate(conn, rawSql, context.getParameters());
return updateCount;
}
public void insert(Connection conn, String sql, Object... parameters) throws SQLException {
insert(conn, sql, Arrays.asList(parameters));
}
@@ -311,7 +311,7 @@ public class MappingEngine {
JdbcUtils.close(conn);
}
}
public int delete(String sql, Object... parameters) throws SQLException {
return delete(sql, Arrays.asList(parameters));
}
@@ -335,7 +335,35 @@ public class MappingEngine {
JdbcUtils.close(conn);
}
}
public void insertToTable(String tableName, Map<String, Object> map) throws SQLException {
StringBuilder sql = new StringBuilder() //
.append("insert into ") //
.append(tableName) //
.append("("); //
int nameCount = 0;
for (String name : map.keySet()) {
if (nameCount > 0) {
sql.append(",");
}
sql.append(name);
nameCount++;
}
sql.append(") values (");
for (int i = 0; i < nameCount; ++i) {
if (i != 0) {
sql.append(",");
}
sql.append("?");
}
sql.append(")");
List<Object> parameters = new ArrayList<Object>(map.values());
insert(sql.toString(), parameters);
}
public void insert(String sql, Object... parameters) throws SQLException {
insert(sql, Arrays.asList(parameters));
}
@@ -30,6 +30,7 @@ import java.sql.Statement;
import java.sql.Types;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Enumeration;
import java.util.LinkedHashMap;
import java.util.List;
@@ -509,6 +510,10 @@ public final class JdbcUtils {
throw new SQLException(e.getMessage(), e);
}
}
public static int executeUpdate(DataSource dataSource, String sql, Object... parameters) throws SQLException {
return executeUpdate(dataSource, sql, Arrays.asList(parameters));
}
public static int executeUpdate(DataSource dataSource, String sql, List<Object> parameters) throws SQLException {
Connection conn = null;
@@ -565,6 +570,11 @@ public final class JdbcUtils {
}
}
public static List<Map<String, Object>> executeQuery(DataSource dataSource, String sql, Object... parameters)
throws SQLException {
return executeQuery(dataSource, sql, Arrays.asList(parameters));
}
public static List<Map<String, Object>> executeQuery(DataSource dataSource, String sql, List<Object> parameters)
throws SQLException {
Connection conn = null;
@@ -639,4 +649,47 @@ public final class JdbcUtils {
return null;
}
}
public static void insertToTable(DataSource dataSource, String tableName, Map<String, Object> data)
throws SQLException {
Connection conn = null;
try {
conn = dataSource.getConnection();
insertToTable(conn, tableName, data);
} finally {
close(conn);
}
}
public static void insertToTable(Connection conn, String tableName, Map<String, Object> data) throws SQLException {
String sql = makeInsertToTableSql(tableName, data.keySet());
List<Object> parameters = new ArrayList<Object>(data.values());
execute(conn, sql, parameters);
}
public static String makeInsertToTableSql(String tableName, Collection<String> names) {
StringBuilder sql = new StringBuilder() //
.append("insert into ") //
.append(tableName) //
.append("("); //
int nameCount = 0;
for (String name : names) {
if (nameCount > 0) {
sql.append(",");
}
sql.append(name);
nameCount++;
}
sql.append(") values (");
for (int i = 0; i < nameCount; ++i) {
if (i != 0) {
sql.append(",");
}
sql.append("?");
}
sql.append(")");
return sql.toString();
}
}