web实验报告——数据库连接与应用(SQL Server)
2010-09-13 16:27
615 查看
实验九数据库连接的应用
一、实验目的
通过实验掌握下列知识:
1、掌握数据库连接技术;
2、掌握使用JAVA技术与select语句进行数据查询的方法;
3、掌握使用JAVA技术进行数据插入等修改操作的方法。
二、实验内容及步骤
1、实验说明
1)把sql server的权限认证方式改为混合认证(通过“企业管理器”)
2)把服务器实例TCP/IP监听端口改为1433(通过“服务器网络实用工具”)
3)试运行web应用dbexample中的testSqlServer.jsp页面,若有输出,说明sql server链接成功。
附:JDBC相关代码和sql server驱动包下载地址http://wljx.zjut.edu.cn/common/script/download.jsp?fileid=33965&resid=43288
建立一个edu的数据库,当中在建一个T_User的表
表的参数类型和数据为
新建odbc
LOCAL(WINDOWS NT)——安全性——登陆——新建登陆
双击新建的登陆,并修改它们的相关属性
修改数据库的登陆
LOCAL(WINDOWS NT)——右键属性——安全性——SQL Server和Windows
建立ODBC:
控制面板——管理工具——数据源(ODBC)——系统DSN——localServer——配置
新建一个bdexample的web project工程,再建一个testsSqlServer.jsp文件,
testsSqlServer.jsp源代码:
<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312"%>
<!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=gb2312">
<title>Insert title here</title>
</head>
<body>
<%@ page import="java.sql.*" %>
<%
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");// .microsoft.jdbc.sqlServer.SQLServerDriver");
Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=edu","test","test");
Statement st=conn.createStatement();
st.setMaxRows(20);
String sqlStr="select * from T_User";
ResultSet rs=st.executeQuery(sqlStr);
%>
<table width=200 border=1>
<tr>
<td width=100>用户名</td>
<td width=100>密码</td>
</tr>
<%
while(rs.next())
{%>
<tr>
<td><%=rs.getString("uid")%></td>
<td><%=rs.getString("upwd")%></td>
</tr>
<%
}
rs.close(); st.close(); conn.close();
%>
</table>
</body>
</html>
运行结果:
2、数据库操作练习
在实验八的基础上修改ShoppingCart例子,实现基于数据库的购物车程序
1)数据库设计(access或sql server 2000);
a)通过access或sql server 2000创建一个数据库BookStore;
b)在该数据库中创建包括用户信息与商品信息两张表;
2)修改登录页面,将登录表单信息与数据库中读出的信息(用户名与密码)进行比较,以判断是否登录成功;
源代码:
Lodin.jsp
<%@ page language="java" contentType="text/html; charset=GB2312"
pageEncoding="GB2312"%>
<!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=GB2312">
<title>用户登录</title>
</head>
<body>
<form action="http://localhost:8080/testsql/servlet/CheckPwd" method="get">
用户名:<input type=text name=userid size=20><br>
密码: <input type=password name=userpwd size=20><br>
<input type=submit value="登录">
</form>
</body>
</html>
CheckPwd.java
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;
/**
*ServletimplementationclassCheckPwd
*/
publicclass CheckPwd extends HttpServlet {
privatestaticfinallongserialVersionUID = 1L;
/**
*@seeHttpServlet#HttpServlet()
*/
public CheckPwd() {
super();
// TODO Auto-generated constructor stub
}
/**
*@seeHttpServlet#doGet(HttpServletRequestrequest,HttpServletResponseresponse)
*/
protectedvoid doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String uid = request.getParameter("userid");
System.out.println(uid);
String pwd = request.getParameter("userpwd");
System.out.println(pwd);
String query = "select * from T_user where uid='"+uid+"' and upwd='"+pwd+"'";
System.out.println(query);
//String query = "select * from T_user where uid='zhujiadun' and upwd='123456' ";
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=edu","test","test");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(query);
System.out.println("ok");
if(rs.next()){
response.sendRedirect("KidsBooksPage");
}
else{
response.sendRedirect("http://localhost:8080/testsql/Login.jsp");
}
rs.close();
st.close();
con.close();
}catch (ClassNotFoundException ex){
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
*@seeHttpServlet#doPost(HttpServletRequestrequest,HttpServletResponseresponse)
*/
protectedvoid doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request,response);
}
}
运行结果:
3)修改CatalogPage,实现从数据库中读取书本信息并且显示。
源代码:
在sql Server的edu数据库中新建一张KidsBooks表
格式和内容如下
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
publicclass KidsBooksPage extends CatalogPage {
publicvoid init() {
String[] ids = new String[3];
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=edu","test","test");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select * from KidsBooks ");
int i = 0;
while(rs.next()){
ids[i] = rs.getString(1);
i++;
}
setItems(ids);
setTitle("All-Time Best Children's Fantasy Books");
rs.close();
st.close();
con.close();
}catch (ClassNotFoundException ex){
} catch (SQLException e) {
e.printStackTrace();
}
}
}
运行结果:
中途遇到的问题:
JDBC连接SQLServer的错误Error establishing socket
我在网上查询到问题解决的方式有大概如下 种:
一 配置错误
jdbc配置语句为: jdbc:microsoft:sqlserver://server_name:1433
其中的sqlserver、server_name和端口号都要看仔细了。
二 1433端口问题
可以通过命令“netstat -an”,来查看是否开了1433端口,如果列表中没有,要增开端口。
要保持jdbc配置语句( jdbc:microsoft:sqlserver://server_name:1433)中的端口与数据库传输协议默认的端口相同。
MSSQL设置端口号步骤如下:
1. 打开企业管理器,依次在控制台根目录 ->Microsoft SQL Servers->SQL Server 组,列出一部分数据库服务器。
2. 右击我们要连接的数据库服务器,选择属性,在常规选项卡点击网络配置弹出新窗口。
3. 在启用的协议区域我们选择 TCP/IP ,点击属性按钮,弹出新窗口。在这个窗口有网络协议默认值设置,一般默认端口是:1433。 如果你在url中用的端口号与这个不同,就会出现错误。应保持二者相同。
三 没打补丁
可以用如下的方式查看MSSQL的版本:
打开企业管理器-〉工具-〉SQL查询分析器-〉帮助-〉关于
查看MSSQL的详细版本号
如果 是 8.00.194 就是还没打补丁
8.00.760 就是SP3
8.00.2039 就是SP4
我一直遇到的问题就是因为三没打补丁,等安装了补丁之后,问题就解决了
一、实验目的
通过实验掌握下列知识:
1、掌握数据库连接技术;
2、掌握使用JAVA技术与select语句进行数据查询的方法;
3、掌握使用JAVA技术进行数据插入等修改操作的方法。
二、实验内容及步骤
1、实验说明
1)把sql server的权限认证方式改为混合认证(通过“企业管理器”)
2)把服务器实例TCP/IP监听端口改为1433(通过“服务器网络实用工具”)
3)试运行web应用dbexample中的testSqlServer.jsp页面,若有输出,说明sql server链接成功。
附:JDBC相关代码和sql server驱动包下载地址http://wljx.zjut.edu.cn/common/script/download.jsp?fileid=33965&resid=43288
建立一个edu的数据库,当中在建一个T_User的表
表的参数类型和数据为
新建odbc
LOCAL(WINDOWS NT)——安全性——登陆——新建登陆
双击新建的登陆,并修改它们的相关属性
修改数据库的登陆
LOCAL(WINDOWS NT)——右键属性——安全性——SQL Server和Windows
建立ODBC:
控制面板——管理工具——数据源(ODBC)——系统DSN——localServer——配置
新建一个bdexample的web project工程,再建一个testsSqlServer.jsp文件,
testsSqlServer.jsp源代码:
<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312"%>
<!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=gb2312">
<title>Insert title here</title>
</head>
<body>
<%@ page import="java.sql.*" %>
<%
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");// .microsoft.jdbc.sqlServer.SQLServerDriver");
Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=edu","test","test");
Statement st=conn.createStatement();
st.setMaxRows(20);
String sqlStr="select * from T_User";
ResultSet rs=st.executeQuery(sqlStr);
%>
<table width=200 border=1>
<tr>
<td width=100>用户名</td>
<td width=100>密码</td>
</tr>
<%
while(rs.next())
{%>
<tr>
<td><%=rs.getString("uid")%></td>
<td><%=rs.getString("upwd")%></td>
</tr>
<%
}
rs.close(); st.close(); conn.close();
%>
</table>
</body>
</html>
运行结果:
2、数据库操作练习
在实验八的基础上修改ShoppingCart例子,实现基于数据库的购物车程序
1)数据库设计(access或sql server 2000);
a)通过access或sql server 2000创建一个数据库BookStore;
b)在该数据库中创建包括用户信息与商品信息两张表;
2)修改登录页面,将登录表单信息与数据库中读出的信息(用户名与密码)进行比较,以判断是否登录成功;
源代码:
Lodin.jsp
<%@ page language="java" contentType="text/html; charset=GB2312"
pageEncoding="GB2312"%>
<!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=GB2312">
<title>用户登录</title>
</head>
<body>
<form action="http://localhost:8080/testsql/servlet/CheckPwd" method="get">
用户名:<input type=text name=userid size=20><br>
密码: <input type=password name=userpwd size=20><br>
<input type=submit value="登录">
</form>
</body>
</html>
CheckPwd.java
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;
/**
*ServletimplementationclassCheckPwd
*/
publicclass CheckPwd extends HttpServlet {
privatestaticfinallongserialVersionUID = 1L;
/**
*@seeHttpServlet#HttpServlet()
*/
public CheckPwd() {
super();
// TODO Auto-generated constructor stub
}
/**
*@seeHttpServlet#doGet(HttpServletRequestrequest,HttpServletResponseresponse)
*/
protectedvoid doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String uid = request.getParameter("userid");
System.out.println(uid);
String pwd = request.getParameter("userpwd");
System.out.println(pwd);
String query = "select * from T_user where uid='"+uid+"' and upwd='"+pwd+"'";
System.out.println(query);
//String query = "select * from T_user where uid='zhujiadun' and upwd='123456' ";
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=edu","test","test");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(query);
System.out.println("ok");
if(rs.next()){
response.sendRedirect("KidsBooksPage");
}
else{
response.sendRedirect("http://localhost:8080/testsql/Login.jsp");
}
rs.close();
st.close();
con.close();
}catch (ClassNotFoundException ex){
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
*@seeHttpServlet#doPost(HttpServletRequestrequest,HttpServletResponseresponse)
*/
protectedvoid doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request,response);
}
}
运行结果:
3)修改CatalogPage,实现从数据库中读取书本信息并且显示。
源代码:
在sql Server的edu数据库中新建一张KidsBooks表
格式和内容如下
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
publicclass KidsBooksPage extends CatalogPage {
publicvoid init() {
String[] ids = new String[3];
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=edu","test","test");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select * from KidsBooks ");
int i = 0;
while(rs.next()){
ids[i] = rs.getString(1);
i++;
}
setItems(ids);
setTitle("All-Time Best Children's Fantasy Books");
rs.close();
st.close();
con.close();
}catch (ClassNotFoundException ex){
} catch (SQLException e) {
e.printStackTrace();
}
}
}
运行结果:
中途遇到的问题:
JDBC连接SQLServer的错误Error establishing socket
我在网上查询到问题解决的方式有大概如下 种:
一 配置错误
jdbc配置语句为: jdbc:microsoft:sqlserver://server_name:1433
其中的sqlserver、server_name和端口号都要看仔细了。
二 1433端口问题
可以通过命令“netstat -an”,来查看是否开了1433端口,如果列表中没有,要增开端口。
要保持jdbc配置语句( jdbc:microsoft:sqlserver://server_name:1433)中的端口与数据库传输协议默认的端口相同。
MSSQL设置端口号步骤如下:
1. 打开企业管理器,依次在控制台根目录 ->Microsoft SQL Servers->SQL Server 组,列出一部分数据库服务器。
2. 右击我们要连接的数据库服务器,选择属性,在常规选项卡点击网络配置弹出新窗口。
3. 在启用的协议区域我们选择 TCP/IP ,点击属性按钮,弹出新窗口。在这个窗口有网络协议默认值设置,一般默认端口是:1433。 如果你在url中用的端口号与这个不同,就会出现错误。应保持二者相同。
三 没打补丁
可以用如下的方式查看MSSQL的版本:
打开企业管理器-〉工具-〉SQL查询分析器-〉帮助-〉关于
查看MSSQL的详细版本号
如果 是 8.00.194 就是还没打补丁
8.00.760 就是SP3
8.00.2039 就是SP4
我一直遇到的问题就是因为三没打补丁,等安装了补丁之后,问题就解决了
相关文章推荐
- 疑问:配置Web.Config时出现无法连接到 SQL Server 数据库的问题!!!(已解决)
- 一步一步学JSP(环境配置,数据库连接,web应用配置)
- IDEA建立web应用后无法连接数据库
- ASP.NET配置(web.config)无法连接到SQL Server 数据库的解决方法
- ASP.NET-ASP.NET配置(web.config)无法连接到SQL Server 数据库的解决方法
- ASP.NET配置(web.config)无法连接到SQL Server 数据库的解决方法
- Jdbc连接数据库实验报告(2)
- 学习笔记:jdbc连接、操作数据库SQL Server 2008 ——MyEclipse web示例
- Java连接Sql Server 2008的简单数据库应用
- WEB应用之: 对PHP数据库连接的简单封装
- ASP.NET实验三:读取web.config连接数据库
- 一步一步学JSP(环境配置,数据库连接,web应用配置)
- ASP.NET实验二:读取web.config连接数据库
- ASP.NET配置(web.config)无法连接到SQL Server 数据库的解决方法
- 一步一步学JSP(环境配置,数据库连接,web应用配置)
- ASP.NET配置(web.config)无法连接到SQL Server 数据库的解决方法
- ASP.NET配置(web.config)无法连接到SQL Server 数据库的解决方法
- ASP.NET-ASP.NET配置(web.config)无法连接到SQL Server 数据库的解决方法
- web应用无法连接数据库 Access denied for user 'root'@'localhost' (using password: YES)