如何用facade模式数据库进行查询??? 如题,写出代码,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 package lihan;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;/* * 外观模式的主要用途就是为子系统的复杂处理过程提供方便的调用方法, * 使得子系统更加容易被使用。 * Facade对象通常属于Singleton模式。*/public class Mysql { private static Connection conn=null; private static PreparedStatement prep=null; public Mysql(String sql) { try { Class.forName("com.mysql.jdbc.Driver").newInstance(); conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root",""); prep = conn.prepareStatement(sql); } catch (Exception e) { e.printStackTrace(); } } public void setString(int index, String parString) { try { prep.setString(index, parString); } catch (SQLException e) { e.printStackTrace(); } } public ResultSet executeQuery() { try { return prep.executeQuery(); } catch (SQLException e) { e.printStackTrace(); return null; } } public void close() { try { conn.close(); prep.close(); } catch (SQLException e) { e.printStackTrace(); } }} package lihan;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;public class DBCompare { public void getResultSet(String sql) {// String sql = "SELECT * FROM bulletin WHERE id = ?"; Mysql mysql = new Mysql(sql); try { mysql.setString(1, "4"); ResultSet rset = mysql.executeQuery(); while (rset.next()) { System.out.println(rset.getString("id")); } } catch (Exception e) { e.printStackTrace(); } finally { mysql.close(); mysql = null; } }}package lihan;import java.sql.ResultSet;public class FacadeTest { public static void main(String[] args) { Mysql mysql = new Mysql("SELECT * FROM bulletin"); try { ResultSet rset = mysql.executeQuery(); while (rset.next()) { System.out.println(rset.getString("id")); } } catch (Exception e) { e.printStackTrace(); } finally { mysql.close(); mysql = null; } }} 不错,lihan兄弟写的不错楼主参考一下吧 死锁的演示代码,为何无法运行 我要让这个程序在12点整,开始自动运行线程,应该怎么改,请大家帮帮我 急!!!高手请帮忙!!! 怎样在jtable的单元格中画一条对角线? 一个小的类初始化问题 关于多sql语句执行操作,有一条出现错误做回滚操作的问题 如何获得客户端IP地址?在线等 如何获得数据集的记录数 2000与unix做服务器对Applet有什么影响??? 小弟在写MIS的東西,请大家介绍一下写SQL语句的经验!!!!!! UDP服务下发问题 怎么在java中设置系统时区
package lihan;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/*
* 外观模式的主要用途就是为子系统的复杂处理过程提供方便的调用方法,
* 使得子系统更加容易被使用。
* Facade对象通常属于Singleton模式。
*/
public class Mysql {
private static Connection conn=null;
private static PreparedStatement prep=null; public Mysql(String sql) {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root","");
prep = conn.prepareStatement(sql);
} catch (Exception e) {
e.printStackTrace();
}
} public void setString(int index, String parString) {
try {
prep.setString(index, parString);
} catch (SQLException e) {
e.printStackTrace();
}
} public ResultSet executeQuery() {
try {
return prep.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
return null;
}
} public void close() {
try {
conn.close();
prep.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
package lihan;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;public class DBCompare { public void getResultSet(String sql) {
// String sql = "SELECT * FROM bulletin WHERE id = ?";
Mysql mysql = new Mysql(sql);
try {
mysql.setString(1, "4");
ResultSet rset = mysql.executeQuery();
while (rset.next()) {
System.out.println(rset.getString("id"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
mysql.close();
mysql = null;
}
}
}
package lihan;import java.sql.ResultSet;public class FacadeTest { public static void main(String[] args) {
Mysql mysql = new Mysql("SELECT * FROM bulletin");
try {
ResultSet rset = mysql.executeQuery();
while (rset.next()) {
System.out.println(rset.getString("id"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
mysql.close();
mysql = null;
}
}}