JSP实验报告使用JDBC实现数据库连接.docx
- 文档编号:9314981
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:16
- 大小:205.22KB
JSP实验报告使用JDBC实现数据库连接.docx
《JSP实验报告使用JDBC实现数据库连接.docx》由会员分享,可在线阅读,更多相关《JSP实验报告使用JDBC实现数据库连接.docx(16页珍藏版)》请在冰豆网上搜索。
JSP实验报告使用JDBC实现数据库连接
广州中医药大学医学信息工程学院
实验报告
课程名称:
网络数据库编程
专业班级:
计算机科学与技术(2010)级
学生学号:
2010081126
学生姓名:
吕吕
实验名称:
实验成绩:
课程类别:
必修
□限选公选□其它□
实验三使用JDBC实现数据库连接
实验类型:
应用性实验实验日期:
2013.03.20
[实验目的要求]
通过教学,使学生掌握使用JDBC连接到数据库的方法(如通过JDBC-ODBC桥或PureJavaDriver),能使用网页表单实现网页与数据库的交互。
[实验内容及步骤]
1、在数据库SQLSERVER中创建一个数据库JDBCTEST,并创建表student_info,并设定字段,输入内容。
2、使用JDBC-ODBC实现数据库连接
a)打开“控制面板”的“管理工具”的“数据源(ODBC)”
b)建立数据源
c)选“系统数据源”,连接SQLSERVER数据库
d)测试是否连接成功
e)通过以下类Class、DriverManager、Connection(连接数据库用到的类),及Statement、ResultSet(访问数据库用到的类)编写代码实现表student_info数据的查询。
f)查询结果在页面中显示。
3、使用PureJavaDriver实现数据库连接(本题可以做可以不做)
a)安装sql-jdbc,如装在D盘
b)设置环境变量classpath,添加D:
\sqljdbc\msbase.jar;D:
\sqljdbc\msutil.jar;D:
\sqljdbc\mssqlserver.jar;
c)设SQLSERVER数据库用Windows和数据库混合身分验证的方式。
d)通过以下类Class、DriverManager、Connection(连接数据库用到的类),及Statement、ResultSet(访问数据库用到的类)编写代码实现表student_info数据的查询。
e)查询结果在页面中显示。
4、通过表单传递数据,实现数据库的插入、删除与更新操作,并显示插入结果。
5、熟悉JSP中各种常用的内建对象如request对象、session对象、application对象的使用。
6、熟悉各种表单的处理的方法:
如选择按钮的使用、多选方块的使用、群组检查的使用、隐藏栏位的使用、在客户端进行数据检查
7、试利用上述知识实现一个留言板系统。
以下需要同学们贴上第7题经调试好代码:
数据库对应的表1
答:
本人在MySql数据库中建立了数据库jsp-experiment,再建立两个表,一为表studentinfo,存放学生的基本信息,另一个表为message,用来存放学生的留言记录,截图如下:
数据库:
jsp-experiment
表studentinfo:
表message:
留言板实现步骤和代码:
1.用户登录用到userlogin.jsp文件,代码为:
<%@pagecontentType="text/html"pageEncoding="UTF-8"%>
--Form用来提取用户填入并提交的信息-->
用户名:
密码:
--
界面截图:
2.连接数据库进行用户合法性检查,用到verifylogin.jsp文件,若用户存在,则跳转到留言界面,代码如下:
<%@pagelanguage="java"contentType="text/html;charset=gb2312"pageEncoding="UTF-8"%>
<%@pageimport="java.sql.*"%>
<%@pageimport="java.util.*"%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
--
-->
<%
//获取用户名
StringsUserName=request.getParameter("txtUserName");
//获取密码
StringsPasswd=request.getParameter("txtPassword");
//登记JDBC驱动程序
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
Stringurl="jdbc:
mysql:
//localhost/jsp-experiment";
//建立连接
Connectionconnection=DriverManager.getConnection(url,"root","123");
//SQL语句
Stringsql="select*fromstudentinfowhereStudentName='"+sUserName+"'andStudentNo='"+sPasswd+"'";
Statementstmt=connection.createStatement();
ResultSetrs=stmt.executeQuery(sql);
//返回查询结果,如果记录集非空,表明有匹配的用户名和密码,登陆成功
if(rs.next())
{
request.getSession().setAttribute("sessionname",sUserName);//用Session保存用户名
request.getSession().setAttribute("sessionpwd",sPasswd);//保存密码
response.sendRedirect("messageBoard.jsp");}
else//否则登录失败
{
out.println("用户名不存在或密码错误!
");
response.sendRedirect("userlogin.jsp");
}
rs.close();
stmt.close();
connection.close();
%>
3.进入到留言界面后,进行留言,用到messageBoard.jsp文件,代码为:
<%@pagecontentType="text/html;charset=GB2312"%>
functionclear()
{
document.getElementById("messageContent").value="";
}
body{color:
#0033FF;}
姓名:
<%=request.getSession().getAttribute("sessionname")%>
学号:
<%=request.getSession().getAttribute("sessionpwd")%>
请输入您的留言:
--//
-->
界面截图:
4.留言成功后,将显示留言的记录,用到insertMessage1.jsp文件,代码为:
<%@pagecontentType="text/html;charset=GB2312"%>
--首先导入一些必要的packages-->
<%@pageinfo="databasehandler"%>
<%@pageimport="java.io.*"%>
<%@pageimport="java.lang.*"%>
<%@pageimport="java.util.*"%>
--告诉编译器使用SQL包-->
<%@pageimport="java.sql.*"%>
<%
//获取用户名
StringsUserName=(String)request.getSession().getAttribute("sessionname");
//获取密码
StringsPasswd=(String)request.getSession().getAttribute("sessionpwd");
//获取留言
Stringmessage=request.getParameter("messageContent");
Stringurl="jdbc:
mysql:
//localhost/jsp-experiment";
Stringuser="root";//这里替换成你自已的数据库用户名
Stringpassword="123";//这里替换成你自已的数据库用户密码
//StringsqlStr="select*frommessagewhereStudentNo='2010081126'";
//StringsqlStr="select*fromstudentinfo";
Stringsql="insertintomessage(StudentNo,MessageTime,Message)values('"+sPasswd+"',Now(),'"+message+"')";
StringsqlStr="select*frommessagewhereStudentNo='"+sPasswd+"'";
try
{//这里的异常处理语句是必需的.否则不能通过编译!
Class.forName("com.mysql.jdbc.Driver");
//out.println("com.mysql.jdbc.Driver类实例化成功!
");
//Connectioncon=DriverManager.getConnection(url);
Connectioncon=DriverManager.getConnection(url,user,password);
Statementst=con.createStatement();
st.execute(sql);
ResultSetrs=st.executeQuery(sqlStr);
out.println("添加留言成功!
");
out.println("
");
out.println("您的留言记录为:
");
out.println("
");
out.println("
//out.println("
while(rs.next())
{
Stringcol1=rs.getString("StudentNo");
Stringcol2=rs.getString("MessageTime");
Stringcol3=rs.getString("Message");
//打印所显示的数据
out.println("
}
out.println("");
rs.close();
st.close();
con.close();
}
catch(Exceptionerr)
{
err.printStackTrace();
out.print("");
out.println("connectingtothedatabaseiserror");
}
%>
界面截图:
提交后:
(以下为理论知识题)
8、JDBC的全称是什么,在JAVA的哪个包下?
答:
全称为JavaDataBaseConnectivity,java数据库连接,在java.sql里。
9、JDBC连接数据库用到的类有哪些?
答:
1.Class//指定数据库驱动程序
2.DriverManager//驱动程序管理
3.Connection//数据库连接
10、比较JDBC数据库连接的JDBC-ODBC桥及PureJavaDriver
方式的优缺点
答;
(1)JDBC-ODBCBridgeplusODBCDriver
优点:
可以沿用旧系统的设置
缺点:
设置ODBC连接繁琐,在JDBC与ODBC中数据传递及转换上需要一定的时间
(2)PureJavaDriverforDatabaseMiddleware
优点:
不用在用户端做任何的设置或安装一些函数库,只需连接中间层服务器
缺点:
连接受中间层服务器影响
11、Statement与PreparedStatement的作用与区别?
写一个程序实例如何用PreparedStatement实现批处理?
(将100条记录插入预先设定好的数据库中)
答:
1.PreparedStatement是预编译的,对于批量处理可以大大提高效率.也叫JDBC存储过程;
2.使用Statement对象。
在对数据库只执行一次性存取的时侯,用Statement对象进行处理。
PreparedStatement对象的开销比Statement大,对于一次性操作并不会带来额外的好处;
3.statement每次执行sql语句,相关数据库都要执行sql语句的编译,preparedstatement是预编译得,preparedstatement支持批处理。
程序实例:
Publicvoidexec3(Connectionconn){
try{
conn.setAutoCommit(false);
LongbeginTime=System.currentTimeMillis();
PreparedStatementpst=conn.prepareStatement("insertintot1(id)values(?
)");
for(inti=1;i<=100;i++){
pst.setInt(1,i);
pst.addBatch();
if(i%50==0){
pst.executeBatch();
mit();
pst.clearBatch();
}
}
pst.executeBatch();
LongendTime=System.currentTimeMillis();
System.out.println("pst+batch用时:
"+(endTime-beginTime)+"毫秒");
pst.close();
conn.close();
}
catch(SQLExceptione)
{
e.printStackTrace();
}
}
12、Statement接口提供了三种执行SQL语句的方法,它们分别是什么?
答:
查询方法:
executeQuery;更新方法:
executeUpdate;执行方法:
execute
[实验体会]
请在下方写出你对本实验的看法,例如你认为实验难度如何?
你能够独立实验吗?
如果不能,你认为原因是什么?
1、实验难度:
难()中等(√)容易()
2、能否按指定要求,在指定时间内完成所有实验?
能(能)否()
如果不能,不能完成实验有
(作业提交说明:
实验完成后,将此文档和相关的JSP文件一并压缩后提交上来,文件名为自己的学号+实验几,如2002000001+实验几.RAR)