* 數據庫操作
*/
package database;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
/**
* @author Qutr
*
*/
public class DbConnection
{
private Connection dbConnection = null;
private Statement selectPro = null; //用於 select 操作
private Statement updatePro = null; //用於 update 操作
private ResultSet dbResultSet = null; //操作 select 結果集
private String driverName;//聲明MySql驅動類
private String dbHost;
private String dbPort;
private String dbName;
private String dbUserName;
private String dbPassword;
private String enCoding;
/**
* 實例化DbConnection對象
* @param host 數據庫主機(IP)
* @param port 數據庫端口
* @param dName 數據庫名稱
* @param uName 用戶名
* @param password 用戶密碼
*/
public DbConnection(String host, String port, String dName, String uName, String password)
{
driverName = "com.mysql.jdbc.Driver";
dbHost = host;
dbPort = port;
dbName = dName;
dbUserName = uName;
dbPassword = password;
enCoding = "?useUnicode=true&characterEncoding=gb2312&autoReconnect=true";
}//end DbConnection(...)
/**
* 連接數據庫
* @return 連接成功返回true,連接失敗返回false
*/
public boolean dbConnection()
{
StringBuilder urlTem = new StringBuilder();
urlTem.append("jdbc:mysql://");
urlTem.append(dbHost);
urlTem.append(":");
urlTem.append(dbPort);
urlTem.append("/");
urlTem.append(dbName);
urlTem.append(enCoding);
String url = urlTem.toString();
try
{
Class.forName(driverName).newInstance();
dbConnection = DriverManager.getConnection(url, dbUserName, dbPassword);
return true;
}catch(Exception e){
System.err.println("數據庫聯接失敗!");
System.out.println("url = " + url);
e.printStackTrace(); //得到詳細的出錯消息
return false;
}
}// end dbConnection()
public static void main(String[] args)
{
String dbHost = "localhost";
String dbPort = "3306";
String dbName = "test";
String dbUserName = "root";
String dbPassword = "";
DbConnection conn = new DbConnection(dbHost, dbPort, dbName, dbUserName, dbPassword);
boolean bool = conn.dbConnection();
if(!bool)
return;
String selectSql = "select user_name, ad from user_info where age = 23";
ArrayList<String> fieldsList = new ArrayList<String>();
fieldsList.add("user_name");
fieldsList.add("ad");
ArrayList<Map> userInfoList = conn.dbSelect(selectSql, fieldsList);
int infoSize = userInfoList.size();
String userName;
String ad;
if(infoSize == 0)
System.out.println("沒有選出符合條件的數據");
else{
for(int i = 0; i < infoSize; ++i){
userName = (String)userInfoList.get(i).get("user_name");
ad = (String)(((Map)userInfoList.get(i)).get("ad"));
System.out.println("userName = " + userName + " ad = " + ad);
}
}
}//end main(...)
conn.closeDatabase();
}//end calss DbConnection