class MySqlClasses {//数据库连接类
private Connection conn = null;
private Statement st = null;
private ResultSet rs = null;
public MySqlClasses(String databaseName, String userName, String password) {
try {
// 写入驱动所在处,打开驱动
Class.forName("com.mysql.jdbc.Driver").newInstance();
// 数据库,用户,密码,创建与具体数据库的连接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/"
+ databaseName + "?useUnicode=true&characterEncoding=GBK",
userName, password);
// 创建执行sql语句的对象
st = conn.createStatement();
} catch (Exception e) {
// javax.swing.JOptionPane.showMessageDialog(null,"连接失败"+e.toString());
}
}
public String[] query(String sqlStatement, int n) {
String result = "";
try {
ResultSet rs = st.executeQuery(sqlStatement);
List<String> list = new ArrayList<String>();// 创建取结果的列表,之所以使用列表,不用数组,因为现在还不知道结果有多少,不能确定数组长度,所有先用list接收,然后转为数组
while (rs.next()) {// 如果有数据,取第一列添加如list
list.add(rs.getString(n));
}
if (list != null && list.size() > 0) {// 如果list中存入了数据,转化为数组
String[] arr = new String[list.size()];// 创建一个和list长度一样的数组
for (int i = 0; i < list.size(); i++) {
arr[i] = list.get(i);// 数组赋值了。
}
rs.close();
return arr;
}
} catch (Exception e) {
// javax.swing.JOptionPane.showMessageDialog(null,"查询失败"+e.toString());
return null;
}
return null;
}
public int query(String sqlStatement) {
int row = 0;
try {
row = st.executeUpdate(sqlStatement);
this.close();
return row;
} catch (Exception e) {
javax.swing.JOptionPane.showMessageDialog(null,
"执行sql语句失败" + e.toString());
this.close();
return row;
}
}
public void close() {
try {
this.rs.close();
this.st.close();
this.conn.close();
} catch (Exception e) {
// javax.swing.JOptionPane.showMessageDialog(null,"关闭数据库连接失败"+e.toString());
}
}
}