zoukankan      html  css  js  c++  java
  • [Jweb] 数据库处理以及在 Servlet 中使用 Bean

    * 数据库处理以及在 Servlet 中使用 Bean *

    Know@05   Servlet 如何连接数据库

    bbs.sql
    create database bbs;
    use bbs;
    set names gbk; -- 解决乱码问题
    drop table if exists article;
    示例程序 : ShowRs.java

    Know@06   在 Servlet 中使用 Java_Bean
    广义javabean = 普通java类
    狭义javabean = 符合Sun JavaBean标准的类 
            (为了在图形化界面编程的组件可以捞来捞去而提出的javabean的概念,按标准规则来写)
    在Servlet中使用Bean和在通常程序中使用Bean类似
    *1), 属性名称第一个字母必须小写,一般private, 比如:private productId
    *2), 一般具有getters and setters
    *3), 要具有一个参数为空的构造方法
    *4), 但Bean不应具有GUI表现
    *5), 一般是用来实现某一业务逻辑或取得特定结果

    将数据库操作封装成一个类DB (非常好的思路,但是这个还封装得不够好)。
    示例 : ShowRsUseBean.java
          java适合做中间件,但是不太适合开发图形化的程序,但是也有用开发的。
    ShowRs.java
    import javax.servlet.*;
    import javax.servlet.http.*;
    
    import java.io.*;
    import java.sql.*;
    //1.仔细检查连接串。
    //2.确认有没有这个表
    //3.如果出错了。先去后台看报错的信息。
    //4.确认mysql已经启动了。
    //5.把jdbc的驱动拷贝到tomcat
    
    public class ShowRs extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest request,
                HttpServletResponse response) throws ServletException, IOException {
    
            Connection conn = null;
            Statement stmt = null;
            ResultSet rs = null;
    
            response.setContentType("text/html");
            response.setCharacterEncoding("gb2312"); // 分开写也不错!
            PrintWriter out = response.getWriter();
    
            out.println("<table border=1>");
            out.println("<tr><td>Content:</td></tr>");
            try {
                Class.forName("com.mysql.jdbc.Driver");
                conn = DriverManager
                        .getConnection("jdbc:mysql://localhost/bbs?user=root&password=root");
                stmt = conn.createStatement();
                rs = stmt.executeQuery("select * from article");
                while (rs.next()) {
                    out.println("<tr>");
                    out.println("<td>" + rs.getString("cont") + "</td>");
                    out.println("</tr>");
                }
                out.println("</table>");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (rs != null) {
                        rs.close();
                        rs = null;
                    }
                    if (stmt != null) {
                        stmt.close();
                        stmt = null;
                    }
                    if (conn != null) {
                        conn.close();
                        conn = null;
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    
    }
    
    DB.java
    import java.sql.*;
    
    public class DB {
        public static Connection getConn() {
            Connection conn = null;
            try {
                Class.forName("com.mysql.jdbc.Driver");
                conn = DriverManager.getConnection("jdbc:mysql://localhost/bbs?user=root&password=root");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            
            return conn;
        }
        
        public static Statement getStatement(Connection conn) {
            Statement stmt = null; 
            try {
                if(conn != null) {
                    stmt = conn.createStatement();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return stmt;
        }
        
        public static ResultSet getResultSet(Statement stmt, String sql) {
            ResultSet rs = null;
            try {
                if(stmt != null) {
                    rs = stmt.executeQuery(sql);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return rs;
        }
        
        public static void closeConn(Connection conn) {
            try {
                if(conn != null) {
                    conn.close();
                    conn = null;
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
        public static void closeStmt(Statement stmt) {
            try {
                if(stmt != null) {
                    stmt.close();
                    stmt = null;
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
        public static void closeRs(ResultSet rs) {
            try {
                if(rs != null) {
                    rs.close();
                    rs = null;
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    
    ShowRsUseBean.java
    import javax.servlet.*;
    import javax.servlet.http.*;
    
    import java.io.*;
    import java.sql.*;
    
    public class ShowRsUseBean extends HttpServlet {
    
        @Override
        protected void doGet(HttpServletRequest request,
                HttpServletResponse response) throws ServletException, IOException {
    
            response.setContentType("text/html");
            response.setCharacterEncoding("gb2312");
            PrintWriter out = response.getWriter();
    
            out.println("<table border=1>");
            out.println("<tr><td>Content:</td></tr>");
    
            Connection conn = DB.getConn();
            Statement stmt = DB.getStatement(conn);
            String sql = "select * from t";
            ResultSet rs = DB.getResultSet(stmt, sql);
            try {
                while (rs.next()) {
                    out.println("<tr>");
                    out.println("<td>" + rs.getString("title") + "</td>");
                    out.println("</tr>");
                }
                out.println("</table>");
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
    
                DB.closeRs(rs);
                DB.closeStmt(stmt);
                DB.closeConn(conn);
            }
        }
    }
    



  • 相关阅读:
    精确率、召回率、F1 值、ROC、AUC 各自的优缺点是什么?
    使用sklearn做单机特征工程
    机器学习算法比较
    CNN-卷积层和池化层学习
    卷积神经网络概念与原理
    CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)概念区分理解
    技能|三次简化一张图:一招理解LSTM/GRU门控机制
    【转】TensorFlow四种Cross Entropy算法实现和应用
    http://blog.csdn.net/u014595019/article/details/52805444
    神经网络和深度学习简史(三)
  • 原文地址:https://www.cnblogs.com/robbychan/p/3786867.html
Copyright © 2011-2022 走看看