浏览 3123 次
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-04-19
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * 用于JDBC操作 * * @author 沙琪玛 */ public class ByteJDBC { private String driverName = "oracle.jdbc.driver.OracleDriver"; private String url = ""; private String userName = ""; private String userPwd = ""; /** * 删除单条数据 * * @param tableName * 表名 * @param idName * idName名称 * @param idValue * idValue值 */ public void deleteById(String tableName, String idName, String idValue) { String sql = "delete from " + tableName + " where " + idName + "='" + idValue + "'"; doSQL(sql); } /** * 执行SQL(查询) 并且返回生成结果集表格 * * @return String */ public String selectSQL(String selectSQL) { Connection conn = null; Statement st = null; ResultSet rs = null; // 用来存放查询的结果 StringBuffer sb = new StringBuffer(); try { // 加载驱动 Class.forName(driverName); // 创建连接 conn = DriverManager.getConnection(url, userName, userPwd); // 创建Statement st = conn.createStatement(); // 执行sql语句,得到查询结果 rs = st.executeQuery(selectSQL); // 输出查询结果 int cloNum = rs.getMetaData().getColumnCount(); sb.append("<tr class=\"th\">"); for (int i = 0; i < cloNum; i++) { sb.append("<td>"); sb.append(rs.getMetaData().getColumnName(i + 1)); sb.append("</td>"); } sb.append("</tr>"); while (rs.next()) { sb.append("<tr>"); for (int i = 0; i < cloNum; i++) { sb.append("<td>"); sb.append(rs.getString(i + 1)); sb.append("</td>"); } sb.append("</tr>"); } // 关闭资源 rs.close(); st.close(); conn.close(); } catch (Exception ex) { // 输出错误信息 ex.printStackTrace(); } finally { // finally子句总是会执行(就算发生错误),这样可以保证资源的绝对关闭 try { if (rs != null) rs.close(); } catch (SQLException e) { e.printStackTrace(); } try { if (st != null) st.close(); } catch (SQLException e) { e.printStackTrace(); } try { if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } return sb.toString(); } /** * 执行sql语句(修改、删除,插入) */ public void doSQL(String sqlStr) { Connection conn = null; Statement st = null; try { // 加载驱动 Class.forName(driverName); // 创建连接 conn = DriverManager.getConnection(url, userName, userPwd); // 创建Statement st = conn.createStatement(); // 执行sql语句,得到查询结果 st.execute(sqlStr); // 关闭资源 st.close(); conn.close(); } catch (Exception ex) { // 输出错误信息 ex.printStackTrace(); } finally { // finally子句总是会执行(就算发生错误),这样可以保证资源的绝对关闭 try { if (st != null) st.close(); } catch (SQLException e) { e.printStackTrace(); } try { if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-04-20
建议将数据库建立连接和关闭资源分别写成两个方法。
|
|
返回顶楼 | |
发表时间:2010-04-20
一声叹息
|
|
返回顶楼 | |
发表时间:2010-04-20
雏......
|
|
返回顶楼 | |
发表时间:2010-04-20
我是看到标题过来的,结果居然。。。。
|
|
返回顶楼 | |
发表时间:2010-04-20
vivia 写道 我是看到标题过来的,结果居然。。。。
我也是。。 |
|
返回顶楼 | |
发表时间:2010-04-20
初学者真的不适合 误人子弟
每次操作都会去创建CONNECTION ,这非常要命 没有连接池 , 没有反射, 没有动态代理 , 什么都没有 刚毕业的都可能比这好, 我一大早上看个这贴 .. |
|
返回顶楼 | |
发表时间:2010-04-20
tonyruiyu 写道 初学者真的不适合 误人子弟
每次操作都会去创建CONNECTION ,这非常要命 没有连接池 , 没有反射, 没有动态代理 , 什么都没有 刚毕业的都可能比这好, 我一大早上看个这贴 .. 确实很悲剧~ |
|
返回顶楼 | |