神刀安全网

JSP MySQL 简单的增删改查

简单对MySQL 操作

先上个动图了解一下本章的意图。

JSP MySQL 简单的增删改查
jsp_mysql.gif

首先创建一个jsp项目 MySQLDBDemo

准备两个jar包

数据库jar包
mysql-connector-java-5.0.8-bin.jar (自行网上下载)
servlet-api.jar (从tomcat lib内获取)

WebContent      -- Web-INT         -- lib (放于这个文件夹内)

构建index.jsp 页面

<%@ 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=ISO-8859-1"> <title>MySQL Action</title> <style type="text/css"> .action {     width: 500px;     height: 200px;     margin: 0 auto;     background: rgba(234, 233, 233, 0.22);     margin-top: 50px; }  .result {     width: 500px;     height: 100px;     margin: 0 auto;     background: rgba(189, 187, 104, 0.22);     margin-top: 50px; }  .action li {     list-style: none;     padding-top: 20px; } </style> </head> <body>       <div class="action">         <div>JSP MySQL 简单的增删改查</div>         <ul>             <li><a href="/MySQLDBDemo/InsertServlet">Insert</a></li>             <li><a href="/MySQLDBDemo/SelectServlet">Select</a></li>             <li><a href="/MySQLDBDemo/UpdateServlet">Update</a></li>             <li><a href="/MySQLDBDemo/DeleteServlet">Delete</a></li>         </ul>     </div>       <div class="result">         <div>Result:</div>          <div>${message}</div>          <div>${studentid}</div>         <div>${quiz}</div>         <div>${exam}</div>      </div>  </body> </html>

这一部分表示,点击链接触发servlet 执行相关的操作

    <div class="action">         <div>JSP MySQL 简单的增删改查</div>         <ul>             <li><a href="/MySQLDBDemo/InsertServlet">Insert</a></li>             <li><a href="/MySQLDBDemo/SelectServlet">Select</a></li>             <li><a href="/MySQLDBDemo/UpdateServlet">Update</a></li>             <li><a href="/MySQLDBDemo/DeleteServlet">Delete</a></li>         </ul>     </div>

这一部分用于servlet传递的参数,显示 操作结果

    <div class="result">         <div>Result:</div>         <div>${message}</div>         <div>${studentid}</div>         <div>${quiz}</div>         <div>${exam}</div>     </div>

index.jsp 页面 非常简单。

JSP MySQL 简单的增删改查
index.jsp.png

建立一个简单的数据库链接类 MyDBUtil.java

方便servlet 去链接数据库

package cn.crabshell.utils;  import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException;  public class MyDBUtil {     /**      * @param args      */     // 驱动程序就是之前在classpath中配置的JDBC的驱动程序的JAR 包中     public static final String DBDRIVER = "com.mysql.jdbc.Driver";     // 连接地址是由各个数据库生产商单独提供的,所以需要单独记住     public static final String DBURL = "jdbc:mysql://localhost:3306/student";     // 连接数据库的用户名     public static final String DBUSER = "root";     // 连接数据库的密码     public static final String DBPASS = "";      static Connection conn;      /**      * Connect to DB      *       * @return Connection      * @throws SQLException      */     public static Connection connetDB(){          // 1、使用CLASS 类加载驱动程序         try {             Class.forName(DBDRIVER);         } catch (ClassNotFoundException e) {             e.printStackTrace();         }          try {             conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);         } catch (SQLException e) {             //e.printStackTrace();             return null;         }          return conn;      }      /**      * close DB      */     public static void closeDB() {         try {             conn.close();         } catch (SQLException e) {             e.printStackTrace();         }     }  }

说明:

    public static final String DBURL = "jdbc:mysql://localhost:3306/student";     // 连接数据库的用户名     public static final String DBUSER = "root";     // 连接数据库的密码     public static final String DBPASS = "";

student 是在你的mysql内创建的数据库名称。
作者的本地实验数据库账号是 root, 密码是空。

建立数据库 student 后,

可以执行 sql 语句创建 一张表 grade

         CREATE TABLE `student`.`grade` ( `id` INT NOT NULL AUTO_INCREMENT ,           `studentid` VARCHAR(11) NOT NULL , `quiz` INT(255) NOT NULL , `exam`           INT(255) NOT NULL , PRIMARY KEY (`id`)) ;
JSP MySQL 简单的增删改查
grade_table.png

编码 servlet

创建 InsertServlet.java

在 doGet() 方法内 添加 下面代码

代码 链接了数据库,并向数据库插入一条数据。
插入数据之后,返回一个int值, 0表示失败,1表示插入成功。
将参数传递给index.jsp页面, 显示结果。

String sql = "INSERT INTO grade (studentid,quiz,exam) VALUES(?,?,?)";          PreparedStatement ps = null;          Connection conn = MyDBUtil.connetDB(); // get db connection         int result = 0;         try {              ps = conn.prepareStatement(sql);             ps.setString(1, "b63030007");             ps.setInt(2, 99);             ps.setInt(3, 99);             result = ps.executeUpdate();          } catch (SQLException e) {             e.printStackTrace();         }finally{             MyDBUtil.closeDB();         }          String message = null;          if(result == 0){             message = "INSERT FAIL";         }else{             message = "INSERT SUCCESS";         }           request.setAttribute("message", message);          RequestDispatcher rd = request.getRequestDispatcher("index.jsp");          rd.forward(request, response);
创建 SelectServlet.java

在 doGet() 方法内 添加 下面代码

代码 链接了数据库,并向数据库查询数据。
如果结果集有数据,就给 studentid,quiz,exam赋值。
将参数传递给index.jsp页面, 显示结果。

Connection conn = MyDBUtil.connetDB(); // get db connection;         PreparedStatement ps = null;         ResultSet rs = null;          String studentid = null;         String quiz = null;         String exam = null;          String sql = "select * from grade where studentid = ? limit 1";         try {             ps = conn.prepareStatement(sql);             ps.setString(1, "b63030007");             rs = ps.executeQuery();             while (rs.next()) {                  studentid = rs.getString("studentid");                 quiz = rs.getString("quiz");                 exam = rs.getString("exam");             }         } catch (SQLException e) {             e.printStackTrace();         }         String message = null;         if(studentid == null){             message = "Select FAIL";         }else{             message = "Select SUCCESS";             request.setAttribute("studentid", studentid);             request.setAttribute("quiz", quiz);             request.setAttribute("exam", exam);         }           request.setAttribute("message", message);         RequestDispatcher rd = request.getRequestDispatcher("index.jsp");         rd.forward(request, response);
创建 UpdateServlet.java

在 doGet() 方法内 添加 下面代码

代码 链接了数据库,并向数据库更新数据。
给指定 studentid 更改 quiz 和 exam的值。
更新数据之后,返回一个int值, 0表示失败,1表示插入成功。
将参数传递给index.jsp页面, 显示结果。

String sql = "UPDATE grade SET quiz=?,exam=? WHERE studentid=?";         PreparedStatement ps = null;          Connection conn = MyDBUtil.connetDB(); // get db connection         int result = 0;         try {              ps = conn.prepareStatement(sql);             ps.setInt(1, 100);             ps.setInt(2, 100);             ps.setString(3, "b63030007");              result = ps.executeUpdate();          } catch (SQLException e) {             e.printStackTrace();         }finally{             MyDBUtil.closeDB();         }          String message = null;          if(result == 0){             message = "UPDATE FAIL";         }else{             message = "UPDATE SUCCESS";         }           request.setAttribute("message", message);          RequestDispatcher rd = request.getRequestDispatcher("index.jsp");          rd.forward(request, response);
创建 DeleteServlet.java

在 doGet() 方法内 添加 下面代码

代码 链接了数据库,并向给指定 studentid 删除数据。
删除数据之后,返回一个int值, 0表示失败,1表示插入成功。
将参数传递给index.jsp页面, 显示结果。

String sql = "DELETE FROM grade WHERE studentid = ?";          PreparedStatement ps = null;          Connection conn = MyDBUtil.connetDB(); // get db connection         int result = 0;         try {              ps = conn.prepareStatement(sql);             ps.setString(1, "b63030007");             result = ps.executeUpdate();          } catch (SQLException e) {             e.printStackTrace();         }finally{             MyDBUtil.closeDB();         }          String message = null;          if(result == 0){             message = "DELETE FAIL";         }else{             message = "DELETE SUCCESS";         }           request.setAttribute("message", message);          RequestDispatcher rd = request.getRequestDispatcher("index.jsp");          rd.forward(request, response);

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » JSP MySQL 简单的增删改查

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址