Java连接SQL Server数据库工具类及示例

在Java开发中,经常需要与数据库进行交互,其中SQL Server是一种常用的关系型数据库。本文将介绍如何使用Java连接SQL Server数据库,并提供一个工具类的示例。

数据库连接方式

Java连接SQL Server数据库主要有两种方式:

  1. 使用JDBC(Java Database Connectivity)连接
  2. 使用第三方数据库连接池

JDBC连接SQL Server数据库

JDBC是Java连接各种关系型数据库的标准接口,使用JDBC连接SQL Server数据库的步骤如下:

  1. 导入JDBC驱动程序:首先需要下载并导入SQL Server的JDBC驱动程序,可以从官方网站下载,或使用Maven等构建工具引入依赖。

  2. 加载驱动程序:在代码中使用Class.forName()方法加载SQL Server的驱动程序,例如:

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
  1. 建立数据库连接:使用DriverManager.getConnection()方法建立与SQL Server数据库的连接,需要提供数据库的URL、用户名和密码等参数,例如:
String url = "jdbc:sqlserver://localhost:1433;databaseName=mydatabase";
String user = "username";
String password = "password";
Connection conn = DriverManager.getConnection(url, user, password);
  1. 执行SQL语句:通过连接对象创建Statement或PreparedStatement对象,并使用其executeQuery()executeUpdate()等方法执行SQL语句,例如:
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM mytable");
while (rs.next()) {
    // 处理结果集
}
  1. 关闭连接:在使用完数据库连接后,需要关闭连接以释放资源,例如:
rs.close();
stmt.close();
conn.close();

数据库连接池

使用数据库连接池可以提高数据库连接的效率和性能,常用的数据库连接池包括C3P0、Druid等。以下是使用C3P0连接池连接SQL Server数据库的示例:

  1. 导入C3P0依赖:在Maven中将C3P0的依赖加入项目中:
<dependency>
    <groupId>c3p0</groupId>
    <artifactId>c3p0</artifactId>
    <version>0.9.5.5</version>
</dependency>
  1. 配置C3P0连接池:在项目的配置文件(如c3p0-config.xml)中配置C3P0连接池的参数,包括数据库的URL、用户名、密码等参数,例如:
<c3p0-config>
    <default-config>
        <property name="jdbcUrl">jdbc:sqlserver://localhost:1433;databaseName=mydatabase</property>
        <property name="user">username</property>
        <property name="password">password</property>
        <!-- 其他参数配置 -->
    </default-config>
</c3p0-config>
  1. 获取数据库连接:在代码中使用C3P0的ComboPooledDataSource类获取数据库连接,例如:
ComboPooledDataSource dataSource = new ComboPooledDataSource();
Connection conn = dataSource.getConnection();
  1. 执行SQL语句和关闭连接的步骤与JDBC连接方式相同。

工具类示例

以下是一个用于连接SQL Server数据库的工具类示例,使用了JDBC连接方式:

public class SQLServerUtil {
    private static final String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
    private static final String URL = "jdbc:sqlserver://localhost:1433;databaseName=mydatabase";
    private static final String USER = "username";
    private static final String PASSWORD = "password";

    public static Connection getConnection() {
        Connection conn = null;
        try {
            Class.forName(DRIVER);
            conn = DriverManager.getConnection(URL, USER, PASSWORD);
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }

    public static void close(Connection conn, Statement stmt, ResultSet rs) {
        try {
            if (rs != null) {
                rs.close();
            }
            if (stmt != null) {
                stmt.close();
            }
            if (conn != null) {
                conn.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

使用该工具类可以方便地获取数据库连接,并在使用完后关闭连接,避免资源泄露。

总结

本文介绍了使用Java连接SQL Server数据库的两种方式:JDBC连接和使用数据库