教程若有問題,歡迎指出。
未理解的地方,歡迎提問。
一、使用SQL身份驗證
- 在連接數(shù)據(jù)庫之前必須保證SQL Server是采用SQL Server身份驗證方式而不是windows身份驗證方式

SQL Server身份驗證
- 重新設(shè)置身份驗證

開啟SQL身份驗證
-
設(shè)置sa的密碼并啟用sa登錄名
要重新啟動一下,讓配置生效
-
使用SQL Server 賬號登陸
二、確認(rèn)連接服務(wù)開啟
1.使用 SQL Server配置管理器 開啟服務(wù)
將所有的服務(wù)開啟

2.檢測端口是否開啟成功:
使用 netstat -ano 查看端口使用情況 存在1433即成功開啟

三、下載并使用JDBC
-
下載Microsoft JDBC Driver 7.0 for SQL Server
官方下載地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=57175

解壓后,根據(jù)自己Java版本選擇相應(yīng)的Jar包

再在系統(tǒng)環(huán)境變量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換成你自己的數(shù)據(jù)庫名
String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=Test";
String userName = "sa";
//將密碼改成自己設(shè)置的密碼
String userPwd = "qwerty";
Connection dbConn = null;
try
{
Class.forName(driverName);
dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
System.out.println("連接數(shù)據(jù)庫成功");
}
catch (Exception e)
{
e.printStackTrace();
System.out.print("連接失敗");
}
}
}
以下附上本人的SQL查詢實現(xiàn)代碼:
import java.sql.*;
public class Test {
public static void main(String[] args) {
Connection conn;
Statement stmt;
ResultSet rs;
//將”冒險島“修改成自己的數(shù)據(jù)庫名
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=冒險島;";
//將Sql語句放在這里,注意不能換行,或者使用 + 進行連接
String sql = "USE 冒險島 select distinct 一轉(zhuǎn).技能名,一轉(zhuǎn).等級 技能需要等級,一轉(zhuǎn).消耗藍量,一轉(zhuǎn).效果 from 角色,等級,第一職業(yè),一轉(zhuǎn) where 角色.角色名='CotoryX' and 等級.角色名 = 角色.角色名 and 等級.等級>=一轉(zhuǎn).等級 and 一轉(zhuǎn).一轉(zhuǎn)職業(yè)=角色.一轉(zhuǎn)職業(yè)名 union select distinct 二轉(zhuǎn).技能名,二轉(zhuǎn).等級 技能需要等級,二轉(zhuǎn).消耗藍量,二轉(zhuǎn).效果 from 角色,等級,第二職業(yè),二轉(zhuǎn) where 角色.角色名='CotoryX' and 等級.角色名 = 角色.角色名 and 等級.等級>=二轉(zhuǎn).等級 and 二轉(zhuǎn).職業(yè)名= (select 第二職業(yè).職業(yè)名 from 第二職業(yè) where 第二職業(yè).一轉(zhuǎn)職業(yè)名=(select 角色.一轉(zhuǎn)職業(yè)名 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("數(shù)據(jù)庫連接失敗");
}
}
}
查詢結(jié)果:
冒險島數(shù)據(jù)庫 Github地址https://github.com/Cotory/MapleStory_SQL_bak
我是 Cotory,樂于分享知識。
熱愛生活,喜歡游泳,略懂烹飪。
人生格言:「在找人改變自己?照照鏡子吧」


