JAVA 連接SQLServer數據庫


哇今天閑着沒事准備把前幾天鏈接數據庫碰到的問題寫到博客,寫到一半瀏覽器切出去了,這個瀏覽器也沒保存,晚上又寫了一遍,唉 蛋疼呀╮(╯▽╰)╭!!

說一說連接數據庫遇到的問題,唉問題繁多,原來自己刷的精簡版盜版系統剛開始就打不開數據庫安裝包,后來刷了個原版的,鏈接不上去,后來就又刷了一遍系統(刪注冊表也裝不上去),一些問題你們需要參考一下... 這個對framework 3.5需求很高,沒裝的,或者有問題的都裝不上。。有時候我特么裝了VS2013就裝不了數據庫,裝了數據庫就裝不了VS

!!!呀呀呀

安裝問題:

 
安裝時到這一步盡量選混合模式自己輸入密碼,不用太復雜123456就得了,畢竟你是在學習,不是維護數據庫.
 
如果 安裝時是這樣安裝的只需要進行下面的步驟:
如果不是這樣的  看紅色標記后的內容...
打開sql配置工具如圖:
把TCP/ip協議 開啟   就是后面的狀態欄是已啟用。 她要求重啟服務   可以點擊第一個sql server服務重啟啟動那些正在運行的服務,----------我覺得你應該明白。。實在不行你也可以重啟電腦呀哈哈!!!
第二個是端口問題  建議使用原來默認端口,因為不用改呀!!省的麻煩!一般那個端口不會被占用的,如果要改的話把TCP/ip的所有Ip改成一樣的端口:不明白看下圖:
 
 
下面是驅動問題:下載驅動包!
https://pan.baidu.com/s/1hsb6VK4   Microsoft SQL Server JDBC Driver 3.0.zip 這是Microsoft SQL Server JDBC Driver驅動你也可以去官網下載,畢竟與時俱進可能更新了功能,
打開eclipse或者ME創建JAVA項目 點擊你創建的java項目-右鍵-構建路徑-添加外部歸檔(上面有個小奶瓶圖標)把你下載的驅動解壓,添加sqljdbc4.jar這個jar包:如圖
之后你建一個類復制下面的代碼運行就可以
復制代碼
//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改為如下圖屬性

應用設置后,重啟SQL服務器,如下圖

重啟數據庫后要檢查1433端口是否打開
在cmd里輸入netstat -an|findstr 1433

輸出為下圖時表示1433端口開啟

2.java代碼#

代碼中的IPv4地址可以在cmd中用ipconfig得到

Copy
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();
		}
 
	}

}

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM