第6章-JDBC访问数据库技术(3)-封装类实现.pptxVIP

  • 11
  • 0
  • 约1.34千字
  • 约 18页
  • 2018-04-26 发布于福建
  • 举报

第6章-JDBC访问数据库技术(3)-封装类实现.pptx

第6章 JDBC 数据库访问技术 6.1 JDBC基础知识6.2 脚本方式实现数据库增删改查6.3 封装类实现增删改查6.4 脚本方式实现分页6.5 预编译进行数据库的增删改查6.6 连接池的使用6.7 调用存储过程6.8 JDBC事务6.3 封装类实现增删改查 在上一节数据库操作中需要在JSP页面完成 关闭与数据库的连接,若不关闭连接,在等待页实例被垃圾回收处理期间可能会导致数据库连接超过连接限制,且将代码放在页面中,不利于扩展及连接的共享,性能低,将连接字符串、SQL语句暴露在页面中不利于数据库的安全,连接代码需要重复书写,不利于代码重用等不利因素,影响程序的复用性和软件的灵活性。因此将数据库连接访问代码封装在类中,可以避免以上问题。新建一个Dynamic Web Project 名为 hello6,将MySQl数据库驱动文件复制到WebContent/web-inf/lib目录中,在Java Resources/src下目录cap.db下新建一个类DBCon.java,用于封装数据库连接。主要代码如下:package cap.db;import java.sql.*;ublic class DBCon {//数据库连接字符串的定义 private String driver=com.mysql.jdbc.Driver; private String url=jdbc:mysql://127.0.0.1:3306/cap; private String user=root; private String pass=admin; private Connection conn=null;{//数据库查询public ResultSet doQuery(String sql){ conn=this.getConnection(); Statement stmt= null; ResultSet rs=null; try { stmt = conn.createStatement(); rs=stmt.executeQuery(sql); } catch (SQLException e) { e.printStackTrace(); } return rs; }//数据库连接public Connection getConnection(){try {Class.forName(driver); conn=DriverManager.getConnection(url,user,pass); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace();} return conn; }//数据库更新public int doUpdate(String sql){ conn=this.getConnection(); Statement stmt= null; int res=0; try { stmt = conn.createStatement();res=stmt.executeUpdate(sql); } catch (SQLException e) { e.printStackTrace(); } return res; }//关闭 public void close(){ if(conn!=null) try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } }}新建JSP页,如do_query.jsp、 do_edit.jsp、 do_insert.jsp、 do_update.jsp、 addAdmin.jsp、 do_delete.jsp等(或从hello5种复制过来再修改主要代码)。各个JSP页面部分代码为: (1) do_query.jsp %@ page import=cap.db.*,java.sql.*%body%request.setCharacterEncoding(UTF-8); DBCon dbc = new DBCon(); String sql = select * from admin order by id; ResultSet rs = dbc.doQuery(sql);%table% while (rs.next()) { %tr td%=rs.getInt(id)% /tdtd%=rs.getString(username)% /td td%=rs.getString(password)%/td td a href=“do_del

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档