当前位置 : 主页 > 编程语言 > java >

jsp+servlet+jdbc实现对数据库的增删改查

来源:互联网 收集:自由互联 发布时间:2021-06-25
一、JSP和Servlet的简单介绍 1、Servlet和JSP简介: Java开发Web应用程序时用到的技术主要有两种,即Servlet和JSP,Servlet是在服务器端执行的Java程序,一个被称为Servlet容器的程序(其实就是服

一、JSP和Servlet的简单介绍

1、Servlet和JSP简介:

Java开发Web应用程序时用到的技术主要有两种,即Servlet和JSP,Servlet是在服务器端执行的Java程序,一个被称为Servlet容器的程序(其实就是服务器) 负责执行Java程序,而JSP(Java Server Page)则是一个页面, 由JSP容器负责执行.

2、Servlet和JSP的区别:

Servlet以Java程序为主, 输出HTML代码时需要使用out.println函数,也就是说Java中内嵌HTML; 而JSP则以HTML页面为主,需要写Java代码时则在页面中直接插入Java代码, 即HTML中内嵌Java.

3、MVC模型
 
MVC模型就是将数据、逻辑处理、用户界面分离的一种方法
1)、M(Model, 模型):用于数据处理、逻辑处理
2)、V(View,视图):用于显示用户界面
3)、C(Controller,控制器):根据客户端的请求控制逻辑走向和画面
 
而在Java中,MVC这三个部分则分别对应于 JavaBeans、JSP和Servlet
1)、M = JavaBeans:用于传递数据,拥有与数据相关的逻辑处理 
2)、V = JSP:从Model接收数据并生成HTML 
3)、C = Servlet:接收HTTP请求并控制Model和View

4、jdbc连接,可参考文章:点击打开链接


二、代码演示,实现了book的添加删除和修改功能

1、环境的配置

myeclipse+tomcat+mysql

2、Book中bean类

[java]  view plain  copy
  1. package example.bean.book;  
  2.   
  3. public class Book {  
  4.     // 编号  
  5.     private int id;  
  6.     // 图书名称  
  7.     private String name;  
  8.     // 价格  
  9.     private double price;  
  10.     // 数量  
  11.     private int bookCount;  
  12.     // 作者  
  13.     private String author;  
  14.   
  15.     public int getId() {  
  16.         return id;  
  17.     }  
  18.   
  19.     public void setId(int id) {  
  20.         this.id = id;  
  21.     }  
  22.   
  23.     public String getName() {  
  24.         return name;  
  25.     }  
  26.   
  27.     public void setName(String name) {  
  28.         this.name = name;  
  29.     }  
  30.   
  31.     public double getPrice() {  
  32.         return price;  
  33.     }  
  34.   
  35.     public void setPrice(double price) {  
  36.         this.price = price;  
  37.     }  
  38.   
  39.     public int getBookCount() {  
  40.         return bookCount;  
  41.     }  
  42.   
  43.     public void setBookCount(int bookCount) {  
  44.         this.bookCount = bookCount;  
  45.     }  
  46.   
  47.     public String getAuthor() {  
  48.         return author;  
  49.     }  
  50.   
  51.     public void setAuthor(String author) {  
  52.         this.author = author;  
  53.     }  
  54.   
  55. }  
3、Servlet类

1)、FindServlet.java

[java]  view plain  copy
  1. package example.servlet.book;  
  2.   
  3. import java.io.IOException;  
  4. import java.sql.Connection;  
  5. import java.sql.DriverManager;  
  6. import java.sql.ResultSet;  
  7. import java.sql.Statement;  
  8. import java.util.ArrayList;  
  9. import java.util.List;  
  10.   
  11. import javax.servlet.ServletException;  
  12. import javax.servlet.http.HttpServlet;  
  13. import javax.servlet.http.HttpServletRequest;  
  14. import javax.servlet.http.HttpServletResponse;  
  15.   
  16. import example.bean.book.Book;  
  17.   
  18. /** 
  19.  * Servlet implementation class FindServlet 
  20.  */  
  21. public class FindServlet extends HttpServlet {  
  22.     private static final long serialVersionUID = 1L;  
  23.   
  24.     /** 
  25.      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse 
  26.      *      response) 
  27.      */  
  28.     protected void doGet(HttpServletRequest request,  
  29.             HttpServletResponse response) throws ServletException, IOException {  
  30.         try {  
  31.             // 加载数据库驱动,注册到驱动管理器  
  32.             Class.forName("com.mysql.jdbc.Driver");  
  33.             // 数据库连接字符串  
  34.             String url = "jdbc:mysql://localhost:3306/db_book?useUnicode=true&characterEncoding=utf-8";  
  35.             // 数据库用户名  
  36.             String username = "root";  
  37.             // 数据库密码  
  38.             String password = "";  
  39.             // 创建Connection连接  
  40.             Connection conn = DriverManager.getConnection(url, username,  
  41.                     password);  
  42.             // 添加图书信息的SQL语句  
  43.             String sql = "select * from tb_books";  
  44.             // 获取Statement  
  45.             Statement statement = conn.createStatement();  
  46.   
  47.             ResultSet resultSet = statement.executeQuery(sql);  
  48.   
  49.             List<Book> list = new ArrayList<Book>();  
  50.             while (resultSet.next()) {  
  51.   
  52.                 Book book = new Book();  
  53.                 book.setId(resultSet.getInt("id"));  
  54.                 book.setName(resultSet.getString("name"));  
  55.                 book.setPrice(resultSet.getDouble("price"));  
  56.                 book.setBookCount(resultSet.getInt("bookCount"));  
  57.                 book.setAuthor(resultSet.getString("author"));  
  58.                 list.add(book);  
  59.   
  60.             }  
  61.             request.setAttribute("list", list);  
  62.             resultSet.close();  
  63.             statement.close();  
  64.             conn.close();  
  65.   
  66.         } catch (Exception e) {  
  67.             e.printStackTrace();  
  68.         }  
  69.   
  70.         request.getRequestDispatcher("book_list.jsp")  
  71.                 .forward(request, response);  
  72.   
  73.     }  
  74.   
  75.     /** 
  76.      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse 
  77.      *      response) 
  78.      */  
  79.     protected void doPost(HttpServletRequest request,  
  80.             HttpServletResponse response) throws ServletException, IOException {  
  81.         // TODO Auto-generated method stub  
  82.         doGet(request, response);  
  83.     }  
  84.   
  85. }  

2)、UpdateServlet.java类

[java]  view plain  copy
  1. package example.servlet.book;  
  2.   
  3. import java.io.IOException;  
  4. import java.sql.Connection;  
  5. import java.sql.DriverManager;  
  6. import java.sql.PreparedStatement;  
  7.   
  8. import javax.servlet.ServletException;  
  9. import javax.servlet.http.HttpServlet;  
  10. import javax.servlet.http.HttpServletRequest;  
  11. import javax.servlet.http.HttpServletResponse;  
  12.   
  13. /** 
  14.  * Servlet implementation class UpdateServlet 
  15.  */  
  16. public class UpdateServlet extends HttpServlet {  
  17.     private static final long serialVersionUID = 1L;  
  18.   
  19.     /** 
  20.      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse 
  21.      *      response) 
  22.      */  
  23.     protected void doGet(HttpServletRequest request,  
  24.             HttpServletResponse response) throws ServletException, IOException {  
  25.         int id = Integer.valueOf(request.getParameter("id"));  
  26.         int bookCount = Integer.valueOf(request.getParameter("bookCount"));  
  27.         try {  
  28.             // 加载数据库驱动,注册到驱动管理器  
  29.             Class.forName("com.mysql.jdbc.Driver");  
  30.             // 数据库连接字符串  
  31.             String url = "jdbc:mysql://localhost:3306/db_book";  
  32.             // 数据库用户名  
  33.             String username = "root";  
  34.             // 数据库密码  
  35.             String password = "";  
  36.             // 创建Connection连接  
  37.             Connection conn = DriverManager.getConnection(url, username,  
  38.                     password);  
  39.             // 更新SQL语句  
  40.             String sql = "update tb_books set bookcount=? where id=?";  
  41.             // 获取PreparedStatement  
  42.             PreparedStatement ps = conn.prepareStatement(sql);  
  43.             // 对SQL语句中的第一个参数赋值  
  44.             ps.setInt(1, bookCount);  
  45.             // 对SQL语句中的第二个参数赋值  
  46.             ps.setInt(2, id);  
  47.             // 执行更新操作  
  48.             ps.executeUpdate();  
  49.             // 关闭PreparedStatement  
  50.             ps.close();  
  51.             // 关闭Connection  
  52.             conn.close();  
  53.         } catch (Exception e) {  
  54.             e.printStackTrace();  
  55.         }  
  56.         // 重定向到FindServlet  
  57.         response.sendRedirect("FindServlet");  
  58.   
  59.     }  
  60.   
  61.     /** 
  62.      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse 
  63.      *      response) 
  64.      */  
  65.     protected void doPost(HttpServletRequest request,  
  66.             HttpServletResponse response) throws ServletException, IOException {  
  67.         // TODO Auto-generated method stub  
  68.         doGet(request, response);  
  69.     }  
  70.   
  71. }  

3)、DeleteServlet类
[java]  view plain  copy
  1. package example.servlet.book;  
  2.   
  3. import java.io.IOException;  
  4. import java.sql.Connection;  
  5.   
  6. import javax.servlet.ServletException;  
  7. import javax.servlet.http.HttpServlet;  
  8. import javax.servlet.http.HttpServletRequest;  
  9. import javax.servlet.http.HttpServletResponse;  
  10.   
  11. import example.dao.book.BookJdbcDao;  
  12. import example.dao.book.ConnectionFactory;  
  13.   
  14. /** 
  15.  * Servlet implementation class DeleteServlet 
  16.  */  
  17. public class DeleteServlet extends HttpServlet {  
  18.     private static final long serialVersionUID = 1L;  
  19.   
  20.     /** 
  21.      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse 
  22.      *      response) 
  23.      */  
  24.     protected void doGet(HttpServletRequest request,  
  25.             HttpServletResponse response) throws ServletException, IOException {  
  26.         int id = Integer.valueOf(request.getParameter("id"));  
  27.         try {  
  28. //          // 加载数据库驱动,注册到驱动管理器  
  29. //          Class.forName("com.mysql.jdbc.Driver");  
  30. //          // 数据库连接字符串  
  31. //          String url = "jdbc:mysql://localhost:3306/db_book";  
  32. //          // 数据库用户名  
  33. //          String username = "root";  
  34. //          // 数据库密码  
  35. //          String password = "";  
  36. //          // 创建Connection连接  
  37. //          Connection conn = DriverManager.getConnection(url, username,  
  38. //                  password);  
  39. //          // 删除图书信息的SQL语句  
  40. //          String sql = "delete from tb_books where id=?";  
  41. //          // 获取PreparedStatement  
  42. //          PreparedStatement ps = conn.prepareStatement(sql);  
  43. //          // 对SQL语句中的第一个占位符赋值  
  44. //          ps.setInt(1, id);  
  45. //          // 执行更新操作  
  46. //          ps.executeUpdate();  
  47. //          // 关闭PreparedStatement  
  48. //          ps.close();  
  49. //          // 关闭Connection  
  50. //          conn.close();  
  51.             BookJdbcDao bookDao=new BookJdbcDao();  
  52.             Connection conn=ConnectionFactory.getInstance().getConnection();  
  53.             bookDao.delete(conn,id);  
  54.               
  55.         } catch (Exception e) {  
  56.             e.printStackTrace();  
  57.         }  
  58.         // 重定向到FindServlet  
  59.         response.sendRedirect("FindServlet");  
  60.     }  
  61.   
  62.     /** 
  63.      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse 
  64.      *      response) 
  65.      */  
  66.     protected void doPost(HttpServletRequest request,  
  67.             HttpServletResponse response) throws ServletException, IOException {  
  68.         doGet(request, response);  
  69.     }  
  70.   
  71. }  

4、servlet访问url映射配置:

由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被外界访问,必须把servlet程序映射到一个URL地址上,这个工作在web.xml文件中使用<servlet>元素和<servlet-mapping>元素完成,<servlet>元素用于注册Servlet,它包含有两个主要的子元素:<servlet-name>和<servlet-class>,分别用于设置Servlet的注册名称和Servlet的完整类名。 一个<servlet-mapping>元素用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元素:<servlet-name>和<url-pattern>,分别用于指定Servlet的注册名称和Servlet的对外访问路径.另外:同一个Servlet可以被映射到多个URL上,即多个<servlet-mapping>元素的<servlet-name>子元素的设置值可以是同一个Servlet的注册名.

eg:上例中的web.xml

[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">  
  3.   <display-name>JdbcConnection</display-name>  
  4.   <welcome-file-list>  
  5.     <welcome-file>index.html</welcome-file>  
  6.     <welcome-file>index.htm</welcome-file>  
  7.     <welcome-file>index.jsp</welcome-file>  
  8.     <welcome-file>default.html</welcome-file>  
  9.     <welcome-file>default.htm</welcome-file>  
  10.     <welcome-file>default.jsp</welcome-file>  
  11.   </welcome-file-list>  
  12.   <servlet>  
  13.     <description></description>  
  14.     <display-name>FindServlet</display-name>  
  15.     <servlet-name>FindServlet</servlet-name>  
  16.     <servlet-class>example.servlet.book.FindServlet</servlet-class>  
  17.   </servlet>  
  18.   <servlet-mapping>  
  19.     <servlet-name>FindServlet</servlet-name>  
  20.     <url-pattern>/FindServlet</url-pattern>  
  21.   </servlet-mapping>  
  22.   <servlet>  
  23.     <description></description>  
  24.     <display-name>UpdateServlet</display-name>  
  25.     <servlet-name>UpdateServlet</servlet-name>  
  26.     <servlet-class>example.servlet.book.UpdateServlet</servlet-class>  
  27.   </servlet>  
  28.   <servlet-mapping>  
  29.     <servlet-name>UpdateServlet</servlet-name>  
  30.     <url-pattern>/UpdateServlet</url-pattern>  
  31.   </servlet-mapping>  
  32.   <servlet>  
  33.     <description></description>  
  34.     <display-name>DeleteServlet</display-name>  
  35.     <servlet-name>DeleteServlet</servlet-name>  
  36.     <servlet-class>example.servlet.book.DeleteServlet</servlet-class>  
  37.   </servlet>  
  38.   <servlet-mapping>  
  39.     <servlet-name>DeleteServlet</servlet-name>  
  40.     <url-pattern>/DeleteServlet</url-pattern>  
  41.   </servlet-mapping>  
  42. </web-app>  

5、jsp页面

1)、index.jsp  web页面主界面

[html]  view plain  copy
  1. <%@page import="java.sql.SQLException"%>  
  2. <%@page import="java.sql.DriverManager"%>  
  3. <%@page import="java.sql.Connection"%>  
  4. <%@ page language="java" contentType="text/html; charset=utf-8"  
  5.     pageEncoding="utf-8"%>  
  6. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  7. <html>  
  8. <head>  
  9. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
  10. <title>添加图书信息</title>  
  11.   
  12. <script type="text/javascript">  
  13.     function check(form) {  
  14.         with (form) {  
  15.             if (name.value == "") {  
  16.                 alert("图书名称不能为空");  
  17.                 return false;  
  18.             }  
  19.   
  20.             if (price.value == "") {  
  21.                 alert("图书价格不能为空");  
  22.                 return false;  
  23.             }  
  24.   
  25.             if (author.value == "") {  
  26.                 alert("作者不能为空");  
  27.                 return false;  
  28.             }  
  29.   
  30.         }  
  31.     }  
  32. </script>  
  33.   
  34. </head>  
  35.   
  36.   
  37. <body>  
  38.   
  39. <form action="addbook.jsp" method="post" onsubmit="check(this)">  
  40.     <table align="center" width="450">  
  41.         <tr>  
  42.             <td align="center" colspan="2">  
  43.                 <h2>添加图书信息</h2>  
  44.                 <hr>  
  45.             </td>  
  46.         </tr>  
  47.   
  48.         <tr>  
  49.             <td align="right">图书名称:</td>  
  50.             <td><input type="text" name="name"></td>  
  51.         </tr>  
  52.   
  53.         <tr>  
  54.             <td align="right">价 格:</td>  
  55.             <td><input type="text" name="price"></td>  
  56.         </tr>  
  57.   
  58.         <tr>  
  59.             <td align="right">数 量:</td>  
  60.             <td><input type="text" name="bookCount" /></td>  
  61.         </tr>  
  62.   
  63.         <tr>  
  64.             <td align="right">作 者:</td>  
  65.             <td><input type="text" name="author" /></td>  
  66.         </tr>  
  67.         <tr>  
  68.             <td align="center" colspan="2"><input type="submit" value="添 加">  
  69.             </td>  
  70.         </tr>  
  71.     </table>  
  72. </form>  
  73.   
  74. <h2 align="center">  
  75.     <a href="FindServlet">查询图书信息</a>  
  76. </h2>  
  77.   
  78. </body>  
  79. </html>  

2)、addbook.jsp 添加书籍成功或者失败后的显示页面

[html]  view plain  copy
  1. <%@ page language="java" contentType="text/html; charset=utf-8"  
  2.     pageEncoding="utf-8"%>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4.   
  5. <%@page import="java.sql.Connection"%>  
  6. <%@page import="java.sql.DriverManager"%>  
  7. <%@page import="java.sql.PreparedStatement"%>  
  8. <html>  
  9. <head>  
  10. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
  11. <title>添加结果</title>  
  12. </head>  
  13. <body>  
  14.     <%  
  15.         request.setCharacterEncoding("utf-8");  
  16.     %>  
  17.     <jsp:useBean id="book" class="example.bean.book.Book"></jsp:useBean>  
  18.     <jsp:setProperty property="*" name="book" />  
  19.     <%  
  20.         try {  
  21.             // 加载数据库驱动,注册到驱动管理器  
  22.             Class.forName("com.mysql.jdbc.Driver");  
  23.             // 数据库连接字符串  
  24.             String url = "jdbc:mysql://localhost:3306/db_book?useUnicode=true&characterEncoding=utf-8";  
  25.             // 数据库用户名  
  26.             String username = "root";  
  27.             // 数据库密码  
  28.             String password = "";  
  29.             // 创建Connection连接  
  30.             Connection conn = DriverManager.getConnection(url, username,  
  31.                     password);  
  32.             // 添加图书信息的SQL语句  
  33.             String sql = "insert into tb_books(name,price,bookCount,author) values(?,?,?,?)";  
  34.             // 获取PreparedStatement  
  35.             PreparedStatement ps = conn.prepareStatement(sql);  
  36.             // 对SQL语句中的第1个参数赋值  
  37.             ps.setString(1, book.getName());  
  38.             // 对SQL语句中的第2个参数赋值  
  39.             ps.setDouble(2, book.getPrice());  
  40.             // 对SQL语句中的第3个参数赋值  
  41.             ps.setInt(3, book.getBookCount());  
  42.             // 对SQL语句中的第4个参数赋值  
  43.             ps.setString(4, book.getAuthor());  
  44.             // 执行更新操作,返回所影响的行数  
  45.             int row = ps.executeUpdate();  
  46.             // 判断是否更新成功  
  47.             if (row > 0) {  
  48.                 // 更新成输出信息  
  49.                 out.print("成功添加了 " + row + "条数据!");  
  50.             }  
  51.             // 关闭PreparedStatement,释放资源  
  52.             ps.close();  
  53.             // 关闭Connection,释放资源  
  54.             conn.close();  
  55.         } catch (Exception e) {  
  56.             out.print("图书信息添加失败!");  
  57.             e.printStackTrace();  
  58.         }  
  59.     %>  
  60.     <br>  
  61.     <a href="index.jsp">返回</a>  
  62. </body>  
  63. </html>  

3)、book_list.jsp 查找所有书籍信息的显示页面,以表格方式显示

[html]  view plain  copy
  1. <!--<%@page import="sun.awt.SunHints.Value"%>-->  
  2. <%@ page language="java" contentType="text/html; charset=utf-8"  
  3.     pageEncoding="utf-8"%>  
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  5.   
  6. <%@page import="java.util.List"%>  
  7. <%@page import="example.bean.book.Book"%>  
  8. <html>  
  9. <head>  
  10. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
  11. <title>所有图书信息</title>  
  12. <style type="text/css">  
  13. td {  
  14.     font-size: 12px;  
  15. }  
  16.   
  17. h2 {  
  18.     margin: 0px  
  19. }  
  20. </style>  
  21. <script type="text/javascript">  
  22.     function check(form) {  
  23.         with (form) {  
  24.             if (bookCount.value == "") {  
  25.                 alert("请输入更新数量!");  
  26.                 return false;  
  27.             }  
  28.             if (isNaN(bookCount.value)) {  
  29.                 alert("格式错误!");  
  30.                 return false;  
  31.             }  
  32.             return true;  
  33.         }  
  34.     }  
  35. </script>  
  36.   
  37.   
  38. </head>  
  39. <body>  
  40.     <table align="center" width="450" border="1" height="180"  
  41.         bordercolor="white" bgcolor="black" cellpadding="1" cellspacing="1">  
  42.         <tr bgcolor="white">  
  43.             <td align="center" colspan="7">  
  44.                 <h2>所有图书信息</h2>  
  45.             </td>  
  46.         </tr>  
  47.         <tr align="center" bgcolor="#e1ffc1">  
  48.             <td><b>ID</b></td>  
  49.             <td><b>图书名称</b></td>  
  50.             <td><b>价格</b></td>  
  51.             <td><b>数量</b></td>  
  52.             <td><b>作者</b></td>  
  53.             <td><b>修改</b></td>  
  54.             <td><b>删除</b></td>  
  55.         </tr>  
  56.         <%  
  57.             // 获取图书信息集合  
  58.             List<Book> list = (List<Book>) request.getAttribute("list");  
  59.             // 判断集合是否有效  
  60.             if (list == null || list.size() < 1) {  
  61.                 out.print("没有数据!");  
  62.             } else {  
  63.                 // 遍历图书集合中的数据  
  64.                 for (Book book : list) {  
  65.         %>  
  66.         <tr align="center"  bgcolor="white">  
  67.             <td><%=book.getId()%></td>  
  68.             <td><%=book.getName()%></td>  
  69.             <td><%=book.getPrice()%></td>  
  70.             <td><%=book.getBookCount()%></td>  
  71.             <td><%=book.getAuthor()%></td>  
  72.             <td >  
  73.                 <form style="align:center;  background-color: gray" action="UpdateServlet" method="post"  
  74.                     onsubmit="return check(this);">  
  75.                      <input type="hidden" name="id" value="<%=book.getId()%>"> <input  
  76.                         type="text" name="bookCount" size="3">  
  77.                      <input type="submit" value="修改数量">  
  78.                 </form>  
  79.             </td>  
  80.             <td>  
  81.             <a href="DeleteServlet?id=<%=book.getId()%>">删除</a>  
  82.             </td>  
  83.   
  84.   
  85.         </tr>  
  86.         <%  
  87.             }  
  88.             }  
  89.         %>  
  90.     </table>  
  91.     <h2 align="center">  
  92.         <a href="index.jsp">返回添加图书信息页面</a>  
  93.     </h2>  
  94.   
  95. </body>  
  96. </html>  

6、jdbc简单的封装

1)、ConnectionFactory.java工厂类

[java]  view plain  copy
  1. package example.dao.book;  
  2.   
  3. import java.sql.Connection;  
  4. import java.sql.DriverManager;  
  5. import java.sql.SQLException;  
  6.   
  7. public class ConnectionFactory {  
  8.       
  9.     private String driverClassName = "com.mysql.jdbc.Driver";  
  10.     private String url = "jdbc:mysql://localhost:3306/db_book?useUnicode=true&characterEncoding=utf-8";  
  11.     private String userName = "root";  
  12.     private String password = "";  
  13.       
  14.     private static ConnectionFactory connectionFactory=null;  
  15.   
  16.     private ConnectionFactory() {  
  17.           
  18.         try {  
  19.             Class.forName(driverClassName);  
  20.         } catch (ClassNotFoundException e) {  
  21.             e.printStackTrace();  
  22.         }  
  23.     }  
  24.       
  25.     public  Connection getConnection() throws SQLException  
  26.     {  
  27.         return DriverManager.getConnection(url, userName, password);  
  28.           
  29.     }  
  30.       
  31.     public static ConnectionFactory getInstance()  
  32.     {     
  33.         if (null==connectionFactory) {  
  34.             connectionFactory=new ConnectionFactory();  
  35.         }  
  36.         return connectionFactory;  
  37.           
  38.     }  
  39.       
  40.       
  41.   
  42. }  


2)、BookJdbcDao.java数据库操作封装类

[java]  view plain  copy
  1. package example.dao.book;  
  2.   
  3. import java.sql.Connection;  
  4. import java.sql.PreparedStatement;  
  5. import java.sql.ResultSet;  
  6. import java.sql.SQLException;  
  7.   
  8. import example.bean.book.Book;  
  9.   
  10. public class BookJdbcDao {  
  11.       
  12.     private PreparedStatement ptmt = null;  
  13.     private ResultSet rs = null;  
  14.   
  15.     public BookJdbcDao() {  
  16.     }  
  17.       
  18.       
  19.     public void findAll(Connection conn) throws SQLException  
  20.     {  
  21.         //to do  
  22.           
  23.     }  
  24.       
  25.     public void delete(Connection conn, int id) throws SQLException  
  26.     {  
  27.         String sql = "delete from tb_books where id=?";  
  28.         try{  
  29.             ptmt = conn.prepareStatement(sql);  
  30.             // 对SQL语句中的第一个占位符赋值  
  31.             ptmt.setInt(1, id);  
  32.             // 执行更新操作  
  33.             ptmt.executeUpdate();  
  34.               
  35.         }finally{  
  36.             if (null!=ptmt) {  
  37.                 ptmt.close();  
  38.             }  
  39.               
  40.             if (null!=conn) {  
  41.                 conn.close();  
  42.             }  
  43.               
  44.         }  
  45.           
  46.     }  
  47.       
  48.     public void update(Connection conn, int id ,int bookcount) throws SQLException  
  49.     {  
  50.         //to do  
  51.           
  52.     }  
  53.       
  54.   
  55. }  
上一篇:jsp页面的三级联动
下一篇:JSP
网友评论