java简单封装resultMap返回对象为map
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
java简单封装resultMap返回对象为map public class DbUtils {
private static String host = "47.93.******";
private static String port = "3306";
private static String username = "*****";
private static String password = "******";
private static String database = "******";
static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e) {
}
}
private static Connection getConn() {
Connection conn = null;
try {
String url = "jdbc:mysql://" + host + ":" + port + "/" + database;
conn = DriverManager.getConnection(url, username, password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
public static List<Map<String, Object>> execQuery(String sql, Object[] args) throws Exception {
Connection conn = getConn();
PreparedStatement ps = conn.prepareCall(sql);
ResultSet rs = null;
int count = StringUtils.countMatches(sql, "?");
//变量赋值。
for (int i = 0; i < count; i++) {
ps.setObject(i, args[i]);
}
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
rs = ps.executeQuery();
ResultSetMetaData metaData = rs.getMetaData();
//注意。
metaData.getColumnName 获取字段名,rs.getObject 获取属性是从 1 开始的,⽽不是从0 开始while (rs.next()) {
int rowSize = metaData.getColumnCount();
Map<String, Object> map = new HashMap<>();
for (int i = 1; i <= rowSize; i++) {
String labelName = metaData.getColumnName(i);
Object obj = rs.getObject(labelName);
map.put(labelName, obj);
}
list.add(map);
}
close(conn, ps, rs);
return list;
}
/**
* @param conn
* @param ps
* @param rs
* @throws Exception
*/
private static void close(Connection conn, PreparedStatement ps, ResultSet rs) throws Exception {
rs.close();
ps.close();
conn.close();
}。