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 ...
随机推荐
- Hibernate批量操作(二)
Hibernate提供了一系列的查询接口,这些接口在实现上又有所不同.这里对Hibernate中的查询接口进行一个小结. 我们首先来看一下session加载实体对象的过程:Session在调用数据库查 ...
- 暑假OI规划
为了准备11月的NOIP(最好能到550+)暑假要认真的刷题: 1.NOIP的原题 2.USACO历年的GOLD 3.CF的比赛 4.刷几本书 5.带着做bzoj(lydsy) 6.少玩游戏
- Xamarin.Forms(一) Visual Studio 连接安卓模拟器(逍遥安卓)
刚开始学习Xamarin.Forms的时候总是比较困难的,连接安卓模拟器就花了我好长时间,后来在网上找到了方法: 1.打开adb.exe所在目录: 如:cd F:\Android\android-sd ...
- oracle数据库中的四种循环
[sql] DECLARE x number; BEGIN x:=9; <<repeat_loop>> --循环点 x:=x-1; DBMS_OUTPUT.PU ...
- git分支管理之解决冲突
人生不如意之事十之八九,合并分支往往也不是一帆风顺的. 准备新的feature1分支,继续我们的新分支开发: $ git checkout -b feature1 Switched to a new ...
- vuex状态管理,state,getters,mutations,actons的简单使用(一)
之前的文章中讲过,组件之间的通讯我们可以用$children.$parent.$refs.props.data... 但问题来了,假如项目特别大,组件之间的通讯可能会变得十分复杂... 这个时候了我们 ...
- HashMap 源码解读
HashMap在JDK1.7和1.8中有了很大的改变,空闲时间对HashMap做了一点点的研究. HashMap是一种数组和链表结合的数据结构,我们每次new一个HashMap时,都会构造出一个长度为 ...
- Oracle Windows安装图解
一. Oracle 下载 官方下地址 http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.htm ...
- mysql shutdown and kill
--mysqladmin shutdown If you execute mysqladmin shutdown when connecting to a local server using a U ...
- python 第六天
模块 包 我们可以同过包来避免与其它模块的命名冲突,例如,调用在外层 demo.py 调用 demoFile 文件夹中的demo.py 就可以通过 demo.demo 来调用 请注意,每一个包目录下面 ...