zoukankan      html  css  js  c++  java
  • JDBC连接数据库(Servlet+JSP)

      JDBC(Java Database connectivity),是连接数据库的一种方式。后面的框架Mybatis和Hibernate等都封装的是JDBC。在JDBC中常用的API有4个:DriverManager、Connection、Statement、ResultSet。

    代码演示:

      首先要导入jar包: jstl_el、jstl-1.2_1、mysql-5.1.10

    User.java

     1 public class User {
     2     private int id;
     3     private String age;
     4     private String name;
     5 
     6     public int getId() {
     7         return id;
     8     }
     9 
    10     public void setId(int id) {
    11         this.id = id;
    12     }
    13 
    14     public String getAge() {
    15         return age;
    16     }
    17 
    18     public void setAge(String age) {
    19         this.age = age;
    20     }
    21 
    22     public String getName() {
    23         return name;
    24     }
    25 
    26     public void setName(String name) {
    27         this.name = name;
    28     }
    29 }

    QueryServlet.java

      1 package cn.woo.servlet;
      2 
      3 import java.io.IOException;
      4 import java.sql.ResultSet;
      5 import java.sql.SQLException;
      6 import java.util.ArrayList;
      7 import java.util.List;
      8 
      9 import javax.servlet.ServletException;
     10 import javax.servlet.http.HttpServlet;
     11 import javax.servlet.http.HttpServletRequest;
     12 import javax.servlet.http.HttpServletResponse;
     13 
     14 import cn.woo.entity.User;
     15 import cn.woo.util.DBUtil;
     16 
     17 /**
     18  * 类说明:接收请求的Servlet
     19  * 
     20  * @author wyh
     21  * @version 创建时间:2018年8月23日 下午2:46:29
     22  */
     23 public class QueryServlet extends HttpServlet {
     24 
     25     /**
     26      * 
     27      */
     28     private static final long serialVersionUID = 1L;
     29 
     30     @Override
     31     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
     32         doPost(req, resp);
     33     }
     34 
     35     @Override
     36     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
     37         
     38         req.setCharacterEncoding("utf-8");
     39         resp.setCharacterEncoding("utf-8");
     40         
     41         String action = req.getParameter("action");
     42         List<User> userList = new ArrayList<>();
     43         
     44         switch (action) {
     45         case "getUserList":
     46             try {
     47                 ResultSet resultSet = DBUtil.query("select * from user");
     48                 // 遍历结果集【一行行数据读取】,将结果集放置到实体对象中
     49                 while (resultSet.next()) {
     50                     User user = new User();
     51                     user.setId(resultSet.getInt("id"));
     52                     user.setAge(String.valueOf(resultSet.getInt("age")));
     53                     user.setName(resultSet.getString("name"));
     54                     userList.add(user);
     55                 }
     56                 req.setAttribute("userList",userList);
     57                 // 跳转至展示页面
     58                 req.getRequestDispatcher("../UserList.jsp").forward(req, resp);
     59             } catch (SQLException e) {
     60                 e.printStackTrace();
     61             }finally {
     62                 // 释放资源
     63                 DBUtil.closeResource();
     64             }
     65             break;
     66         case "deleteUserInfo":
     67             try {
     68                 String id = req.getParameter("id");
     69                 int delResult = DBUtil.insertOrDeleteOrUpdate("delete from user where id='"+id+"'");
     70                 if(delResult>0) {
     71                     System.out.println("删除成功");
     72                 }
     73             } catch (SQLException e) {
     74                 e.printStackTrace();
     75             }
     76             break;
     77         case "updateUserName":
     78             try {
     79                 String id = req.getParameter("id");
     80                 String name = req.getParameter("name");
     81                 int updateResult = DBUtil.insertOrDeleteOrUpdate("update user set name='"+name+"' where id='"+id+"'");
     82                 if(updateResult>0) {
     83                     System.out.println("更新用户名成功");
     84                 }
     85             } catch (SQLException e) {
     86                 e.printStackTrace();
     87             }
     88             break;
     89         case "insertUserInfo":
     90             try {
     91                 String addAge = req.getParameter("age");
     92                 String addName = req.getParameter("name");
     93                 int addResult = DBUtil.insertOrDeleteOrUpdate("insert into user(age,name) value('"+addAge+"','"+addName+"')");
     94                 if(addResult>0) {
     95                     System.out.println("新增用户成功");
     96                 }
     97             } catch (SQLException e) {
     98                 e.printStackTrace();
     99             }
    100             break;
    101         default:
    102             break;
    103         }
    104     }
    105 }

    UserList.jsp

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
     4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     5 <html>
     6 <head>
     7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     8 <title>用户信息列表</title>
     9 <style type="text/css">
    10     *{
    11         padding: 0;
    12         margin: 0;
    13     }
    14     
    15     table{
    16         margin: 300px auto;
    17     }
    18     
    19     td{
    20         100px;
    21         text-align: center;
    22     }
    23 </style>
    24 </head>
    25 <body>
    26     <table border="1" cellpadding="0" cellspacing="0">
    27         <tr>
    28             <td>序号</td>
    29             <td>工号</td>
    30             <td>年龄</td>
    31             <td>姓名</td>
    32         </tr>
    33         <c:forEach items="${ userList }" var="user" varStatus="status">
    34             <tr>
    35                 <td>${ status.index+1 }</td>
    36                 <td>${ user.id }</td>
    37                 <td>${ user.age }</td>
    38                 <td>${ user.name }</td>
    39             </tr>
    40         </c:forEach>
    41     </table>
    42 </body>
    43 </html>

    DBUtil.java

     1 package cn.woo.util;
     2 
     3 import java.sql.Connection;
     4 import java.sql.DriverManager;
     5 import java.sql.ResultSet;
     6 import java.sql.SQLException;
     7 import java.sql.Statement;
     8 
     9 /**
    10 * 类说明:数据库连接工具类
    11 * @author wyh
    12 * @version 创建时间:2018年8月23日 下午3:58:55
    13 */
    14 public class DBUtil {
    15     
    16     private static Connection connection;
    17     private static Statement statement;
    18     
    19     static {
    20         try {
    21             DriverManager.registerDriver(new com.mysql.jdbc.Driver());
    22             // 获取连接 【并设置编码方式】
    23             connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/woo?unicode=true&characterEncoding=UTF-8","root","root");
    24         } catch (SQLException e) {
    25             e.printStackTrace();
    26         }
    27     }
    28     
    29     public static Statement getStatement() throws SQLException {
    30         // 获取statement 【用于执行SQL语句】
    31         statement = connection.createStatement();
    32         return statement;
    33     }
    34     
    35     /**
    36      * 查
    37      * @param sql 执行查询的sql语句
    38       * @return resultSet 返回的结果集
    39      * @throws SQLException 
    40      */
    41     public static ResultSet query(String sql) throws SQLException {
    42         return getStatement().executeQuery(sql);
    43     }
    44     
    45     /**
    46      * 增/删/改 通用方法
    47      * @param sql 要执行的SQL语句
    48       * @return 执行结果 >0表明执行成功
    49      * @throws SQLException 
    50      */
    51     public static int insertOrDeleteOrUpdate(String sql) throws SQLException {
    52         return getStatement().executeUpdate(sql);
    53     }
    54     
    55     
    56     /**
    57      * 释放资源
    58      */
    59     public static void closeResource() {
    60         try {
    61             if(statement!=null) {
    62                 statement.close();
    63             }
    64             if(connection!=null) {
    65                 connection.close();
    66             }
    67         }catch(Exception e) {
    68             e.printStackTrace();
    69         }
    70     }
    71 }
  • 相关阅读:
    Address already in use: JVM_Bind 端口被占
    Excel PDF预览 excel导出
    js 判断日期是否节假日
    2020 idea的RunDashboard怎么显示出来
    sql server if else
    IDEA热部署总是失败的解决
    java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
    IOS开发 strong,weak,retain,assign,copy nomatic 等的区别与作用
    NSOperationQueue与GCD的使用原则和场景
    View加载过程
  • 原文地址:https://www.cnblogs.com/wooyoohoo/p/9526290.html
Copyright © 2011-2022 走看看