广州中医药大学医学信息工程学院
实验报告
课程名称:网络数据库编程
专业班级:计算机科学与技术(2010)级
学生学号:2010081126
学生姓名:吕吕
实验名称:
实验成绩:
课程类别:必修□限选 公选□其它□
实验三使用JDBC实现数据库连接
实验类型:应用性实验实验日期: 2013.03.20
[实验目的要求]
通过教学,使学生掌握使用JDBC连接到数据库的方法(如通过JDBC-ODBC 桥或Pure Java Driver),能使用网页表单实现网页与数据库的交互。
[实验内容及步骤]
1、在数据库SQL SERVER中创建一个数据库JDBCTEST,并创建表
student_info,并设定字段,输入内容。
2、使用JDBC-ODBC实现数据库连接
a)打开“控制面板”的“管理工具”的“数据源(ODBC)”
b)建立数据源
c)选“系统数据源”,连接SQL SERVER数据库
d)测试是否连接成功
e)通过以下类Class、DriverManager、Connection(连接数据库用到的类),
及Statement、ResultSet(访问数据库用到的类)编写代码实现表
student_info数据的查询。
f)查询结果在页面中显示。
3、使用Pure Java Driver实现数据库连接(本题可以做可以不做)
a)安装sql-jdbc,如装在D盘
b)设置环境变量classpath,添加D:\sqljdbc\msbase.jar; D:\sqljdbc\msutil.jar;
D:\sqljdbc\mssqlserver.jar;
c)设SQL SERVER数据库用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文件,代码为:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
界面截图:
2.连接数据库进行用户合法性检查,用到verifylogin.jsp文件,若用户存在,则跳转到留言界面,代码如下:
<%@ page language="java" contentType="text/html;charset=gb2312" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.util.*"%>
<%
//获取用户名
String sUserName = request.getParameter("txtUserName");
//获取密码
String sPasswd = request.getParameter ( "txtPassword" );
//登记JDBC驱动程序
Class.forName ( "org.gjt.mm.mysql.Driver" ).newInstance ( );
String url = "jdbc:mysql://localhost/jsp-experiment";
//建立连接
Connection connection = DriverManager.getConnection ( url, "root","123" );
//SQL语句
String sql = "select * from studentinfo where StudentName='" + sUserName + "' and StudentNo = '" + sPasswd + "'";
Statement stmt = connection.createStatement ( );
ResultSet rs = 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文件,代码为:
<%@ page contentType="text/html;charset=GB2312" %>
function clear()
{
document.getElementById("messageContent").value="";
}
body {color: #0033FF;}
界面截图:
4.留言成功后,将显示留言的记录,用到insertMessage1.jsp文件,代码为:<%@ page contentType="text/html;charset=GB2312"%>
<%@ page info="database handler"%>
<%@ page import="java.io.*"%>
<%@ page import="https://www.doczj.com/doc/cc6088379.html,ng.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%
//获取用户名
String sUserName
=(String)request.getSession().getAttribute("sessionname");
//获取密码
String sPasswd =(String)request.getSession().getAttribute("sessionpwd");
//获取留言
String message= request.getParameter ("messageContent");
String url="jdbc:mysql://localhost/jsp-experiment";
String user ="root";//这里替换成你自已的数据库用户名
String password = "123";//这里替换成你自已的数据库用户密码
//String sqlStr = "select * from message where StudentNo='2010081126'";
//String sqlStr = "select * from studentinfo";
String sql = "insert into message(StudentNo,MessageTime,Message) values ('"+sPasswd+"',Now(),'"+message+"')";
String sqlStr="select * from message where StudentNo='"+sPasswd+"'";
try
{ //这里的异常处理语句是必需的.否则不能通过编译!
Class.forName("com.mysql.jdbc.Driver");
//out.println("com.mysql.jdbc.Driver类实例化成功!" );
//Connection con = DriverManager.getConnection(url);
Connection con = DriverManager.getConnection(url,user,password);
Statement st = con.createStatement();
st.execute(sql);
ResultSet rs = st.executeQuery(sqlStr);
out.println("添加留言成功!");
out.println("
");
out.println("您的留言记录为:");
out.println("
");
out.println("
"学号" | "留言时间" | "留言内容" |
"+col1+" | "+col2+" | "+col3+" | < /tr>");
rs.close();
st.close();
con.close();
}
catch(Exception err)
{
err.printStackTrace();
out.print("");
out.println("connecting to the database is error"); }
%>
界面截图:
提交后:
(以下为理论知识题)
8、JDBC的全称是什么,在JAVA的哪个包下?
答:全称为Java Data Base Connectivity,java数据库连接,在java.sql里。
9、JDBC连接数据库用到的类有哪些?
答:
1. Class//指定数据库驱动程序
2. DriverManager//驱动程序管理
3. Connection//数据库连接
10、比较JDBC数据库连接的JDBC-ODBC桥及Pure Java Driver方式的优缺点
答;
(1)JDBC-ODBC Bridge plus ODBC Driver
优点:可以沿用旧系统的设置
缺点:设置ODBC连接繁琐,在JDBC与ODBC中数据传递及转换上需要
一定的时间
(2)Pure Java Driver for Database Middleware
优点:不用在用户端做任何的设置或安装一些函数库,只需连接中间
层服务器
缺点:连接受中间层服务器影响
11、Statement与PreparedStatement的作用与区别?写一个程序实例如何用PreparedStatement实现批处理?(将100条记录插入预先设定好的数据库中)
答:
1. PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫
JDBC存储过程;
2. 使用Statement 对象。在对数据库只执行一次性存取的时侯,用Statement
对象进行处理。PreparedStatement 对象的开销比Statement大,对于一次性操作并不会带来额外的好处;
3. statement每次执行sql语句,相关数据库都要执行sql语句的编译,
preparedstatement是预编译得, preparedstatement支持批处理。
程序实例:
Public void exec3(Connection conn){
try {
conn.setAutoCommit(false);
Long beginTime = System.currentTimeMillis();
PreparedStatement pst = conn.prepareStatement("insert into t1(id)
values(?)");
for(int i=1;i<=100;i++){
pst.setInt(1, i);
pst.addBatch();
if(i%50==0){
pst.executeBatch();
https://www.doczj.com/doc/cc6088379.html,mit();
pst.clearBatch();
}
}
pst.executeBatch();
Long endTime = System.currentTimeMillis();
System.out.println("pst+batch用时:"+(endTime-beginTime)+"毫秒");
pst.close();
conn.close();
}
catch (SQLException e)
{
e.printStackTrace();
}
}
12、Statement接口提供了三种执行SQL语句的方法,它们分别是什么?
答:
查询方法:executeQuery;更新方法:executeUpdate;执行方法:execute
[实验体会]
请在下方写出你对本实验的看法,例如你认为实验难度如何?你能够独立实验吗?如果不能,你认为原因是什么?
1、实验难度:难()中等(√)容易()
2、能否按指定要求,在指定时间内完成所有实验?能(能)否()
如果不能,不能完成实验有
(作业提交说明:实验完成后,将此文档和相关的JSP文件一并压缩后提交上来,
文件名为自己的学号+实验几,如2002000001+实验几.RAR)
随笔- 6 文章- 0 评论- 1 Java连接各种数据库写法 # 示例配置参考,涵盖几乎所有的主流数据库 ############# Oracle数据库######################## # 数据库驱动名 driver=oracle.jdbc.driver.OracleDriver # 数据库URL(包括端口) dburl=jdbc:oracle:thin:@127.0.0.1:1521:zvfdb # 数据库用户名 user=root # 用户密码
password=zvfims ############# DB2数据库######################## # 数据库驱动名 driver=com.ibm.db2.jcc.DB2Driver # 数据库URL(包括端口) dburl=jdbc:db2://127.0.0.1:50000/zvfdb # 数据库用户名 user=root # 用户密码 password=zvfims ############# MySQL数据库######################## # 数据库驱动名
driver=com.mysql.jdbc.Driver # 数据库URL(包括端口) dburl=jdbc:mysql://127.0.0.1:3306/zvfdb # 数据库用户名 user=root # 用户密码 password=zvfims ############# PostgreSQL数据库数据库######################## # 数据库驱动名 driver=org.postgresql.Driver # 数据库URL(包括端口) dburl=jdbcostgresql://127.0.0.1/zvfdb
实验1 网页程序设计-JavaScript 一、实验目的 1. 掌握JavaScript技术,基本掌握JavaScript的开发技巧; 2. 利用文本编辑器建立JavaScript脚本语言进行简单编程。 二、实验要求: 1. 根据以下实验内容书写实验准备报告。 2. 独立完成实验。 三、实验内容 1.显示一个动态的时钟 在文本编辑器“记事本”中输入如下代码程序,请仔细阅读下列程序语句,理解每条语句的作用。源程序清单如下:
运行结果:1.C#连接连接Access 程序代码: using System.Data; using System.Data.OleDb; .. string strConnection="Provider=Microsoft.Jet.OleDb.4.0;"; strConnection+=@"Data Source=C:BegASPNETNorthwind.mdb"; OleDbConnection objConnection=new OleDbConnection(strConnection); .. objConnection.Open(); objConnection.Close(); 解释: 连接Access数据库需要导入额外的命名空间,所以有了最前面的两条using命令,这是必不可少的! strConnection这个变量里存放的是连接数据库所需要的连接字符串,他指定了要使用的数据提供者和要使用的数据源. "Provider=Microsoft.Jet.OleDb.4.0;"是指数据提供者,这里使用的是Microsoft Jet引擎,也就是Access中的数据引擎,https://www.doczj.com/doc/cc6088379.html,就是靠这个和Access的数据库连接的. "Data Source=C:\BegASPNET\Northwind.mdb"是指明数据源的位置,他的标准形式是"Data
Source=MyDrive:MyPath\MyFile.MDB". PS: 1."+="后面的"@"符号是防止将后面字符串中的"\"解析为转义字符. 2.如果要连接的数据库文件和当前文件在同一个目录下,还可以使用如下的方法连接: strConnection+="Data Source="; strConnection+=MapPath("Northwind.mdb"); 这样就可以省得你写一大堆东西了! 3.要注意连接字符串中的参数之间要用分号来分隔. "OleDbConnection objConnection=new OleDbConnection(strConnection);"这一句是利用定义好的连接字符串来建立了一个链接对象,以后对数据库的操作我们都要和这个对象打交道. "objConnection.Open();"这用来打开连接.至此,与Access数据库的连接完成. 2.C#连接SQL Server 程序代码: using System.Data; using System.Data.SqlClient; .. string strConnection="user id=sa;password=;"; strConnection+="initial catalog=Northwind;Server=YourSQLServer;";
Jsp实验报告 课程设计名称:兼职网站 系:交通运输管理学院学生姓名: 班级: 学号: 成绩: 指导教师: 开课时间:2013学年第2 学期
一.设计题目 兼职网站 二.主要内容 本网站涉及兼职信息、用户信息的数据管理。从管理的角度可将信息分为两类:兼职信息管理、用户数据管理。用户数据管理为用户的登录判定,兼职信息管理包括兼职信息显示及兼职信息的录入、查询和删除。 (1)用户的登录判定 (2)录入兼职的信息,并保存到数据库中 (3)根据用户的需求选择查询方式,查询相关兼职信息 (4)将信息从数据库中删除 三.具体要求 (1)建立数据库表格存储用户数据(用户名及密码)。 (2)建立数据库表格存储兼职信息,主要包括ID、兼职名称、地点、工资和联系方式。 (3)编写jsp 语句连接数据库 (4)利用request函数提交表单,获取输入信息 (5)以SQL语句对数据库进行操作,完成信息的添加,查询及删除等功能。四.进度安排 五.成绩评定 正文 1、系统的需求分析和功能设计 随着电子信息在人们生活中的的使用比重不断增加,人们越来越习惯在网站上查找自己所需
要的信息不仅仅只是因其快捷,更因其接触的面更加广泛,信息的基础量足够大,足以满足人们更加细化的需求。在寻找兼职体验工作生活或赚取生活费用时,可以减少时间的浪费及其他不必要的消耗。 本网站涉及兼职信息、用户信息的数据管理。从管理的角度可将信息分为两类:兼职信息管理、用户数据管理。用户数据管理为用户的登录判定,兼职信息管理包括兼职信息显示及兼职信息的录入、查询和删除。用户登录后可以根据自己的需要对信息进行添加、查询和删除的操作 2、源程序及注释 主页:<%@page language="java"contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>