java连接SQL Server数据库的方法

下面我将详细讲解Java连接SQL Server数据库的方法,包括如何配置环境、创建数据库连接、执行SQL语句等步骤。

环境配置

在Java中连接SQL Server数据库,需要先下载Microsoft JDBC Driver for SQL Server。可以前往Microsoft官方网站下载对应版本的驱动程序。另外,需要安装SQL Server数据管理工具(如SQL Server Management Studio),以便创建和管理数据库。

创建数据库连接

在Java中连接SQL Server数据库,可以使用以下代码创建数据库连接:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class SqlConnection {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        // 驱动程序类名
        String driverClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
        // 数据库连接URL
        String url = "jdbc:sqlserver://localhost:1433;databaseName=test";
        // 数据库用户名和密码
        String username = "sa";
        String password = "123456";

        // 加载数据库驱动程序
        Class.forName(driverClassName);

        // 创建数据库连接
        Connection conn = DriverManager.getConnection(url, username, password);
        System.out.println("数据库连接成功:" + conn);
    }
}

在上述代码中,driverClassName指定了SQL Server JDBC驱动程序的类名。url指定了要连接的数据库的URL,其中包括了数据库服务器的主机名、端口号和数据库名称。usernamepassword分别指定了连接数据库所使用的用户名和密码。在连接数据库之前,需要先加载JDBC驱动程序,可通过Class.forName(driverClassName)来实现。

执行SQL语句

数据库连接成功之后,就可以执行SQL语句了。以下是使用Java执行SQL语句的示例代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class SqlStatement {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        // 驱动程序类名
        String driverClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
        // 数据库连接URL
        String url = "jdbc:sqlserver://localhost:1433;databaseName=test";
        // 数据库用户名和密码
        String username = "sa";
        String password = "123456";

        // 加载数据库驱动程序
        Class.forName(driverClassName);

        // 创建数据库连接
        Connection conn = DriverManager.getConnection(url, username, password);
        System.out.println("数据库连接成功:" + conn);

        // 创建Statement对象
        Statement stmt = conn.createStatement();

        // 执行SQL语句,返回ResultSet对象
        ResultSet rs = stmt.executeQuery("select * from users");

        // 遍历ResultSet,输出查询结果
        while (rs.next()) {
            int id = rs.getInt("ID");
            String name = rs.getString("Name");
            int age = rs.getInt("Age");
            System.out.println(id + "\t" + name + "\t" + age);
        }

        // 关闭ResultSet对象
        rs.close();

        // 关闭Statement对象和数据库连接
        stmt.close();
        conn.close();
    }
}

在上述代码中,首先创建了Statement对象,然后使用executeQuery方法执行了一条查询语句,返回了一个ResultSet对象。遍历ResultSet对象,输出查询结果。最后需要关闭ResultSetStatement和数据库连接。

另外,需要注意的一点是,在执行SQL语句时,应该使用PreparedStatement对象替代Statement,可以有效防止SQL注入攻击。例如:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class SqlPreparedStatement {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        // 驱动程序类名
        String driverClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
        // 数据库连接URL
        String url = "jdbc:sqlserver://localhost:1433;databaseName=test";
        // 数据库用户名和密码
        String username = "sa";
        String password = "123456";

        // 加载数据库驱动程序
        Class.forName(driverClassName);

        // 创建数据库连接
        Connection conn = DriverManager.getConnection(url, username, password);
        System.out.println("数据库连接成功:" + conn);

        // 创建PreparedStatement对象
        String sql = "select * from users where id = ?";
        PreparedStatement pstmt = conn.prepareStatement(sql);

        // 设置参数
        pstmt.setInt(1, 1);

        // 执行SQL语句,返回ResultSet对象
        ResultSet rs = pstmt.executeQuery();

        // 遍历ResultSet,输出查询结果
        while (rs.next()) {
            int id = rs.getInt("ID");
            String name = rs.getString("Name");
            int age = rs.getInt("Age");
            System.out.println(id + "\t" + name + "\t" + age);
        }

        // 关闭ResultSet对象
        rs.close();

        // 关闭PreparedStatement对象和数据库连接
        pstmt.close();
        conn.close();
    }
}

在上述代码中,使用PreparedStatement代替了Statement,并使用setInt方法设置了查询参数。这样可以有效避免SQL注入攻击。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java连接SQL Server数据库的方法 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • Java的运算符和程序逻辑控制你了解吗

    Java的运算符和程序逻辑控制非常重要,是Java语言中的基础知识点。下面我们来详细讲解一下。 运算符 算术运算符 Java中的算术运算符包括加减乘除、取余等,常用的有以下几个: +:加法运算符,将两个数相加。 -:减法运算符,将一个数减去另一个数。 *:乘法运算符,将两个数相乘。 /:除法运算符,将一个数除以另一个数。 %:取余运算符,求一个数除以另一个数…

    Java 2023年5月23日
    00
  • Spring Boot如何集成模板引擎FreeMarker

    下面是 Spring Boot 集成 FreeMarker 模板引擎的完整攻略。 一、引入依赖 在 pom.xml 中添加 FreeMarker 和 Spring Boot 的依赖,如下所示: <dependency> <groupId>org.springframework.boot</groupId> <arti…

    Java 2023年5月31日
    00
  • Java SimpleDateFormat线程安全问题原理详解

    Java SimpleDateFormat线程安全问题原理详解 简介 SimpleDateFormat 是 Java 中处理日期格式化的常用类,常用来将 Date 类型转换成特定格式的字符串。然而,SimpleDateFormat 是非线程安全的,当多个线程同时访问同一个 SimpleDateFormat 实例时,就会出现线程安全问题。本文将通过分析 Sim…

    Java 2023年6月1日
    00
  • 深入了解Java设计模式之职责链模式

    深入了解Java设计模式之职责链模式 职责链模式是一种行为型设计模式,它允许你将请求沿着处理者链进行发送,直到其中一个处理者处理该请求。职责链模式常用于请求的处理流程较为复杂,有多个处理器时的情况。 定义 职责链模式为请求创建了一个接受者对象的链,给予请求的类型,对请求的发送者和接收者进行解耦。职责链模式将请求的发送者和接收者分离开来,只要在链上得到处理,就…

    Java 2023年5月20日
    00
  • Spring Boot整合Kafka教程详解

    Spring Boot整合Kafka教程详解 近年来,Kafka 成为了备受关注和喜爱的消息系统,凭借其高吞吐量、低延迟的特性,成为了大型系统中消息传递和处理的首选工具。本文讲解如何在 Spring Boot 项目中整合 Kafka。 1. 添加 Maven 依赖 在 pom.xml 文件中添加以下依赖: <dependencies> <d…

    Java 2023年6月2日
    00
  • springboot2.x整合shiro权限框架的使用

    下面我将详细讲解springboot2.x整合shiro权限框架的使用的完整攻略。 一、前置知识 在学习springboot2.x整合shiro权限框架之前,需对以下知识点进行了解: Spring框架 SpringMVC框架 Maven工具 Shiro框架 二、整合步骤 1.创建Springboot工程 在Maven中新建一个springboot项目,添加w…

    Java 2023年5月20日
    00
  • MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建(图文教程)

    完整环境搭建需要涉及到以下步骤: 安装MyEclipse 下载MyEclipse安装包 运行安装程序 按照安装程序指引完成安装过程 安装Tomcat 下载Tomcat安装包 运行安装程序 按照安装程序指引完成安装过程 安装MAVEN 下载MAVEN安装包 解压文件到一个目录 配置MAVEN的环境变量 新建一个环境变量:MAVEN_HOME,值为MAVEN所在…

    Java 2023年5月19日
    00
  • SpringMVC 拦截器不拦截静态资源的三种处理方式方法

    在 SpringMVC 中,拦截器可以用来拦截请求并进行处理。但是,有时候我们不希望拦截静态资源,因为这会影响应用程序的性能。本文将详细讲解 SpringMVC 拦截器不拦截静态资源的三种处理方式方法,并提供两个示例说明。 1. 方式一:使用 addResourceHandlers 方法 我们可以使用 addResourceHandlers 方法来配置静态资…

    Java 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部