(一)数据的添加

在这里通过一个简单的图书管理实验,该实验能够实现对图书的添加,查询,***,修改。通过该实验记录对数据库的基本操作,包括对数据库中数据的添加,查询,***,修改。同时实现对数据的分页查询和数据的批量***。

1、首先新建一个数据库和图书信息表,代码如下:

CREATE database db_jdbc;
USE 'db_jdbc';

drop table if exists tb_books;

CREATE table tb_books
(
bookId           bigint not null auto_increment comment'主键ID',
bookname         varchar(255) not null comment'书名',
bookauthor       varchar(255) comment'作者',
bookprice        float comment'图书价格',
booktype         varchar(255)  comment'图书类型',
createTime       timestamp not null comment'创建时间',
primary key(bookId)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8 comment = "图书信息表";


2、新建一个名为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=UTF-8">
<link rel=stylesheet type="text/css" href="../css/style.css" >
<script language="JavaScript" src="js/javaScript.js" type="text/javascript"></script>
<title>图书管理</title>
<style>
<!--
a {
	text-decoration:none;
	color:#0000FF;
}
a:hover{
	text-decoration:underline;
	color:#00FF00;
}
-->
</style>
</head>
<body>
<br>
<center>
<table width="1000" border="0">
  <tr>
    <td width="80">
      <img src="imeages/top.gif" width="100" height="80"/>
    </td>
    <td align="left">
      <div style="font-size:40px;">
      <b>图 书 管 理</b>
      </div>
    </td>
  </tr>
  <tr>
   <td height="30" align="left" valign="middle" colspan="2">
     <table width="100%">
       <tr>
          <td>
             [ <a href="index.jsp">首页</a> ]
             [ <a href="addBook.jsp">添加图书</a> ]
             [ <a href="BookListFilter">图书列表</a> ]
             [ <a href="#">***图书</a> ]
             [ <a href="#">修改图书</a> ]
          </td>
       </tr>
     </table>      
   </td>
  </tr>
</table>
<hr width="100%">
</center>
</body>
</html>


3、新建一个名为addBook.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=UTF-8">
<title>图书管理</title>
</head>
<body>
<center>
<%@ include file="index.jsp" %>
<h1>添加图书</h1>
<table width="320" border="0">
  <tr>
    <td align="left">
       <form name="addbook" method="post" action="AddBookFilter"><br>
                         图书书名:<input name="bookname" type="text" size="30"><br><br>
                         图书作者:<input name="bookauthor" type="text" size="30"><br><br>
                         图书类型:<select name="booktype">
           <option value="C语言">C语言</option>
           <option value="Java">Java</option>
           <option value="Java web">Java web</option>
           <option value="C++">C++</option>
           <option value="C#">C#</option>
           <option value="JSP">JSP</option>
           <option value="数据库">数据库</option>
           <option value="其它">其它</option>
       </select><br><br>
                         图书价格:<input name="bookprice" type="text" size="30"><br><br>
       <input name="addBut" type="submit" value="添 加">&nbsp;&nbsp;&nbsp;&nbsp;
       <input name="reset" type="reset" value="清 空">
       </form>
    </td>
  </tr>
</table>
</center>
</body>
</html>


4、新建一个名为com.action的包,并在此包中新建一个名为AddBookFilter的Servlet,用于把数据添加到数据库中。

package com.action;

import java.sql.*;
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class AddBookFilter
 */
@WebServlet("/AddBookFilter")
public class AddBookFilter extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public AddBookFilter() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		int id = 0;//图书ID
		int row = 0;//受影响的数据记录
		request.setCharacterEncoding("UTF-8");//设置请求编码,防止中文乱码
		String bookname = request.getParameter("bookname");
		String bookauthor = request.getParameter("bookauthor");
		String booktype =  request.getParameter("booktype");
		String bookprice = request.getParameter("bookprice");
		//加载jdbc驱动
		try{
			Class.forName("com.mysql.jdbc.Driver");
		}catch(ClassNotFoundException e){
			System.out.println(e);
		}
		//连接数据库
		try{
			//数据库连接字符串
			String url = "jdbc:mysql://localhost/db_jdbc?useUnicode=true&characterEncoding=UTF-8";
			String username = "root"; //数据库用户名
		    String password = "123";  //数据库密码		    
			Connection con = DriverManager.getConnection(url,username,password);
			Statement stat = con.createStatement();
			ResultSet rs = stat.executeQuery("select * from tb_books");
			//获取最后一条记录的ID
		    while(rs.next()){
		    	id=rs.getInt(1);
		    }
		    id++;//ID增加1
		    //添加数据记录SQL语句字符串
		    String sql="insert into tb_books(bookId,bookname,bookauthor,bookprice,booktype,createTime) values (?,?,?,?,?,?)";
		    PreparedStatement ps = con.prepareStatement(sql);
		    //获取当前时间
		    java.util.Date date = new java.util.Date();
		    java.sql.Timestamp time = new java.sql.Timestamp(date.getTime());
		    //添加数据到数据库
		    ps.setInt(1,id);
		    ps.setString(2,bookname);
		    ps.setString(3,bookauthor);
		    ps.setString(4,bookprice);
		    ps.setString(5,booktype);
		    ps.setTimestamp(6, time);
		    row = ps.executeUpdate();//更新数据库
		    ps.close();
			rs.close();  
			con.close();
		}catch(SQLException ee){
			System.out.println(ee);
		}

		response.setContentType("text/html;charset=UTF-8");//设置内容类型
		PrintWriter out = response.getWriter();//创建输出流对象
		out.println("<html><head><title>提示信息</title></head><body>");
		out.println("图书  ID:"+id+"<br><br>");
		out.println("图书书名:"+bookname+"<br><br>");
		out.println("图书作者:"+bookauthor+"<br><br>");
		out.println("图书类型:"+booktype+"<br><br>");
		out.println("图书价格:"+bookprice+"<br><br>");
		if(row>0){
		    out.println("添加图书信息记录<font color='red'>成功</font>,[ <a href='addBook.jsp'>继续添加<a> ]");
		}else{
			out.println("添加图书信息记录<font color='red'>失败</font>,[ <a href='addBook.jsp'>从新添加<a> ]");
		}
		out.println("</body></html>");
		out.close();
	}

}


5、运行结果

首页

wKioL1OOn2-B_ke4AAB8nreVlNw005.png


添加图书界面

wKiom1OOoFKBVeQDAACeQnmMrgg987.png


添加结果提示页面

wKiom1OOoSXwQJc-AAA4gevXb7A815.png