(一)数据的添加
在这里通过一个简单的图书管理实验,该实验能够实现对图书的添加,查询,***,修改。通过该实验记录对数据库的基本操作,包括对数据库中数据的添加,查询,***,修改。同时实现对数据的分页查询和数据的批量***。
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="添 加">
<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、运行结果
首页
添加图书界面
添加结果提示页面
转载于:https://blog.51cto.com/lzginfo/1421932