1.环境
1)服务器是Apache的Tomcat
2)数据库是SQL Server
3)数据库驱动程序在微软官网下载的jar包
2.引入jar包
在Microsoft官网下载数据库驱动程序Microsoft SQL Server ××××(年份)JDBC Driver ,解压后获得sqljdbc42.jar文件(我解压后是42)。把该文件放到该Web工程的/WEB-INF/lib目录下。
jsp文件放这里的话:
jar包就放这里:
3.配置数据库
如果你的驱动器配置成功了,但是没连接上数据库的话,可能错误(也不算是错误吧,也就是没配置好)出在数据库中哦(气死我了气死我了,找了半天语言错误,差点连环境变量都改了)。
首先要明确,JSP技术是通过“用户名”和“密码”来登录数据库的,无法通过“Windows身份验证”的方式登录,下面的配置就是为了允许“用户名”和“密码”登录,这次配置还是要用“Windows身份验证”的方式登录的,如下图。
1)建立数据库,创建表,插入几条数据
2)更改超级用户sa的属性
①安全性->登录名->sa->属性->常规:更改密码为“123456”,选择“强制实施密码策略”,点击“确定”
②安全性->登录名->sa->属性->状态:授予,启用,点击“确定”
3)更改服务器的属性
安全性这里选择第二个“SQL SERVER和WINDOWS身份验证模式”,点击“确定”:
4)重新启动服务器
这步一定要有哦,不是重新连接,是重新启动!启动!启动!!!
4.连接数据库
用到了JSP的内置对象request,去接收表单提交的表名、列名。下面只进行了某表,某列的查询操作:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ page import="java.sql.*" %>
<html>
<head>
<title> </title>
</head>
<body>
<form action="" method="get" name="form" >
<fieldset >
<legend>高校信息管理系统-查询操作</legend>
<br>
<label>请输入基本表、视图的名称:
<input type="text" name="table" />
</label><br /><br>
<label>
请输入列名:
<input type="text" name="column" />
</label><br />
<br /><br />
<input type="submit" value="提交" name="submit"/>   
</fieldset>
</form><br><br>
<%
String table=request.getParameter("table");
String column=request.getParameter("column");
if(table==null)
//防止接收到的为空串
{ table=""; }
if(column==null)
{ column=""; }
%>
<%
PreparedStatement ps = null;
Connection ct = null;
ResultSet rs = null;
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=DBTest";//我的数据库名
String user="sa"; //超级管理员sa
String password="123456"; //密码
try {
//1.加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
out.println("加载驱动成功!"+"<br>");
}catch(Exception e) {
e.printStackTrace();
out.println("加载驱动失败!");
}
try {
//2.连接
ct=DriverManager.getConnection( url,user,password);
out.println("连接数据库成功!"+"<br>");
}catch(Exception e) {
e.printStackTrace();
out.println("连接数据库失败!");
}
//out.println("select * from TB_Student_Info"+"<br>");
/*尝试查询数据库*/
try{
Statement stmt = ct.createStatement();
String sql = "select * from "+table;
// 执行数据库查询语句
rs = stmt.executeQuery(sql);
while (rs.next()) {
String id = rs.getString(column);
out.println("rusult:" + id +"<br>");
}
if (rs != null) {
//关闭数据库释放资源
rs.close();
rs = null;
}
if (stmt != null) {
stmt.close();
stmt = null;
}
if (ct != null) {
ct.close();
ct = null;
}
}
catch (SQLException e) {
e.printStackTrace();
System.out.println("数据库连接失败");
}
%>
</body>
</html>
结果呢,就是这个样子的(当然还要连接服务器tomcat,我就不写了),表单提交给本页面了,所以数据都在一个页面展示: