• 封装类实现增删改查


    上一篇博客,可以看出每一个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>

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

  • 相关阅读:
    Jenkins构建.NetFramework项目
    【转】linux docker 中实现某些程序段开机自启动
    SQL SERVER之查询 未创建索引的外键 和 所有外键及索引
    进入蓝牙协议开发领域外加ELink电子标签开发
    WPF DevExpress中GridControl动态修改行背景颜色 借用的
    新中新身份证阅读器 无法加载 DLL“SynIDCardAPI.dll”: 找不到指定的程序。 (异常来自 HRESULT:0x8007007F)。
    VS项目删除Git、不想用Git、
    Android 生成二维码
    [WPF 学习] 20. 增量更新续——用阿里云对象存储OSS
    RabbitMQ安装
  • 原文地址:https://www.cnblogs.com/Lia-633/p/7804295.html
Copyright © 2020-2023  润新知