JSP详细篇――JDBC *** 作数据库(二)

JSP详细篇――JDBC *** 作数据库(二),第1张

概述删除数据范例:在查询所有图书信息的页面中,添加删除图书信息的超链接,通过Servlet实现对数据的删除 *** 作(1)在book_list.jsp中,增加删除图书信息的超链接,将连接的地址指向DeleteServlet。&lt%@pagelanguage="java"import="java.util.*"p 删除数据

范例:

在查询所有图书信息的页面中,添加删除图书信息的超链接,通过Servlet实现对数据的删除 *** 作

(1)在book_List.Jsp中,增加删除图书信息的超链接,将连接的地址指向DeleteServlet

 

<%@ page language="java" import="java.util.*" pageEnCoding="UTF⑻"%>

<%

String path = request.getcontextpath();

String basePath = request.getScheme()+"://"+request.getServername()+":"+request.getServerPort()+path+"/";

%>

 

<!DOCTYPE HTML PUBliC "-//W3C//DTD HTML 4.01 Transitional//EN">

<HTML>

  head>

    base href="<%=basePath%>">

    

    Title>My JsP 'check.Jsp' starting page</>

    

Meta http-equiv="pragma" content="no-cache">

"cache-control" "expires" "0">    

"keywords" "keyword1,keyword2,keyword3""description" "This is my page">

<!--

<link rel="stylesheet" type="text/CSShref="styles.CSS">

-->

 

  >

  

  bodya "FindServlet">查看所有图书信息a>

 

(2)编写DeleteServlet,在doGet()方法中,编写删除图书信息的方法

 

package com.zgy.servlet;

 

import java.io.IOException;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.sqlException;

 

import javax.servlet.servletexception;

import javax.servlet.http.httpServlet;

import javax.servlet.http.httpServletRequest;

import javax.servlet.http.httpServletResponse;

 

 

public class DeleteServlet extends httpServlet {

 

/**

 * 

 */

private static final long serialVersionUID = 1L;

@H_710_301@@OverrIDe

protected voID doGet(httpServletRequest request, httpServletResponse response)

throws servletexception, IOException {

// Todo auto-generated method stub

int ID = Integer.valueOf(request.getParameter("ID"));//获得图书ID

try{

Class.forname("com.MysqL.jdbc.Driver");//注册驱动

String url = "jdbc:MysqL://localhost:3306/zhouguanya";//数据库连接字符串

String user = "root";//数据库用户名

String password = //数据库密码

String sql = "delete from books where ID = ?";//sql语句

Connection conn = DriverManager.getConnection(url, user, password);//创建Connection连接

PreparedStatement ps = conn.prepareStatement(sql);//获得PreparedStatement对象

ps.setInt(1, ID);//设置中的?

ps.executeUpdate();//履行更新 *** 作

ps.close();//关闭PreparedStatement

conn.close();//关闭Connection

}catch(ClassNotFoundException e){

e.printstacktrace();

}catch(sqlException e){

e.printstacktrace();

}

response.sendRedirect("FindServlet");//重定向到FindServlet

}

}

 

批处理

JDBC开发中, *** 作数据库需要与数据库建立连接,然后将要履行的sql语句传送到数据库服务器,最后关闭数据库连接。如果依照这个流程履行多条sql语句,那末就需要建立多个数据库连接,这样会浪费很多时间。针对这1问题,JDBC的批处理提供了很好的解决方法。

JDBC中批处理的原理就是将批量的sql语句1次性的发送到数据库中履行,从而解决了屡次与数据库连接所产生的速度问题。

范例:

创建学生信息表,通过JDBC的批处理 *** 作,1次性将多个学生的信息写入数据库。

(1)创建student

(2)创建名称为Batch的类,实现对学生信息的批量添加。

 

package com.zgy.batchsql;

 

import java.sql.sqlException;

import java.util.Random;

 

class Batch {

/*

 * 获得数据库连接

 * 

 * @return Connection对象

 */

public Connection getConnection() {

Connection conn = null;// 数据库连接

try {

Class.forname(// 注册驱动

String url = // 连接数据库的字符串

String user = // 数据库用户名

String password = // 数据库密码

conn = DriverManager.getConnection(url,95)">// 创建Connection对象

catch (ClassNotFoundException e) {

e.printstacktrace();

catch (sqlException e) {

e.printstacktrace();

}

return conn;

}

 

 * 批量添加数据

 * @return 所影响的行数

int saveBatch(){

int row = 0;

Connection conn = getConnection();

try{

String sql = "insert into student(student_ID,student_name,student_age,student_class) values (?,?,?)";

PreparedStatement ps = conn.prepareStatement(sql);

Random random = new Random();

for(int i = 0 ; i < 20 ; i++){

ps.setInt(1, i+1);//对student_ID赋值

ps.setString(2, "学生"+(i+1));//对studet_name赋值

ps.setInt(3, random.nextInt(5)+10);//对student_age赋值

ps.setString(4,255)">"班级"+(i+1));//对student_class赋值

ps.addBatch();//添加批处理

}

int[] rows = ps.executeBatch();//履行批处理 *** 作返回计数组成的数组

row = rows.length;//对行进行赋值

ps.close();

conn.close();

}catch(sqlException e){

e.printstacktrace();

}

return row;

}

}

(3)创建batchsql.Jsp页面,在该页面中使用<Jsp:useBean>实例化Batch,并履行批量添加数据的 *** 作。

 

%>

 

>My JsP 'batchsql.Jsp' starting pageJsp:useBean ID="batch" class="com.zgy.batchsql.Batch"></Jsp:useBean>

    <%

     int row = batch.saveBatch();

     out.print("批量插入了"+row+"条数据");

     %>

  



总结

以上是内存溢出为你收集整理的JSP详细篇――JDBC *** 作数据库(二)全部内容,希望文章能够帮你解决JSP详细篇――JDBC *** 作数据库(二)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1019514.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存