zoukankan      html  css  js  c++  java
  • 封装类实现增删改查

    上一篇博客,可以看出每一个jsp页面都存在数据库访问代码;将连接代码和SQL语句暴露在页面中,不利于数据库安全;连接代码需要重复书写,不利于代码重用,影响程序复用性和软件的灵活性。因此,将数据库访问代码利用类封装起来,可以很好的避免这些问题。

    在Java Resources/src目录db_admin包下新建DBCon.java类,用于封装数据库的连接。

    DBCon类:

    package db_admin;
    
    import java.sql.*;
    
    public class DBCon {
        private String dbDriver = "com.mysql.jdbc.Driver";//定义连接数据库相关变量
        private String dbUrl = "jdbc:mysql://localhost:3306/book?useUnicode=true&characterEncoding=utf-8";
        private String dbUser = "root";
        private String dbPwd = "123456";
        private Connection conn = null;
        public Connection getConnection() {//完成Mysql数据库驱动的加载后进行数据库连接
            try {
                Class.forName(dbDriver);
                conn = DriverManager.getConnection(dbUrl,dbUser,dbPwd);
            }catch(ClassNotFoundException e) {
                e.printStackTrace();
            }catch(SQLException e) {
                e.printStackTrace();
            }
            return conn;
        }
        public ResultSet doQurey(String sql) {//实现查询操作
            ResultSet rs = null;
            conn = this.getConnection();
            try {
                Statement stmt = conn.createStatement();
                rs = stmt.executeQuery(sql);
            }catch(Exception e) {
                e.printStackTrace();
            }
            return rs;
        }
        public int doUpdate(String sql) {//实现更新操作
            int res = 0;
            conn = this.getConnection();
            try {
                Statement stmt = conn.createStatement();
                res = stmt.executeUpdate(sql);    
            }catch(Exception e) {
                e.printStackTrace();
            }
            return res;
        }
        public void close() throws SQLException{
            try {
                conn.close();//关闭相关对象,释放内存
            }catch(Exception e) {
                e.printStackTrace();
            }
        }
    }

    相应的查询代码更改为:

    <%@page import="java.sql.*,db_admin.*"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>查看数据库表中信息</title>
    </head>
    <body>
    <%
    DBCon dbc = new DBCon();//创建DBCon对象dbc,调用DBCon的构造函数进行数据库连接
    String sql = "select * from admin order by id";
    ResultSet rs = dbc.doQurey(sql);
    %>
    <table border="1">
    <%while(rs.next()){ %>
    <tr>
    <td><%= rs.getInt("id") %></td>
    <td><%= rs.getString("username") %></td>
    <td><%= rs.getString("password") %></td>
    <td><a href="do_delete.jsp?id=<%= rs.getInt("id")%>">删除</a></td>
    <td><a href="do_edit.jsp?id=<%= rs.getInt("id")%>">编辑</a></td>
    </tr>
    <%} %>
    </table>
    <a href="addAdmin.jsp">增加用户</a>
    </body>
    </html>

    其余的增删改查代码(上篇:脚本方式实现数据库的增删改查)做相应的改动,大大提高了性能和效率。

  • 相关阅读:
    Verilog非阻塞赋值的仿真/综合问题 (Nonblocking Assignments in Verilog Synthesis)上
    异步FIFO结构及FPGA设计 跨时钟域设计
    FPGA管脚分配需要考虑的因素
    An Introduction to Delta Sigma Converters (DeltaSigma转换器 上篇)
    An Introduction to Delta Sigma Converters (DeltaSigma转换器 下篇)
    中国通信简史 (下)
    谈谈德国大学的电子专业
    中国通信简史 (上)
    Verilog学习笔记
    Verilog非阻塞赋值的仿真/综合问题(Nonblocking Assignments in Verilog Synthesis) 下
  • 原文地址:https://www.cnblogs.com/Lia-633/p/7804295.html
Copyright © 2011-2022 走看看