JDBC 连接sql server Demo

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介: JDBC 连接sql server Demo

废话不多话,直接上代码了;这个demo我也是网上找的 稍微的修改了下;代码里面都有注释;

package com.example.democrud.democurd;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class sqlserver {
    public static void main(String[] args) {
        test1();
     //   test2();
    }
    public static void test1(){
        //默认sql server 驱动类
        String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
        //此处localhost 为本地的地址  1433 默认端口  demo 为主表 的名字
        String dbURL = "jdbc:sqlserver://localhost:1433;databaseName=demo";
        String userName = "sa";            //sqlserver用户名
        String userPwd = "root";    //sqlserver用户密码
        try {
            Class.forName(driverName);   //加载sqlserver的驱动类
            System.out.println("sqlServer load success!");
        } catch (ClassNotFoundException a) {
            System.out.println("sqlServer load failed!");
            a.printStackTrace();
        }
        Connection dbcon = null;
        try {
            //处理与数据库的连接
            dbcon = DriverManager.getConnection(dbURL, userName, userPwd);
            Statement stmt = dbcon.createStatement();
            String sql = "select * from Demo";
            //ResultSet对象,其包含给定查询生成的数据
            ResultSet resultSet = stmt.executeQuery(sql);
            //获取执行的SQL语句的元数据
            ResultSetMetaData metaData = resultSet.getMetaData();
            //获取执行的SQL语句查询的列的个数
            int columnCount = metaData.getColumnCount();
            //获取表中的所有数据,字段 + 值
            List<Map<String, Object>> list1 = new ArrayList<>();
            List<Map<String, Object>> list2 = new ArrayList<>();
            List<Object> list3 = new ArrayList<>();
            //取出ResultSet中表的记录。如果可以取出则返回true,否则返回false
            while (resultSet.next()) {
                //数据
                Map<String, Object> row = new HashMap<>();
                //表结构--包含字段类型
                Map<String, Object> map = new HashMap<>();
                for (int i = 0; i < columnCount; i++) {
                    //字段
                    String columnLabel = metaData.getColumnLabel(i + 1);
                    //字段类型
                    String columnTypeName = metaData.getColumnTypeName(i + 1);
                    //值
                    Object value = resultSet.getObject(i + 1);
                    row.put(columnLabel, value);
                    map.put(columnLabel, columnTypeName);
                    list3.add(value);
                }
                list1.add(row);
                list2.add(map);
                System.out.println("获取到的key的值"+list2);
                System.out.println("获取到的value的值"+list1);
                System.out.println("单独获取V的值"+list3);
            }
            System.out.println("sqlServer connect success! sql server 连接成功");
            dbcon.close();
        } catch (SQLException e) {
            System.out.println("sqlServer connect failed!");
            e.printStackTrace();
        }
    }
    public static void test2(){
        String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
        String dbURL = "jdbc:sqlserver://120.27.229.213:65023;databaseName=davinci3";
        String userName = "sa";            //sqlserver用户名
        String userPwd = "BSa!67365021";    //sqlserver用户密码
        try {
            Class.forName(driverName);   //加载sqlserver的驱动类
            System.out.println("sqlServer load success!");
        } catch (ClassNotFoundException a) {
            System.out.println("sqlServer load failed!");
            a.printStackTrace();
        }
        Connection dbcon = null;
        try {
            //处理与数据库的连接
            dbcon = DriverManager.getConnection(dbURL, userName, userPwd);
            Statement stmt = dbcon.createStatement();
            String sql = "select * from display";
            //ResultSet对象,其包含给定查询生成的数据
            ResultSet resultSet = stmt.executeQuery(sql);
            //获取执行的SQL语句的元数据
            ResultSetMetaData metaData = resultSet.getMetaData();
            //获取执行的SQL语句查询的列的个数
            int columnCount = metaData.getColumnCount();
            //获取表中的所有数据,字段 + 值
            List<Map<String, Object>> list1 = new ArrayList<>();
            List<Map<String, Object>> list2 = new ArrayList<>();
            //取出ResultSet中表的记录。如果可以取出则返回true,否则返回false
            while (resultSet.next()) {
                //数据
                Map<String, Object> row = new HashMap<>();
                //表结构--包含字段类型
                Map<String, Object> map = new HashMap<>();
                for (int i = 0; i < columnCount; i++) {
                    //字段
                    String columnLabel = metaData.getColumnLabel(i + 1);
                    //字段类型
                    String columnTypeName = metaData.getColumnTypeName(i + 1);
                    //值
                    Object value = resultSet.getObject(i + 1);
                    row.put(columnLabel, value);
                    map.put(columnLabel, columnTypeName);
                }
                list1.add(row);
                list2.add(map);
                System.out.println(list1);
                System.out.println(list2);
            }
            System.out.println("sqlServer connect success!");
            dbcon.close();
        } catch (SQLException e) {
            System.out.println("sqlServer connect failed!");
            e.printStackTrace();
        }
    }
}

有疑问可留言;大家一起交流;


相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
相关文章
|
15天前
|
安全 Java 数据库连接
gbase8a JDBC常用特性-Kerberos认证方式连接
JDBC常用特性-Kerberos认证方式连接
|
16天前
|
Java 数据库连接 网络安全
JDBC常用特性-SSH隧道连接
JDBC常用特性-SSH隧道连接
|
2月前
|
SQL 开发框架 .NET
ASP.NET连接SQL数据库:详细步骤与最佳实践指南ali01n.xinmi1009fan.com
随着Web开发技术的不断进步,ASP.NET已成为一种非常流行的Web应用程序开发框架。在ASP.NET项目中,我们经常需要与数据库进行交互,特别是SQL数据库。本文将详细介绍如何在ASP.NET项目中连接SQL数据库,并提供最佳实践指南以确保开发过程的稳定性和效率。一、准备工作在开始之前,请确保您
282 3
|
1月前
|
SQL Java 数据库连接
[SQL]SQL注入与SQL执行过程(基于JDBC)
本文介绍了SQL注入的概念及其危害,通过示例说明了恶意输入如何导致SQL语句异常执行。同时,详细解释了SQL语句的执行过程,并提出了使用PreparedStatement来防止SQL注入的方法。
46 1
|
2月前
|
SQL 数据库 索引
SQL语句实现投影连接:方法与技巧详解
在SQL数据库查询中,投影和连接是两个核心概念
|
2月前
|
SQL Java 数据库连接
如何使用`DriverManager.getConnection()`连接数据库,并利用`PreparedStatement`执行参数化查询,有效防止SQL注入。
【10月更文挑战第6天】在代码与逻辑交织的世界中,我从一名数据库新手出发,通过不断探索与实践,最终成为熟练掌握JDBC的开发者。这段旅程充满挑战与惊喜,从建立数据库连接到执行SQL语句,再到理解事务管理和批处理等高级功能,每一步都让我对JDBC有了更深的认识。示例代码展示了如何使用`DriverManager.getConnection()`连接数据库,并利用`PreparedStatement`执行参数化查询,有效防止SQL注入。
132 5
|
2月前
|
SQL 数据库 决策智能
SQL语句实现投影连接详解
在SQL中,投影(Projection)和连接(Join)是数据查询和处理中非常重要的两个操作
|
2月前
|
SQL 数据库 索引
SQL语句实现投影连接:技巧与方法详解
在SQL数据库操作中,投影连接(Projection Join)是一种常见的数据查询技术,它结合了投影(Projection)和连接(Join)两种操作
|
2月前
|
SQL 存储 监控
串口调试助手连接SQL数据库的技巧与方法
串口调试助手是电子工程师和软件开发人员常用的工具,它能够帮助用户进行串口通信的调试和数据分析
|
2月前
|
SQL 数据库 索引
内连接(INNER JOIN)在SQL中的简单应用与技巧
在SQL查询中,内连接(INNER JOIN)是一种基本且常用的连接类型,用于从两个或多个表中检索匹配的记录