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"; //超级管理员saString 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,我就不写了),表单提交给本页面了,所以数据都在一个页面展示: