哇今天閑着沒事准備把前幾天鏈接數據庫碰到的問題寫到博客,寫到一半瀏覽器切出去了,這個瀏覽器也沒保存,晚上又寫了一遍,唉 蛋疼呀╮(╯▽╰)╭!!
說一說連接數據庫遇到的問題,唉問題繁多,原來自己刷的精簡版盜版系統剛開始就打不開數據庫安裝包,后來刷了個原版的,鏈接不上去,后來就又刷了一遍系統(刪注冊表也裝不上去),一些問題你們需要參考一下... 這個對framework 3.5需求很高,沒裝的,或者有問題的都裝不上。。有時候我特么裝了VS2013就裝不了數據庫,裝了數據庫就裝不了VS
!!!呀呀呀
安裝問題:
//shijiazhuangtiedaodaxue
import java.sql.*;
public class Conn
{
public static void main(String[] args) throws Exception
{
//Class.forName("com.mysql.jdbc.Driver");
//一開始必須填一個已經存在的數據庫
String url = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=model;";
Connection conn = DriverManager.getConnection(url, "sa", "123456");// 連接數據庫
Statement stat = conn.createStatement();//創建一個 Statement 對象來將 SQL 語句發送到數據庫。
ResultSet resultSet=stat.executeQuery("select * From master.dbo.sysdatabases where name='hello'");
if (resultSet.next()) {
System.out.println("table exist!");
//查詢數據
stat.close();//關閉原來的對象
conn.close();//關閉原來的鏈接
url = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=hello;";
conn = DriverManager.getConnection(url, "sa", "123456");// 連接數據庫如果你的密碼不是123456是要改的默認sa用戶不用改的
stat = conn.createStatement();//創建一個 Statement 對象來將 SQL 語句發送到數據庫。
ResultSet result = stat.executeQuery("select * from SQLtest");
while (result.next())
{
System.out.println("學號 "+result.getInt("id") + " 名字 " + result.getString("name")+" 年齡 "+result.getInt("Age"));
}
//關閉數據庫
result.close();
stat.close();
conn.close();
}else{
//創建數據庫hello
stat.executeUpdate("create database hello");
//打開創建的數據庫
stat.close();
conn.close();
url = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=hello;";
conn = DriverManager.getConnection(url, "sa", "123456");// 連接數據庫
stat = conn.createStatement();//創建一個 Statement 對象來將 SQL 語句發送到數據庫。
//創建表SQLtest
stat.executeUpdate("create table SQLtest(id int, name varchar(80),Age int)");
//添加數據
stat.executeUpdate("insert into SQLtest values(20163678, '胡粑粑',18)");
stat.executeUpdate("insert into SQLtest values(20163679, '李麻麻',19)");
stat.executeUpdate("insert into SQLtest values(20163620, '習噠噠',20)");
System.out.println("create table success!");
ResultSet result = stat.executeQuery("select * from SQLtest");
while (result.next())
{
System.out.println("學號 "+result.getInt("id") + " 名字 " + result.getString("name")+" 年齡 "+result.getInt("Age"));
}
//關閉數據庫
result.close();
stat.close();
conn.close();
}
}
}
里面會為你建一個數據庫和表,並讀出里面的內容,如果表存在則直接讀出里面的內容,自己寫的代碼,還是新手,代碼沒那么精簡。。。勿噴
如果你安裝時沒有創建密碼需要創建密碼
如圖:

點安全性-登錄名-打開登陸屬性-按照圖中的操作改成你需要的密碼.....
查看你的登陸屬性第四個選項--- 狀態是不是啟用和授予--如果不是改成啟用和授予。
然后重新打開SQL Server Management Studio 使用SQL server身份驗證登陸 賬戶為sa 密碼是你自己設的如果登陸成功,證明你密碼修改成功

1准備JDBC驅動
驅動下載地址
選擇sqljdbc_7.2.2.0_chs.exe下載
接下來打開,設置路徑,點擊"unzip",解壓到任意目錄。
解壓出的文件夾中有很多文件,但我們只需要三個“mssql-jdbc-7.2.2.jre8.jar”,“mssql-jdbc-7.2.2.jre11.jar”,“sqljdbc_auth.dll”(dll有兩種,64位系統使用x64文件夾下的,32位用x86下的)
將“mssql-jdbc-7.2.2.jre8.jar”,“mssql-jdbc-7.2.2.jre11.jar”移動到java工程的lib文件夾下,之后在工程中導入對應java版本的jar
將“sqljdbc_auth.dll”移動到java安裝目錄\JDK\bin下
2數據庫設置
打開Sql Server配置管理器
網絡配置->MSSQLSERVER->TCP/IP,啟動TCP/IP
接下來右鍵TCP/IP->屬性->IP地址,將IP0,IP10,IPALL改為如下圖屬性

重啟數據庫后要檢查1433端口是否打開
在cmd里輸入netstat -an|findstr 1433
輸出為下圖時表示1433端口開啟
2.java代碼#
代碼中的IPv4地址可以在cmd中用ipconfig得到
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; class JDBCTest { public static void main(String[] args) { String connectionUrl = "jdbc:sqlserver://(你的IPv4IP):1433;databaseName=選擇的數據庫;integratedSecurity=false;"; try (Connection con = DriverManager.getConnection(connectionUrl, "數據庫用戶名", "密碼"); Statement stmt = con.createStatement();) { String SQL = "SELECT TOP 10 * FROM uDept;(這里為輸入的SQL語句)"; ResultSet rs = stmt.executeQuery(SQL); while (rs.next()) { System.out.println(rs.getString("表中的列名")); } } catch (SQLException e) { e.printStackTrace(); } } }
package connect;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class SqlServerTest {
public static void main(String[] args) {
try {
//一開始必須填一個已經存在的數據庫
String url = "jdbc:sqlserver://xxxxxip:1433;DatabaseName=xxxxx;";
Connection conn = DriverManager.getConnection(url, "sa", "xxxx");// 連接數據庫
Statement stat = conn.createStatement();//創建一個 Statement 對象來將 SQL 語句發送到數據庫。
ResultSet resultSet=stat.executeQuery("select * From ZKECO.dbo.ipos_meal");
ResultSetMetaData md = resultSet.getMetaData();
List list = new ArrayList();
int columnCount = md.getColumnCount();
while (resultSet.next()) {
Map rowData = new HashMap();
for (int i = 1; i <= columnCount; i++) {
rowData.put(md.getColumnName(i), resultSet.getObject(i));
}
list.add(rowData);
}
System.out.println("list====="+list);
//關閉數據庫
resultSet.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}


