您的位置:首页 > 数据库 > MySQL

通过JDBC连接mysql数据库,得到一个list,包含的是每一条数据的HashMap

2012-10-10 13:31 691 查看
package com.wangc;

import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

/**
* User: wangchao
* Date: 12-10-10 下午1:28
* Description: 通过JDBC连接mysql数据库,得到一个list,包含的是每一条数据的HashMap
*/
public class JdbcGetList {
//测试的数据
static String testUrl = "jdbc:mysql://192.168.0.101:3306/test";
static String testUserName = "wangc";
static String testPwd = "123456";

public static void main(String[] args) {
ex();
}

public static void ex() {
Connection testConn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
testConn = DriverManager.getConnection(testUrl, testUserName, testPwd);
if (!testConn.isClosed() ) {
System.out.println("数据库连接成功!");

String sql = "select * from my_table";
List list = getDataList(testConn,sql);
if(null!=list){
for(int i=0; i<list.size(); i++){
System.out.println(list.get(i));
}
}else{
System.out.println("list is null");
}

} else {
System.out.println("数据库连接失败!");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.out.println("com.mysql.jdbc.Driver not founded");
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
testConn.close();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("数据库关闭失败!!!");
}

}
}

public static List getDataList(Connection con, String sql){
List<HashMap> list = new ArrayList<HashMap>();
try {
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sql);

//获得数据的列标题
ResultSetMetaData rsmd = rs.getMetaData();
int count = rsmd.getColumnCount();
String[] name = new String[count];
for(int i=0; i<count; i++){
name[i] = rsmd.getColumnName(i+1);
}

rs.last();
int rows = rs.getRow(); //获取resultSet的大小
rs.beforeFirst();

while (rs.next()){
HashMap<String,String> hashMap = new HashMap<String, String>();
String tmp = rs.getString(1);
try{
for(int i=1; i<rows; i++){
hashMap.put(name[i-1], rs.getString(i));
}
}catch (Exception e){
list.add(hashMap);
}
}
} catch (SQLException e) {
System.out.println("method.getDateList.SQLException");
list = null;
e.printStackTrace();
}

return list;
}

}


最后是直接把每一个HashMap打印了出来,其实可以直接hashMap.get()来得到所关心的值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: