import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class CMySQL {
private Connection conn;
public CMySQL(String sWhere,String sAccount,String sPWD)
{
connect(sWhere,sAccount,sPWD);
}
public void finalize()
{
shutdown();
}
private void connect(String sWhere,String sAccount,String sPWD)
{
try
{
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(sWhere,sAccount,sPWD);
}catch(Exception ex)
{
ex.printStackTrace();
}
}
public boolean executeUpdate(String strSQL)
{
boolean bR=true;
try{
Statement stmt = conn.createStatement();
stmt.executeUpdate(strSQL);
}catch(SQLException ex)
{
ex.printStackTrace();
bR=false;
}
return bR;
}
public List> executeQuery(String strSQL)
{
List> list=new ArrayList>();
ResultSet rs;
try{
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(strSQL);
if(rs.next())
{
ResultSetMetaData rsm = rs.getMetaData();
List colNames = new ArrayList();
for(int i=1;i<=rsm.getColumnCount();i++)
colNames.add(rsm.getColumnName(i));
do{
Map map=new HashMap();
for(Iterator it=colNames.iterator();it.hasNext();)
{
String colName=it.next();
map.put(colName, rs.getString(colName));
}
list.add(map);
}while(rs.next());
rs.close();
}
}catch(SQLException ex)
{
ex.printStackTrace();
}
return list;
}
public void testResult(List> list)
{
for(Iterator> it=list.iterator();it.hasNext();)
{
System.out.println(it.next());
}
}
private void shutdown()
{
try
{
conn.close();
}catch(SQLException ex)
{
ex.printStackTrace();
}
}
public static void main(String args[])
{
try {
//step1:test open&close
CMySQL db=new CMySQL("jdbc:mysql://localhost:3306/mysql", "root", "12345678");
//step2:test query with return
List> list=db.executeQuery("select * from babywatch");
db.testResult(list);
//step3:test query with no return
Map map=list.get(0);
db.executeUpdate("UPDATE babywatch SET LastTime = NOW() WHERE babywatch_id = " + map.get("babywatch_id").toString());
}catch(Exception ex)
{
ex.printStackTrace();
}
}
}