123
来源:互联网 发布:数据库高并发处理 编辑:程序博客网 时间:2024/06/04 19:38
package com.hzyc.lesson23.jdbc.redo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
public class JDBCTools {
//rs的缺点:只能使用一次,【***】不能关闭连接
//数据结构
/*public ArrayList<String> find(String sql, String[] columns) {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3308/hzyc18", "root", "mysql");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
//ArrayList<记录(多个列的值)> rsList = new ArrayList<记录(多个列的值)>();
ArrayList<String> rsList = new ArrayList<String>();
while (rs.next()) {
//每next一次,得到一行
String row = "";
for (int i = 0; i < columns.length; i++) {
String value = rs.getString(columns[i]);
row = row + value + " - ";
}
//把拼接好的row字符串,以元素的身份添加到list中
rsList.add(row);
}
rs.close();
stmt.close();
conn.close();
return rsList;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}*/
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
public ArrayList<HashMap<String, String>> find(String sql) {
ArrayList<HashMap<String, String>> rsList = null;
try {
rsList = new ArrayList<HashMap<String, String>>();
connect();
rs = stmt.executeQuery(sql);
//ArrayList<记录(多个列的值)> rsList = new ArrayList<记录(多个列的值)>();
//【****重点】:结果集结构对象
ResultSetMetaData rsmd = rs.getMetaData();
while (rs.next()) {
//每next一次,得到一行,一行想用一个map存储,所以next一次必须new一个Map
HashMap<String, String> onceMap = new HashMap<String, String>();
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
String value = rs.getString(rsmd.getColumnName(i));
//onceMap.put("列名", "列对应的值");
onceMap.put(rsmd.getColumnName(i), value);
}
//把存储好一行数据的Map,以元素的身份添加到list中
rsList.add(onceMap);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
//无论如何都要执行
close();
}
return rsList;
}
public void update(String sql) {
try {
connect();//1\2\3
stmt.executeUpdate(sql);
} catch (Exception e) {
e.printStackTrace();
} finally {
close();//5
}
}
private void connect() {
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3308/hzyc18", "root", "mysql");
stmt = conn.createStatement();
} catch (Exception e) {
e.printStackTrace();
}
}
private void close() {
try {
rs.close();
stmt.close();
conn.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
public class JDBCTools {
//rs的缺点:只能使用一次,【***】不能关闭连接
//数据结构
/*public ArrayList<String> find(String sql, String[] columns) {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3308/hzyc18", "root", "mysql");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
//ArrayList<记录(多个列的值)> rsList = new ArrayList<记录(多个列的值)>();
ArrayList<String> rsList = new ArrayList<String>();
while (rs.next()) {
//每next一次,得到一行
String row = "";
for (int i = 0; i < columns.length; i++) {
String value = rs.getString(columns[i]);
row = row + value + " - ";
}
//把拼接好的row字符串,以元素的身份添加到list中
rsList.add(row);
}
rs.close();
stmt.close();
conn.close();
return rsList;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}*/
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
public ArrayList<HashMap<String, String>> find(String sql) {
ArrayList<HashMap<String, String>> rsList = null;
try {
rsList = new ArrayList<HashMap<String, String>>();
connect();
rs = stmt.executeQuery(sql);
//ArrayList<记录(多个列的值)> rsList = new ArrayList<记录(多个列的值)>();
//【****重点】:结果集结构对象
ResultSetMetaData rsmd = rs.getMetaData();
while (rs.next()) {
//每next一次,得到一行,一行想用一个map存储,所以next一次必须new一个Map
HashMap<String, String> onceMap = new HashMap<String, String>();
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
String value = rs.getString(rsmd.getColumnName(i));
//onceMap.put("列名", "列对应的值");
onceMap.put(rsmd.getColumnName(i), value);
}
//把存储好一行数据的Map,以元素的身份添加到list中
rsList.add(onceMap);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
//无论如何都要执行
close();
}
return rsList;
}
public void update(String sql) {
try {
connect();//1\2\3
stmt.executeUpdate(sql);
} catch (Exception e) {
e.printStackTrace();
} finally {
close();//5
}
}
private void connect() {
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3308/hzyc18", "root", "mysql");
stmt = conn.createStatement();
} catch (Exception e) {
e.printStackTrace();
}
}
private void close() {
try {
rs.close();
stmt.close();
conn.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
阅读全文
0 0
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 123
- 实战物料主数据(MM01/MM02/MM03)屏幕增强 .
- SpringMVC中@ResponseBody的使用(异步)
- Topo和Markdown在项目中的实践
- 一维搜索方法(一)黄金分割法
- Class.forName()用法详解
- 123
- 图像分析:阶段总结
- TQ2440 基于V4L2编程框架的 LCD实时显示(下)
- android 四种跨进程通讯方式
- Yii
- centos7 apache httpd安装和配置django项目
- 有关于100动态规划专栏的说明
- Tomcat 综述
- 运算符重载