• JDBC驱动连接SQLserver数据库


    环境配置

    软件下载

    1.下载java8Java 存档下载 — Java SE 8 | Oracle 中国
    2.下载IntelliJ IDEA https://www.jetbrains.com/idea/download/#section=windows
    3.下载JDBC驱动程序 https://www.microsoft.com/zh-CN/download/details.aspx?id=11774
    (直接下载这个:https://wwz.lanzouw.com/iNiNU05ipyud)
    4.下载telnet服务端(不需要好像也可以用) http://www.goodtechsys.com/downloadstelnetnt2000.asp
    (直接下载这个:https://wwz.lanzouw.com/iKabZ05iq2ah)

    软件配置

    SQLserver2019配置管理器

    打开SQLserver2019配置管理器

    image.png

    右键启用三个协议

    image.png

    右键修改TCP/IP的属性

    IP1和IP10的地址修改为127.0.0.1,端口号默认为1433,修改最后一行IPALL的TCP端口号为1433

    image.png

    Microsoft SQL Server Management Studio 18配置

    右键服务器,点击属性,随后选择安全性,将windows身份验证改为sql sever和windows身份验证模式。点击确定即可。

    image.png

    image.png

    随后依次展开 服务器->安全性->登录名->sa , sa是默认的用户,设置密码。(记住这个密码一会儿要用到)

    image.png

    输入密码后,再点击左边的 状态,然后将权限设置为 授予和启用,点击确定退出即可。

    image.png

    telnet服务

    开启Telnet客户端

    image.png

    开启服务,右键此电脑--管理--服务和应用程序--服务

    image.png

    重启SQLserver服务

    image.png

    打开cmd输入telnet 127.0.0.1 1433(注意防火墙问题引起的连接失败),连接成功(此步不成功会影响到后面JAVA连接数据库)

    image.png

    IntelliJ IDEA配置

    添加库文件

    image.png

    image.png

    测试连接

    image.png

    测试代码(注意修改自己的数据库名称和密码)

    import java.sql.Connection;
    import java.sql.DriverManager;
    
    public class HelloWorld {
        public static void main(String[] args) {
            String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
            String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=Student";//数据库名称
            String userName = "sa"; //数据库账号
            String userPwd = "123"; //数据库密码
            try {
                Class.forName(driverName);
                Connection dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
                System.out.println("数据库连接成功!");
            } catch (Exception e) {
                e.printStackTrace();
                System.out.print("数据库连接失败!");
            }
        }
    }
    

    数据库操作

    任务要求1

    1、在Student数据库创建Stu数据表,按照下图的列名,数据可自行填充,要求至少有两个专业的人数大于等于3:

    如果学生的专业含“计算机”或者“通信”显示热门,若含”化学“或者”生物“,显示冷门,否则显示一般。用SQL脚本创建存储过程查询学生人数大于x的热门专业的专业名称,人数,专业热度,当查到符合条件的结果后,返回0,若查不到结果,返回-1. 并执行存储过程查询x为2的结果。

    实现过程

    创建数据库

    use Student
    
    create table Stu 
    (
    	学号 char(20) not null,
    	专业 char(20) not null,
    	性别 char(2) not null,
    	年龄 int not null,
    	姓	char(20) not null,
    	名  char(20) not null
    )
    insert into Stu values
    ('10001','数媒','男','30','梅','西'),
    ('10002','计算机科学与技术','男','18','费','德勒'),
    ('10003','计算机软件','男','21','勒','布朗.詹姆斯'),
    ('10004','通信工程','男','19','库','里'),
    ('10005','会计学','男','22','詹','姆斯.哈登'),
    ('10006','化学','男','19','邓','肯'),
    ('10007','生物','男','26','丘','光国'),
    ('10008','通信工程','男','29','蒋','辰博'),
    ('10009','化学','男','20','马','思'),
    ('10010','化学','女','25','殷','栋之'),
    ('10011','数媒','女','24','丁','广'),
    ('10012','通信工程','女','22','王','一'),
    ('10013','数媒','男','24','张','四'),
    ('10014','通信工程','男','22','张','三'),
    ('10015','计算机软件','男','22','王','二'),
    ('10016','计算机软件','女','23','李','一'),
    ('10017','计算机科学与技术','男','22','张','二')
    

    创建存储过程

    use Student
    go
    create proc message
    @x int
    as begin
    declare @num int
    select @num = count(*) from Stu group by 专业 having count(*)>@x
    if  (@num>=1)
    begin
    select case when 专业 like '%计算机%' or 专业 like '%通信%' then '热门'when 专业 like '%化学%' or 专业 like '%生物%' then '冷门'else  '一般'end as '专业热度',count(*) as 人数,专业 from Stu group by 专业 
    having count(*)>@x
    	return 0
    end
    else
    	return -1
    end
    

    执行存储过程

    declare @count int
    exec  @count=message @x=2	--修改这个参数就行
    select @count as 返回结果
    

    当x=2时

    image.png

    当x=4时

    image.png

    任务要求2

    2、用Java或VC或Android或Hadoop或你会用的任何编程工具,写代码。要求:调用SQL语句访问SQL Server中已经建好的数据库Student,完成第1题中查询询学生人数大于2的热门专业的专业名称,人数,专业热度

    1)提交代码和结果截图。

    2)解释你所用的工具中每一条对数据库操作的语句的工作过程。

    3)并记录在配置过程中遇到的错误以及解决的过程。供参考:Java操作的步骤如下:

    步骤1、安装JDK;

    步骤2、下载JDBC;

    步骤3、在JAVA中程序中实现与数据库的连接;

    步骤4、执行查询的SQL语句;

    步骤5、显示查询结果。

    实现过程

    import java.sql.*;
    
    public class HelloWorld {
        public static void main(String[] args) {
            String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
            String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=Student";
            String userName = "sa";
            String userPwd = "123";
            Connection con;
            Statement stmt;
            ResultSet rs;
            String sqlStr = "select case when 专业 like '%计算机%' or 专业 like '%通信%' then '热门'when 专业 like '%化学%' or 专业 like '%生物%' then '冷门'else  '一般'end as '专业热度',count(*) as '人数',专业 from Stu group by 专业 having count(*)>2";
            try {
                Class.forName(driverName);
                System.out.println("类实例化成功!");
                con = DriverManager.getConnection(dbURL, userName, userPwd);
                System.out.println("创建连接对象成功!");
                stmt = con.createStatement();
                System.out.println("创建Statement成功!");
                rs = stmt.executeQuery(sqlStr);
                System.out.println("操作数据表成功!");
                System.out.println("___________________________");
                System.out.println("专业热度   人数      专业");
                while (rs.next()) {
                    System.out.print(rs.getString("专业热度").trim() + "      ");
                    System.out.print(rs.getString("人数").trim() + "         ");
                    System.out.print(rs.getString("专业").trim());
                    System.out.println("\r");
                }
                rs.close();
                stmt.close();
                con.close();
    
            } catch (Exception e) {
                e.printStackTrace();
            }
    
        }
    }
    

    image.png

    主要操作过程:
    1.加载驱动程序:Class.forName(driverName);
    2.获得数据库连接 :Connection con = DriverManager.getConnection(dbURL, userName, userPwd);
    3.创建Statement : Statement stmt = con.createStatement();
    4.调用SQL语句:ResultSet rs = stmt.executeQuery(sqlStr);
    5.对返回的结果集进行后续的操作

  • 相关阅读:
    DOM对象模型接口规范中的四个基本接口
    js中几种实用的跨域方法原理详解(转)
    关于ie6/7下的z-index
    Mysql++学习(五)------专用SQL结构
    Mysql++学习(四)------模板查询
    Mysql++学习(三)------举个栗子
    Mysql++学习(二)------Mysql++简述
    Mysql++学习(一)------mysql编译安装
    epoll模型实例
    锁、页类型
  • 原文地址:https://www.cnblogs.com/xgcl/p/16295246.html
Copyright © 2020-2023  润新知