JAVA 連線SQLServer資料庫
哇今天閒著沒事準備把前幾天連結資料庫碰到的問題寫到部落格,寫到一半瀏覽器切出去了,這個瀏覽器也沒儲存,晚上又寫了一遍,唉 蛋疼呀╮(╯▽╰)╭!!
說一說連線資料庫遇到的問題,唉問題繁多,原來自己刷的精簡版盜版系統剛開始就打不開資料庫安裝包,後來刷了個原版的,連結不上去,後來就又刷了一遍系統(刪登錄檔也裝不上去),一些問題你們需要參考一下... 這個對framework 3.5需求很高,沒裝的,或者有問題的都裝不上。。有時候我特麼裝了VS2013就裝不了資料庫,裝了資料庫就裝不了VS
!!!呀呀呀
安裝問題:
安裝時到這一步儘量選混合模式自己輸入密碼,不用太複雜123456就得了,畢竟你是在學習,不是維護資料庫. 如果 安裝時是這樣安裝的只需要進行下面的步驟://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得到
Copyimport 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(); } } }