环境配置
软件下载
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配置管理器
右键启用三个协议
右键修改TCP/IP的属性
IP1和IP10的地址修改为127.0.0.1,端口号默认为1433,修改最后一行IPALL的TCP端口号为1433
Microsoft SQL Server Management Studio 18配置
右键服务器,点击属性,随后选择安全性,将windows身份验证改为sql sever和windows身份验证模式。点击确定即可。
随后依次展开 服务器->安全性->登录名->sa , sa是默认的用户,设置密码。(记住这个密码一会儿要用到)
输入密码后,再点击左边的 状态,然后将权限设置为 授予和启用,点击确定退出即可。
telnet服务
开启Telnet客户端
开启服务,右键此电脑--管理--服务和应用程序--服务
重启SQLserver服务
打开cmd输入telnet 127.0.0.1 1433(注意防火墙问题引起的连接失败),连接成功(此步不成功会影响到后面JAVA连接数据库)
IntelliJ IDEA配置
添加库文件
测试连接
测试代码(注意修改自己的数据库名称和密码)
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时
当x=4时
任务要求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();
}
}
}
主要操作过程:
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.对返回的结果集进行后续的操作