JavaWeb如何连接SQL Server数据库

1. 连接SQL Server数据库

在JavaWeb的开发过程中,如何连接SQL Server数据库呢?下面将给大家详细介绍。

1.1 导入SQL Server JDBC驱动包

首先,需要将SQL Server JDBC驱动包导入项目中。可以在官网下载SQL Server JDBC驱动,在下载页面选择"Microsoft JDBC Driver for SQL Server"即可下载。

下载好的驱动包需要解压,然后在项目的lib目录下创建一个文件夹,将解压后的驱动包拷贝到该文件夹下,然后在项目中添加驱动包。

1.2 编写连接数据库的代码

在Java中连接SQL Server数据库,需要使用Java提供的JDBC API,通过JDBC API我们可以创建一个连接到数据库的Connection对象,然后通过执行SQL语句执行增删改查等操作。

下面是一个简单的连接SQL Server数据库的示例代码:

import java.sql.*;

public class TestSQLServer {

public static void main(String[] args) {

String url = "jdbc:sqlserver://localhost:1433;DatabaseName=test";

String user = "sa";

String password = "123456";

Connection conn = null;

try {

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

conn = DriverManager.getConnection(url, user, password);

if(conn != null) {

System.out.println("连接成功!");

}else {

System.out.println("连接失败!");

}

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch(SQLException e) {

e.printStackTrace();

} finally {

try {

if(conn != null) {

conn.close();

}

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

代码解释:

第4行:指定数据库连接串,其中localhost为SQL Server实例名称,1433为端口号,test为数据库名称;

第5-7行:指定数据库连接的用户名和密码;

第8行:创建一个Connection对象,用于连接到SQL Server数据库;

第10行:使用Class.forName()方法加载SQL Server JDBC驱动;

第11行:使用DriverManager.getConnection()方法创建一个Connection对象;

第12-16行:判断连接结果是否为null,如果为null则连接失败,否则连接成功;

第17-23行:捕获ClassNotFoundException和SQLException异常,最后在finally块中关闭连接。

2. 执行SQL语句

连接SQL Server数据库成功之后,就可以通过执行SQL语句来进行增删改查等操作了。

2.1 查询数据

查询数据是最常见的操作,下面是一个简单的查询操作实例:

public class TestSQLServer {

public static void main(String[] args) {

String url = "jdbc:sqlserver://localhost:1433;DatabaseName=test";

String user = "sa";

String password = "123456";

Connection conn = null;

Statement stmt = null;

ResultSet rs = null;

try {

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

conn = DriverManager.getConnection(url, user, password);

stmt = conn.createStatement();

String sql = "select * from student";

rs = stmt.executeQuery(sql);

while(rs.next()) {

System.out.println(rs.getString("id") + "," + rs.getString("name") + "," + rs.getString("age"));

}

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch(SQLException e) {

e.printStackTrace();

} finally {

try {

if(rs != null) {

rs.close();

}

if(stmt != null) {

stmt.close();

}

if(conn != null) {

conn.close();

}

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

代码解释:

第11行:创建一个Statement对象,用于执行SQL语句;

第12行:定义查询语句,这里查询student表的所有数据;

第13行:使用Statement.executeQuery()方法执行查询,返回一个ResultSet对象;

第14-17行:使用ResultSet对象的next()方法循环输出查询结果集中的数据;

第18-28行:在finally块中关闭资源。

2.2 添加数据

添加数据需要使用PreparedStatement对象,示例代码如下:

public class TestSQLServer {

public static void main(String[] args) {

String url = "jdbc:sqlserver://localhost:1433;DatabaseName=test";

String user = "sa";

String password = "123456";

Connection conn = null;

PreparedStatement ps = null;

try {

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

conn = DriverManager.getConnection(url, user, password);

String sql = "insert into student (name, age) values (?, ?)";

ps = conn.prepareStatement(sql);

ps.setString(1, "Tom");

ps.setInt(2, 18);

int count = ps.executeUpdate();

if(count > 0) {

System.out.println("成功添加" + count + "条记录!");

}else {

System.out.println("添加记录失败!");

}

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch(SQLException e) {

e.printStackTrace();

} finally {

try {

if(ps != null) {

ps.close();

}

if(conn != null) {

conn.close();

}

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

代码解释:

第13行:定义插入语句,使用?占位符代替具体的值;

第14行:使用Connection.prepareStatement()方法创建一个PreparedStatement对象;

第15-16行:使用PreparedStatement.setString()和setInt()方法设置占位符的值;

第17行:使用PreparedStatement.executeUpdate()方法执行更新操作,返回更新的记录数;

第18-21行:判断更新结果,输出提示信息;

第22-29行:在finally块中关闭资源。

2.3 修改数据

修改数据与添加数据类似,示例代码如下:

public class TestSQLServer {

public static void main(String[] args) {

String url = "jdbc:sqlserver://localhost:1433;DatabaseName=test";

String user = "sa";

String password = "123456";

Connection conn = null;

PreparedStatement ps = null;

try {

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

conn = DriverManager.getConnection(url, user, password);

String sql = "update student set age = ? where name = ?";

ps = conn.prepareStatement(sql);

ps.setInt(1, 20);

ps.setString(2, "Tom");

int count = ps.executeUpdate();

if(count > 0) {

System.out.println("成功修改" + count + "条记录!");

}else {

System.out.println("修改记录失败!");

}

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch(SQLException e) {

e.printStackTrace();

} finally {

try {

if(ps != null) {

ps.close();

}

if(conn != null) {

conn.close();

}

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

代码解释:

第13行:定义更新语句,使用?占位符代替具体的值;

第14行:使用Connection.prepareStatement()方法创建一个PreparedStatement对象;

第15-16行:使用PreparedStatement.setInt()和setString()方法设置占位符的值;

第17行:使用PreparedStatement.executeUpdate()方法执行更新操作,返回更新的记录数;

第18-21行:判断更新结果,输出提示信息;

第22-29行:在finally块中关闭资源。

2.4 删除数据

删除数据与修改数据类似,示例代码如下:

public class TestSQLServer {

public static void main(String[] args) {

String url = "jdbc:sqlserver://localhost:1433;DatabaseName=test";

String user = "sa";

String password = "123456";

Connection conn = null;

PreparedStatement ps = null;

try {

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

conn = DriverManager.getConnection(url, user, password);

String sql = "delete from student where name = ?";

ps = conn.prepareStatement(sql);

ps.setString(1, "Tom");

int count = ps.executeUpdate();

if(count > 0) {

System.out.println("成功删除" + count + "条记录!");

}else {

System.out.println("删除记录失败!");

}

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch(SQLException e) {

e.printStackTrace();

} finally {

try {

if(ps != null) {

ps.close();

}

if(conn != null) {

conn.close();

}

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

代码解释:

第13行:定义删除语句,使用?占位符代替具体的值;

第14行:使用Connection.prepareStatement()方法创建一个PreparedStatement对象;

第15行:使用PreparedStatement.setString()方法设置占位符的值;

第16行:使用PreparedStatement.executeUpdate()方法执行更新操作,返回更新的记录数;

第17-20行:判断更新结果,输出提示信息;

第21-28行:在finally块中关闭资源。

3. 总结

本文详细介绍了JavaWeb如何连接SQL Server数据库,包括导入SQL Server JDBC驱动包、编写连接数据库的代码、执行SQL语句等方面。虽然SQL Server数据库与其他数据库的连接方式略有不同,但是掌握了基本的连接和操作方法之后,就可以很容易地完成JavaWeb开发中对SQL Server数据库的访问。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

数据库标签