实验七.docx
- 文档编号:29176341
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:17
- 大小:52.16KB
实验七.docx
《实验七.docx》由会员分享,可在线阅读,更多相关《实验七.docx(17页珍藏版)》请在冰豆网上搜索。
实验七
实验七JDBC数据库编程
----------XXX
一、实验目的
1、掌握JDBC工作原理。
2、掌握JDBC编程中Connection、Statement、ResulSet等几个主要的类的使用。
3、了解连接池的概念和应用。
二、实验类型
设计型
三、实验内容
1、首先运行教材或实验指导书上的一些例子程序,然后自己设计一个数据库。
通过JDBC来进行数据库的访问,以Access或SQLServer等为数据库管理系统,建立一个用于图书管理的简单数据库,书的
信息包括索引号、书名、作者、定价、出版社等。
要求具有图书记录的查询、添加、修改、删除和显示等功能。
通过mysql设置数据库如下:
1.DB。
Java
packageguet.zxs;
importjava.sql.*;
importjava.util.*;
importguet.zxs.*;
publicclassDB{
privatestaticfinalStringDBDRIVER="com.mysql.jdbc.Driver";
privatestaticfinalStringDBURL="jdbc:
mysql:
//localhost:
3306/book";
privatestaticfinalStringDBNAME="root";
privatestaticfinalStringDBPWD="zxs";
privateConnectioncon;
privateStatementstm;
privateResultSetrs;
publicDB(){
//TODOAuto-generatedconstructorstub
try{
Class.forName(DBDRIVER);
System.out.println("数据库驱动加载成功!
");
}catch(Exceptione){
e.printStackTrace();//TODO:
handleexception
System.out.println("数据库驱动加载失败!
");
}
}
publicList
getCon();
List
try{
stm=con.createStatement();
ResultSetrs=stm.executeQuery("select*frombook");
while(rs.next()){
Bookbook=newBook();
System.out.print(rs.getString
(1));
book.setBookid(rs.getInt("bookid"));
book.setName(rs.getString("name"));
book.setAuthor(rs.getString("author"));
book.setPrice(rs.getFloat("price"));
book.setPubli(rs.getString("publi"));
list.add(book);
}
}catch(Exceptione){
System.out.print("getdataerror!
");
e.printStackTrace();
}
returnlist;
}
privatevoidgetCon(){
try{
if(con==null){
con=DriverManager.getConnection(DBURL,DBNAME,DBPWD);
System.out.println("数据库驱动加载成功!
");
}
}catch(SQLExceptione){
e.printStackTrace();
System.out.println("创建数据库连接失败!
");
}
}
publicvoidaddBook(Bookbook){
getCon();
StringaddSQL="insertintobook(name,author,price,publi)values(?
?
?
?
)";
PreparedStatementpstmt=null;
try{
pstmt=con.prepareStatement(addSQL);
//pstmt.setInt(0,book.getBookid());
pstmt.setString(1,book.getName());
pstmt.setString(2,book.getAuthor());
pstmt.setFloat(3,book.getPrice());
pstmt.setString(4,book.getPubli());
pstmt.executeUpdate();
}catch(SQLExceptione){
e.printStackTrace();
System.out.println("创添加失败");
}finally{
//closed();
}
}
publicvoidupdateCommodity(Bookbook){
getCon();
StringupdateSQL="updatebooksetbookid=?
";
StringupdateSql="updatebook(name,author,price,publi)setvalues(?
?
?
?
)wherebookid='"+book.getBookid()+"'";
PreparedStatementpstmt=null;
try{
pstmt=con.prepareStatement(updateSQL);
pstmt.setString(1,book.getName());
pstmt.setString(2,book.getAuthor());
pstmt.setFloat(3,book.getPrice());
pstmt.setString(4,book.getPubli());
pstmt.executeUpdate();
}catch(SQLExceptione){
e.printStackTrace();
}finally{
closed();
}
}
publicbooleandeleteBook(intbookid){
getCon();
StringupdateSQL="deletefrombookwherebookid=?
";
PreparedStatementpstmt=null;
try{
pstmt=con.prepareStatement(updateSQL);
pstmt.setInt(1,bookid);
pstmt.executeUpdate();
}catch(SQLExceptione){
e.printStackTrace();
returnfalse;
}finally{
closed();
}
returntrue;
}
privatevoidgetStm(){
if(stm==null){
try{
getCon();
stm=con.createStatement();
}catch(SQLExceptione){
e.printStackTrace();
System.out.println("创建Statement对象失败!
");
}
}
}
privatevoidgetStmed(){
if(stm==null){
try{
getCon();
stm=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
}catch(SQLExceptione){
e.printStackTrace();
System.out.println("创建用来生成可滚动结果集的Statement对象失败!
");
}
}
}
publicResultSetRead(Stringsql){
if(sql==null)
sql="";
System.out.println("sql:
"+sql);
getStmed();
ResultSetrs=null;
try{
rs=stm.executeQuery(sql);
}catch(SQLExceptione){
rs=null;
e.printStackTrace();
System.out.println("查询数据库失败!
");
}
returnrs;
}
publicvoidclosed(){
try{
if(rs!
=null){
rs.close();
}
if(stm!
=null){
stm.close();
}
if(con!
=null){
con.close();
}
}catch(SQLExceptione){
e.printStackTrace();
System.out.println("关闭数据库失败!
");
}
}
}
2.index.jsp
<%@taglibprefix="c"uri="
<%@taglibprefix="fmt"uri="
<%@pagecontentType="text/html"pageEncoding="UTF-8"%>
<%@pageimport="guet.zxs.*"%>
<%@pageimport="java.util.*"%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"
"http:
//www.w3.org/TR/html4/loose.dtd">
<%
DBdb=newDB();
List
pageContext.setAttribute("booklist",booklist);
%>
style="color: #FFFFFF;font-size: 40px;height: 60px;">欢迎进入xxx购物网
forEachvar="book"items="${pageScope.booklist}"> <%--循环输出商品信息--%> bookid=${book.bookid}">添加 bookid=${book.bookid}">修改 bookid=${book.bookid}">删除${book.bookid} ${book.name} ${book.author} ${book.price} ${book.publi}
forEach>
3.add.jsp
<%@pagecontentType="text/html"pageEncoding="UTF-8"%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"
"http:
//www.w3.org/TR/html4/loose.dtd">
4.addsuces.jsp
<%@taglibprefix="c"uri="
<%@taglibprefix="fmt"uri="
<%@pagecontentType="text/html"pageEncoding="UTF-8"%>
<%@pageimport="guet.zxs.*"%>
<%@pageimport="java.util.*"%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"
"http:
//www.w3.org/TR/html4/loose.dtd">
<%
Bookbook=newBook();
//Stringbookid=request.getParameter("bookid");
Stringname=request.getParameter("bookname");
Stringauthor=request.getParameter("author");
Stringprice=request.getParameter("price");
Stringbubli=request.getParameter("bubli");
//book.setBookid(Integer.parseInt(bookid));
book.setName(name);
book.setAuthor(author);
book.setPrice(Float.parseFloat(price));
book.setPubli(bubli);
DBdb=newDB();
db.addBook(book);
%>
添加成功
5.delete.jsp
<%@pagecontentType="text/html"pageEncoding="UTF-8"%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"
"http:
//www.w3.org/TR/html4/loose.dtd">
<%@pageimport="guet.zxs.*"%>
<%@pageimport="java.util.*"%>
<%
Stringbookid=request.getParameter("bookid");
DBdb=newDB();
Booleantemp=db.deleteBook(Integer.parseInt(bookid));
%>
<%
if(temp){
%>
删除成功!
<%
}else{
%>
删除失败!
<%}%>
6.xiugai.jsp
<%@pagecontentType="text/html"pageEncoding="UTF-8"%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"
"http:
//www.w3.org/TR/html4/loose.dtd">
--
四、实验总结
通过此次实验,掌握了jdbc连接数据库和对数据库的操作,通过对数据的增删查改的操作,掌握数据库的使用。
在实验中还是遇到了很多问题,比如在添加数据的时候主键自增的问题。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验