JavaWeb程序连接SQLserver数据库
声明:一直以来都以为javaweb程序连接数据库是一个很高大上很难的问题,结果今天学习了一下,不到两个小时就解决了,所以总结一篇博客。
JavaWeb程序连接SQLserver数据库分为一下步骤:
1:在http://www.microsoft.com/en-us/download/details.aspx?id=21599下载sqljdbc.jar的压缩包
2:解压之后,将sqljdbc4.jar复制粘贴到你项目的WEB-INF的lib目录下

3:需要知道一些数据库方面的技术知识:
先举个例子:下面是驱动程序建立连接所需要的步骤:
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=user";
Connection conn = DriverManager.getConnection(URL, userName, userPwd);//userName是你数据库的用户名如sa,
conn.println("连接数据库成功");
conn.close();
}catch (Exception e){
out.println("数据库连接失败");
}
1>:Driver接口:java.sql.Driver是所有JDBC驱动程序需要实现的接口,这个接口提供给不同的数据库厂商,他们使用的接口名不同。
-:SQLserver的JDBC驱动的类名:"com.microsoft.sqlserver.jdbc.SQLServerDriver"
-:Oracle的JDBC驱动的类名:"oracle.jdbc.driver.OracleDriver"
-:MySQL的JDBC驱动的类名:"com.mysql.jdbc.Driver"
2>加载与注册JDBC驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");该语句用于加载
3>JDBC连接数据库的URL表现形式通常分为三个部分(通常用:分开):
1:协议:在JDBC中唯一允许的协议只能为jdbc.
2:子协议:子协议用于标识一个数据库驱动程序
3:子名称:具体看下面
-:连接SQLserver: "jdbc:sqlserver://localhost:1433;DatabaseName=user"
-:连接Oracle: "jdbc:thin:@localhost:1521:ORCL"
-:连接MySQL: "jdbc:mysql://localhost:3306/databasename"
4>执行SQL语句接口Statement对象,该对象的常用方法:
-:void close() 关闭释放资源
-:ResultSet executeQuery(String sql):执行某条查询语句并返回结果
-:int execulteUpdate(String sql):可以执行insert,undate或者delete语句
4:看下我第一次写的操作数据库的程序:
1>先创建一个Student类
package com.ll;
public class Student {
private String name;
private String time;
private String banji;
public String getBanji() {
return banji;
}
public void setBanji(String banji) {
this.banji = banji;
}
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
2>写dao层与数据库连接的部分,
package dao;
import com.ll.Student;//本行及以下是导入SQL以及所需的包
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
public class Studentdao
{
public ArrayList queryAllStudents() throws Exception
{//实现对数据库的访问
Connection conn = null;
ArrayList students = new ArrayList();//定义与初始化ArrayList数组,相当于定义数组,但是容量比数组大
StringBuffer str= new StringBuffer();
try {
//获取连接
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; //加载JDBC驱动
String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=StudentManagement"; //连接服务器和数据库sample
//运行SQL语句
String userName = "sa"; //默认用户名
String userPwd = "zongjin123";
Class.forName(driverName);
conn = DriverManager.getConnection(dbURL, userName, userPwd);
if(conn!=null)
{
System.out.println("Connection Successful!"); //如果连接成功 控制台输出
}
else{ System.out.println("Connection fail!");
return students;
} //密码
String sql = "select * from student";//SQL语句,选择数据表student中的所有数据
Statement stat = conn.createStatement();
ResultSet rs = stat.executeQuery(sql);//定义ResultSet类,用于接收获取的数据
while (rs.next())
{
//实例化VO
Student student=new Student();
student.setName(rs.getString("姓名"));
student.setBanji(rs.getString("班级"));
student.setSex(rs.getString("性别"));
student.setTime(rs.getString("年龄"));
students.add(student);
}
rs.close();
stat.close();
}
catch (Exception e1)
{
e1.printStackTrace();
}
finally
{
try
{//关闭连接
if(conn!=null)
{
conn.close();
conn=null;
}
}
catch(Exception ex)
{
}
return students;
}
}
}
3>创建index.jsp文件
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@page import = "java.util.*" %>
<%@page import = "java.sql.*" %>
<%@page import="com.ll.Student" %>
<%@page import="dao.Studentdao" %>
<!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=UTF-8">
<style type="text/css">
#body {
background-color: #FFD2BD;
}
</style>
<title>JSP Page</title>
</head>
<body id="body">
<h1>学生信息如下所示:</h1><br>
<%
Studentdao studentDao=new Studentdao();
ArrayList students=studentDao.queryAllStudents();
%>
<table border="1" >
<tr >
<td >年龄</td>
<td>姓名</td>
<td>性别</td>
<td>班级</td>
</tr>
<%
for(int i=0;i<students.size();i++)
{
Student student=(Student)students.get(i); %>
<tr>
<td><%=student.getSex() %></td>
<td><%=student.getName() %></td>
<td><%=student.getSex() %></td>
<td><%=student.getBanji() %></td>
</tr>
<%
}
%>
</table>
</body>
</html>
4>前提是你在你的SQLserver数据库上创建了一个表,并且有数据.
5.结果为:

JavaWeb程序连接SQLserver数据库的更多相关文章
- JavaWeb连接SQLServer数据库并完成一个登录界面及其功能设计。
一.JDBC连接SQLserver数据库的步骤: 1.下载SQLserver的JDBC驱动文件——Microsoft JDBC Driver 4.0 for SQL Server 2.例如下载得到的文 ...
- Java连接并操作SQLServer数据库
本人只需在项目中引入sqljdbc4.jar 包即可 ----------------------------------------- 在JAVA中如何连接SQL Server数据库 - hangh ...
- PowerDesigner从SqlServer数据库中导入实体模型
PowerDesigner从SqlServer数据库中导入实体模型 时间 2013-06-28 10:26:34 CSDN博客 原文 http://blog.csdn.net/sxycxwb/art ...
- 批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor
批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor2.1.11 之前写过一篇文章,使用redgate公司的SQL PROMPT工具,但是不太方便 SQLPRO ...
- JAVA使用JDBC技术操作SqlServer数据库执行存储过程
Java使用JDBC技术操作SqlServer数据库执行存储过程: 1.新建SQLSERVER数据库:java_conn_test 2.新建表:tb_User 3.分别新建三个存储过程: 1>带 ...
- SQLServer数据库监控代码
SQLServer数据库监控代码: creation_time, total_worker_time, last_worker_time, max_worker_time, min_worker_ti ...
- SQLServer数据库转换成MySQL数据库
由于工作需要,系统原先的SQLServer数据库要转换成MYSQL数据库,所以这两天就一直在查阅这方面的资料.最开始,我尝试从SQLServer中导出SQL文件,然后导入到MYSQL数据库中,发现报错 ...
- ASP.net分别连接SQLserver数据库与连接Access数据库精英版
-------------------------连接access2003 字符串------------------------- Provider=Microsoft.Jet.OLEDB.4.0; ...
- (转)对SQLSERVER数据库事务日志的疑问
本文转载自桦仔的博客http://www.cnblogs.com/lyhabc/archive/2013/06/10/3130856.html 对SQLSERVER数据库事务日志的疑问 摸不透SQLS ...
随机推荐
- Java 编程 订单、支付、退款、发货、退货等编号主动生成类
订单.支付.退款.发货.退货等编号主动生成类 在商城网站中,订单编号的自动生成,ERP中各个单据的编号自动生成,都可以按照一下的方式来自动生成. 第一步:定义常量订单编号前缀.订单编号起始数.订单编号 ...
- windows本地提权对照表(转载)
2003 systeminfo>C:\Windows\Temp\temp.txt&(for %i in (KB3057191 KB2840221 KB3000061 KB2850 ...
- Unity 发布的 WebGL 使用SendMessage传递多个参数
如果要实现Unity与浏览器的数据交互一般都会采用两种方式 方法一: Application.ExternalCall("SayHello","helloworld&qu ...
- akoj-1059-Picture
Description 给你一个矩形的宽度和高度,要求按sample output样例输出此矩形. Input 输入包含多组数据,每一组包含两个数N和M( 0 < N ,M , < 75 ...
- SELECT中的if_case流程函数
DQL中常用的流程函数if_case ---流程函数在一个SQL语句中实现条件选择 模拟对职员薪水进行分类: mysql> create table salary_tab(userid ,)); ...
- 在实现从excel中读取数据作为接口参数遇到的问题
这个算我自己第一次使用python语言实现 一个功能 一.首先我们先要代码实现如何从excel上读取数据python实现还是比较简单的 1.我使用的是xlrd模块,我们先要安装这个包,这样我们才可以使 ...
- Aleta病毒
文件一定要及时备份!!! 文件一定要及时备份!!! 文件一定要及时备份!!! 文件一定要及时备份!!! 文件一定要及时备份!!! 文件一定要及时备份!!! 文件一定要及时备份!!! 文件一定要及时备份 ...
- 关于DB2版本、补丁升级和回退的总结[转载]
首先介绍几个概念 RELEASE的升级就是版本升级,例如9.1→9.5→9.7→10.1,可以跳版本升级,例如9.1→10.1 FIX PACK简称FP,就是打补丁,例如9.7.1→9.7.2,每个版 ...
- vue.js初探:计算属性和methods
在vue.js中,计算属性和methods方法的函数相同时,两者的最终执行结果都是相同的.然而不同的是,计算属性是基于它的依赖缓存.计算属性只有在它的相关依赖发生改变时才会重新取值.这就意味着只要 m ...
- 设计模式之桥接模式(Bridge模式)
我想大家小时候都有用蜡笔画画的经历吧.红红绿绿的蜡笔一大盒,根据想象描绘出格式图样.而毛笔下的国画更是工笔写意,各展风采.而今天我们的故事从蜡笔与毛笔说起. 设想要绘制一幅图画,蓝天.白云.绿树.小鸟 ...