A. 如何將java與資料庫中的表和數據串連起來。。。。
Java連接資料庫步驟
首先需要導入相應資料庫的驅動文件,然後要注冊驅動,Class.forname(driverName),獲取Connection對象Connection conn=DriverManager.getConnection(URL);然後獲取PreparedStatement對象PreparedStatement pst=conn.getPreparedState(sql,username,password)其中的username和password是你訪問資料庫的名稱和密碼;如果要使用到返回集合則可以用ResultSet對象接收,ResultSet rs=pst.executeQuery();不要使用到返回集合的話就直接pst.executeQuery();
以上的可以查jdk
1.mysql:driverName的值為:com.mysql.jdbc.Driver;url的值為:jdbc:mysql://localhost:3306/hibernate其中hibernate是你的資料庫名稱
2.sqlserver:driverName的值為:com.microsoft.sqlserver.jdbc.SQLServerDriver;url的值為
jdbc:sqlserver://localhost:1433;DatabaseName=" + database,其中database是你資料庫名稱
3.oracle:driverName的值為:oracle.jdbc.driver.OracleDriver;url的值:jdbc:oracle:thin:@127.0.0.1:1521:ora92,其中ora92是你資料庫名稱;
給個例子:
Java連接SQL Server 2005
try {
//載入驅動
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
.newInstance();
//建立連接,伺服器埠號1434,資料庫名test
Connection conn = DriverManager.getConnection(
"jdbc:sqlserver://localhost:1434;DatabaseName=test",
"test", "test");
//建立Statement
Statement stat = conn.createStatement();
//得到結果集
ResultSet rs = stat.executeQuery("select * from sysuser");
ResultSetMetaData rsmd = rs.getMetaData();
//遍歷結果集,列印輸出
while (rs.next()) {
System.out.println(rsmd.getColumnName(1) + ":"
+ rs.getString(1) + ";" + rsmd.getColumnName(2) + ":"
+ rs.getString(2));
}
conn.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
B. 如何設計Access表與java連接。
可以用兩種方式來實現Access與java程序的連接
第一種:jdbc-odbc橋連;首先是sun.jdbc.odbc.JdbcOdbcDriver驅動類。他不需要另外下載。已經在jdk當中包含了。然後開始配置數據源:開始--設置--控制面板--管理工具--數據源(ODBC)在彈出的對話框中單擊「添加」按鈕-然後在顯示框中選擇Driver do MicroSoft Access(* mdb)--點擊完成—輸入你的資料庫名--點擊選擇-再右側框中選擇你的資料庫具體位置確定即可
程序中的關鍵代碼:
public static String d_class="sun.jdbc.odbc.JdbcOdbcDriver";
public static String d_url="jdbc:odbc:資料庫名.mdb";
public static String d_user="資料庫用戶名";
public static String d_pwd="密碼";//沒有就不填寫
第二種:直連:就是不配置數據源直接就寫出連接路徑這個比較省事。
public static String d_class="sun.jdbc.odbc.JdbcOdbcDriver";
public static String d_url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=資料庫名.mdb";注意DBQ這樣寫的前提是把Access資料庫放在java程序的根文件夾下(即java文件所在的文件夾下)。
C. 在java中可以用幾種方法連接資料庫
你的問題很難回答啊
如果從內在原理來講就是一種:先載入驅動程序再獲得連接
如果從操作來講我把他分三種:
1,直接在你的代碼中用代碼寫出載入驅動和獲得連接的代碼
2,在windows的數據源中配置一個數據源,這種方法一般不用
3,如果是網站開發可以在web應用的web.xml中配置一個連接池,用時直接從池中獲得連接.
java與資料庫的連接都是通過JDBC介面實現的你如果要問的是JDBC的種類的話你可以查數就4類
1,jdbc-odbc橋
2,jdbc-native方法
3,jdbc-網路
4,jdbc驅動
你如果問JDBC具體有哪些,那隻能告訴你有幾種資料庫就有幾種JDBC.
D. java如何實現鏈表
鏈表是一種重要的數據結構,在程序設計中佔有很重要的地位。C語言和C++語言中是用指針來實現鏈表結構的,由於Java語言不提供指針,所以有人認為在Java語言中不能實現鏈表,其實不然,Java語言比C和C++更容易實現鏈表結構。Java語言中的對象引用實際上是一個指針(本文中的指針均為概念上的意義,而非語言提供的數據類型),所以我們可以編寫這樣的類來實現鏈表中的結點。
class Node
{
Object data;
Node next;//指向下一個結點
}
將數據域定義成Object類是因為Object類是廣義超類,任何類對象都可以給其賦值,增加了代碼的通用性。為了使鏈表可以被訪問還需要定義一個表頭,表頭必須包含指向第一個結點的指針和指向當前結點的指針。為了便於在鏈表尾部增加結點,還可以增加一指向鏈表尾部的指針,另外還可以用一個域來表示鏈表的大小,當調用者想得到鏈表的大小時,不必遍歷整個鏈表。下圖是這種鏈表的示意圖:
鏈表的數據結構
我們可以用類List來實現鏈表結構,用變數Head、Tail、Length、Pointer來實現表頭。存儲當前結點的指針時有一定的技巧,Pointer並非存儲指向當前結點的指針,而是存儲指向它的前趨結點的指針,當其值為null時表示當前結點是第一個結點。那麼為什麼要這樣做呢?這是因為當刪除當前結點後仍需保證剩下的結點構成鏈表,如果Pointer指向當前結點,則會給操作帶來很大困難。那麼如何得到當前結點呢,我們定義了一個方法cursor(),返回值是指向當前結點的指針。類List還定義了一些方法來實現對鏈表的基本操作,通過運用這些基本操作我們可以對鏈表進行各種操作。例如reset()方法使第一個結點成為當前結點。insert(Object d)方法在當前結點前插入一個結點,並使其成為當前結點。remove()方法刪除當前結點同時返回其內容,並使其後繼結點成為當前結點,如果刪除的是最後一個結點,則第一個結點變為當前結點。
鏈表類List的源代碼如下:
import java.io.*;
public class List
{
/*用變數來實現表頭*/
private Node Head=null;
private Node Tail=null;
private Node Pointer=null;
private int Length=0;
public void deleteAll()
/*清空整個鏈表*/
{
Head=null;
Tail=null;
Pointer=null;
Length=0;
}
public void reset()
/*鏈表復位,使第一個結點成為當前結點*/
{
Pointer=null;
}
public boolean isEmpty()
/*判斷鏈表是否為空*/
{
return(Length==0);
}
public boolean isEnd()
/*判斷當前結點是否為最後一個結點*/
{
if(Length==0)
throw new java.lang.NullPointerException();
else if(Length==1)
return true;
else
return(cursor()==Tail);
}
public Object nextNode()
/*返回當前結點的下一個結點的值,並使其成為當前結點*/
{
if(Length==1)
throw new java.util.NoSuchElementException();
else if(Length==0)
throw new java.lang.NullPointerException();
else
{
Node temp=cursor();
Pointer=temp;
if(temp!=Tail)
return(temp.next.data);
else
throw new java.util.NoSuchElementException();
}
}
public Object currentNode()
/*返回當前結點的值*/
{
Node temp=cursor();
return temp.data;
}
public void insert(Object d)
/*在當前結點前插入一個結點,並使其成為當前結點*/
{
Node e=new Node(d);
if(Length==0)
{
Tail=e;
Head=e;
}
else
{
Node temp=cursor();
e.next=temp;
if(Pointer==null)
Head=e;
else
Pointer.next=e;
}
Length++;
}
public int size()
/*返回鏈表的大小*/
{
return (Length);
}
public Object remove()
/*將當前結點移出鏈表,下一個結點成為當前結點,如果移出的結點是最後一個結點,則第一個結點成為當前結點*/
{
Object temp;
if(Length==0)
throw new java.util.NoSuchElementException();
else if(Length==1)
{
temp=Head.data;
deleteAll();
}
else
{
Node cur=cursor();
temp=cur.data;
if(cur==Head)
Head=cur.next;
else if(cur==Tail)
{
Pointer.next=null;
Tail=Pointer;
reset();
}
else
Pointer.next=cur.next;
Length--;
}
return temp;
}
private Node cursor()
/*返回當前結點的指針*/
{
if(Head==null)
throw new java.lang.NullPointerException();
else if(Pointer==null)
return Head;
else
return Pointer.next;
}
public static void main(String[] args)
/*鏈表的簡單應用舉例*/
{
List a=new List ();
for(int i=1;i<=10;i++)
a.insert(new Integer(i));
System.out.println(a.currentNode());
while(!a.isEnd())
System.out.println(a.nextNode());
a.reset();
while(!a.isEnd())
{
a.remove();
}
a.remove();
a.reset();
if(a.isEmpty())
System.out.println("There is no Node in List \n");
System.in.println("You can press return to quit\n");
try
{
System.in.read();
//確保用戶看清程序運行結果
}
catch(IOException e)
{}
}
}
class Node
/*構成鏈表的結點定義*/
{
Object data;
Node next;
Node(Object d)
{
data=d;
next=null;
}
}
讀者還可以根據實際需要定義新的方法來對鏈表進行操作。雙向鏈表可以用類似的方法實現只是結點的類增加了一個指向前趨結點的指針。
可以用這樣的代碼來實現:
class Node
{
Object data;
Node next;
Node previous;
Node(Object d)
{
data=d;
next=null;
previous=null;
}
}
當然,雙向鏈表基本操作的實現略有不同。鏈表和雙向鏈表的實現方法,也可以用在堆棧和隊列的實現中,這里就不再多寫了,有興趣的讀者可以將List類的代碼稍加改動即可。
希望對你有幫助。
E. java中連接MySQL資料庫的幾種方式
1:引入java.sql數據包;
import java.sql.*;
2:載入JDBC驅動程序
Class.forName(JDBC驅動包的名字).newInstance();
3:產生Connection
如已成功載入JDBC驅動程序,就可以利用載入的驅動程序連接資料庫
Connection con=DriverManager.getConnection(URL,UserName,Password);
URL: JDBC:(subprotocol):(subname)
subprotocol:子協議指定連接何種資料庫或用什麼方式連接資料庫;
subname:確立一個連接,可以是一個數據源名,也可是指向一個網上資料庫.
4:各種連接例:
(1) MySQL資料庫
String Dirver="com.mysql.jdbc.Driver";//驅動程序
String URL="jdbc:mysql://localhost:3306/db_name"; //連接的URL,db_name為資料庫名
String UserName="username"; //用戶名
String Password="password"; //密碼
Class.forName(Driver).newInstance(); //載入資料庫驅動
connection con=DriverManager.getConnection(URL,Username,Password);
(2) Microsoft SQL server 資料庫
String Driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"; //驅動程序
String URL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_name";
//連接的URL,db_name為資料庫
String UserName="username"; //用戶名
String Password="password"; //密碼
Class.forName(Driver).newInstance();
connection con=DriverManager.getConnection(URL,Username,Password);
(3) sybase 資料庫
String Driver="com.sybase.jdbc.sybDriver"; //驅動程序
String URL="jdbc:Sybase://localhost:5007/db_name"; //連接的URL,db_name為資料庫
String UserName="username"; //用戶名
String Password="password"; //密碼
Class.forName(Driver).newInstance();
connection con=DriverManager.getConnection(URL,Username,Password);
(4) Oracle(用thin模式)資料庫
String Driver="oracle.jdbc.driver.OracleDriver"; //驅動程序
String URL="jdbc:oracle:thin://localhost:1521:orcl";
//連接的URL,orcl為資料庫的SID
String UserName="username"; //用戶名
String Password="password"; //密碼
Class.forName(Driver).newInstance();
connection con=DriverManager.getConnection(URL,Username,Password);
(5) 利用JDBC-ODBC橋連接
String Driver="sun.jdbc.odbc.JdbcodbcDriver"; //驅動程序
String URL="jdbc:odbc:dbsource"; //連接的URL,dbsource為數據源名
String UserName="username"; //用戶名
String Password="password"; //密碼
Class.forName(Driver).newInstance();
connection con=DriverManager.getConnection(URL,Username,Password);
F. 怎麼用java連接第三方設備,比如水表,電表
對接過 一些門鎖,說下,連接硬體的經驗吧,不一定對,首先,你連接那種 智能的硬體,這種硬體 一般會有 網卡,有了網卡,才能和別的設備連接起來,有可能是網線,或者無線WiFI,現在應該都是wifi,至少不需要網線那樣的介面,一個硬體上如果帶有網線那樣的介面,會丑的要死。有了網線,你需要去配置相關的東西,比如wifi,你至少需要把賬號密碼給它,它才能連上網。這裡面一般 製造那個硬體的公司 會開發 一個APP,通過APP,就可以去設置賬號密碼,一般情況下,APP是通過藍牙直接跟硬體交互。你能配置好wifi的賬號密碼之後,那個智能的水電表,就能連上 那個公司對應的管理平台,然後 你就能 調用那個公司對應管理平台的介面,獲取對應的數據了,也可以是操作,我對接的是門鎖,所以一般是開門,或者關門,水電表的化,應該是獲取讀數了。這是一種方式,還有另一種,會有專門的軟體,你需要把軟體安裝到自己的伺服器,同時把對應的智能硬體連接到對應的軟體上,這個就相當於伺服器,硬體都有你們自己管理了。
這裡面,其實重要的是理解計算機網路,兩個東西怎麼依賴網路連接起來。然後是 這種硬體的開發商,一般會有對應的文檔,描述怎麼對接的。多看看,然後從網路連接的角度理解下,就好了。
G. java中多表連接語句怎麼寫
想要多少個表連接啊。問題要寫清楚了。我可以給你參考一下。這是一個多表查詢的方法:通過佔位符獲取,也是最安裝的SQL寫法。如果你想寫什麼在java代碼SQL可以網路HI我:代碼如下:
public int queryShortRecord(Connection db,String riskApplicationId) throws SQLException {
StringBuffer sql = new StringBuffer();
PreparedStatement pst = null; //帶有佔位符的預處理變數
ResultSet rs = null; //定義結果集變數
int count = 0;
try {
sql.append(" SELECT prc.* , rc.comments, rca.comments as factorComments, rca.risk_factor_type_id ")
.append("from prd_rsk_cls_affect_fact_appl prc ")
.append("left join risk_class rc on prc.risk_class_id = rc.risk_class_id ")
.append("left join risk_cls_affect_factor rca on prc.risk_factor_id = rca.risk_factor_id ")
.append("where risk_application_id = ? ");//查詢SQL語句
if (status !=null){
sql.append(" and prc.status != ? ");
}
pst = db.prepareStatement(sql.toString());
int i = 0;
pst.setString(++i, riskApplicationId);
if (status !=null){
pst.setString(++i, this.status);
}
rs = pst.executeQuery();//查詢執行
while (rs.next()) {
buildRecord(rs);
count ++;
}
} catch (SQLException e) {
throw e;
} finally {
DatabaseUtils.closeQuietly(pst,rs);
}
return count;
}
H. java裡面如何寫一個方法然後調用它就可以連接目前主流的資料庫並且可以查詢裡面的表信息 還能查詢資料庫
一個方法體,傳遞需要的數據連接串,表信息,和表的查詢語句,
方法名(string 庫連接串,string 表名,string 查詢語句sql)
{
根據連接語句,判斷資料庫類型,//sql server 、oracle、access等
連接資料庫;
執行查詢語句;
返回查詢結果;
}
在別的地方調用這個方法就可以了,需要做的是把主流的資料庫的連接語句都整理好,別的都是類似的了。這是思路,供參考。