JSP实验报告使用JDBC实现数据库连接.docx

上传人:b****3 文档编号:27441765 上传时间:2023-07-01 格式:DOCX 页数:16 大小:205.18KB
下载 相关 举报
JSP实验报告使用JDBC实现数据库连接.docx_第1页
第1页 / 共16页
JSP实验报告使用JDBC实现数据库连接.docx_第2页
第2页 / 共16页
JSP实验报告使用JDBC实现数据库连接.docx_第3页
第3页 / 共16页
JSP实验报告使用JDBC实现数据库连接.docx_第4页
第4页 / 共16页
JSP实验报告使用JDBC实现数据库连接.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

JSP实验报告使用JDBC实现数据库连接.docx

《JSP实验报告使用JDBC实现数据库连接.docx》由会员分享,可在线阅读,更多相关《JSP实验报告使用JDBC实现数据库连接.docx(16页珍藏版)》请在冰豆网上搜索。

JSP实验报告使用JDBC实现数据库连接.docx

JSP实验报告使用JDBC实现数据库连接

 

广州中医药大学医学信息工程学院

实验报告

 

课程名称:

网络数据库编程

专业班级:

计算机科学与技术(2010)级

学生学号:

2010081126

学生姓名:

吕吕

实验名称:

实验成绩:

课程类别:

必修

□限选☑公选□其它□

实验三使用JDBC实现数据库连接

实验类型:

应用性实验实验日期:

[实验目的要求]

通过教学,使学生掌握使用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:

留言板实现步骤和代码:

用到文件,代码为:

<%@pagecontentType="text/html"pageEncoding="UTF-8"%>

登录

--Form用来提取用户填入并提交的信息-->

用户登录

用户名:



密码:



---->


界面截图:

 

2.连接数据库进行用户合法性检查,用到文件,若用户存在,则跳转到留言界面,代码如下:

<%@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.进入到留言界面后,进行留言,用到文件,代码为:

<%@pagecontentType="text/html;charset=GB2312"%>

functionclear()

{

document.getElementById("messageContent").value="";

}

留言板

body{color:

#0033FF;}

登录成功

用户信息:


姓名:

<%=request.getSession().getAttribute("sessionname")%>

学号:

<%=request.getSession().getAttribute("sessionpwd")%>

请输入您的留言:



--//
-->


界面截图:

4.留言成功后,将显示留言的记录,用到文件,代码为:

<%@pagecontentType="text/html;charset=GB2312"%>

--首先导入一些必要的packages-->

<%@pageinfo="databasehandler"%>

<%@pageimport="java.io.*"%>

<%@pageimport="java.lang.*"%>

<%@pageimport="java.util.*"%>

--告诉编译器使用SQL包-->

<%@pageimport="java.sql.*"%>

database

<%

//获取用户名

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(""+col1+""+col2+""+col3+"");

}

out.println("");

rs.close();

st.close();

con.close();

}

catch(Exceptionerr)

{

err.printStackTrace();

out.print("


");

out.println("connectingtothedatabaseiserror");

}

%>

界面截图:

提交后:

(以下为理论知识题)

8、JDBC的全称是什么,在JAVA的哪个包下?

答:

全称为JavaDataBaseConnectivity,java数据库连接,在里。

 

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();

ment("insertintot1(id)values(?

)");

for(inti=1;i<=100;i++){

pst.setInt(1,i);

pst.addBatch();

if(i%50==0){

pst.executeBatch();

connmit();

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)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1