教程若有问题,欢迎指出。
未理解的地方,欢迎提问。
一、使用SQL身份验证
在连接数据库之前必须保证SQL Server是采用SQL Server身份验证方式而不是windows身份验证方式
SQL Server身份验证
重新设置身份验证
开启SQL身份验证要求重启,退出程序,再次进入。这一步很重要!
设置sa的密码并启用sa登录名
要重新启动一下,让配置生效
使用SQL Server 账号登陆
二、确认连接服务开启
1.使用 SQL Server配置管理器 开启服务
将所有的服务开启
2.检测端口是否开启成功:
使用 netstat -ano 查看端口使用情况 存在1433即成功开启
三、下载并使用JDBC
解压后,根据自己Java版本选择相应的Jar包
再在系统环境变量CLASSPATH中添加 ;C:\JDBC\mssql-jdbc-7.0.0.jre10.jar
注意前面有分号
image.png
2.进行连接测试
import java.sql.*;
public class Main {
public static void main(String[] args)
{
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
//将Test换成你自己的数据库名
String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=Test";
String userName = "sa";
//将密码改成自己设置的密码
String userPwd = "qwerty";
Connection dbConn = null;
try
{
Class.forName(driverName);
dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
System.out.println("连接数据库成功");
}
catch (Exception e)
{
e.printStackTrace();
System.out.print("连接失败");
}
}
}
以下附上本人的SQL查询实现代码:
import java.sql.*;
public class Test {
public static void main(String[] args) {
Connection conn;
Statement stmt;
ResultSet rs;
//将”冒险岛“修改成自己的数据库名
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=冒险岛;";
//将Sql语句放在这里,注意不能换行,或者使用 + 进行连接
String sql = "USE 冒险岛 select distinct 一转.技能名,一转.等级 技能需要等级,一转.消耗蓝量,一转.效果 from 角色,等级,第一职业,一转 where 角色.角色名='CotoryX' and 等级.角色名 = 角色.角色名 and 等级.等级>=一转.等级 and 一转.一转职业=角色.一转职业名 union select distinct 二转.技能名,二转.等级 技能需要等级,二转.消耗蓝量,二转.效果 from 角色,等级,第二职业,二转 where 角色.角色名='CotoryX' and 等级.角色名 = 角色.角色名 and 等级.等级>=二转.等级 and 二转.职业名= (select 第二职业.职业名 from 第二职业 where 第二职业.一转职业名=(select 角色.一转职业名 from 角色 where 角色.角色名='CotoryX'))order by 技能需要等级";
try {
//将密码(hes123789)修改成自己的密码
conn = DriverManager.getConnection(url, "sa", "hes123789");
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
while (rs.next()) {
//从rs对象中获取信息
String name = rs.getString("技能名");
int lv = rs.getInt("技能需要等级");
String code = rs.getString("效果");
int cost = rs.getInt("消耗蓝量");
//格式输出信息
System.out.println("技能名:" + name + "\t效果:" + code + "\t技能需要等级:" + lv +"\t消耗蓝量:" + cost );
}
if (rs != null) {
rs.close();
rs = null;
}
if (stmt != null) {
stmt.close();
stmt = null;
}
if (conn != null) {
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
System.out.println("数据库连接失败");
}
}
}
查询结果:
我是 Cotory,乐于分享知识。
热爱生活,喜欢游泳,略懂烹饪。
人生格言:「在找人改变自己?照照镜子吧」