新聞中心
Java 數(shù)據(jù)庫(kù)工具箱,幫你輕松操作數(shù)據(jù)庫(kù)

成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)服務(wù)團(tuán)隊(duì)是一支充滿(mǎn)著熱情的團(tuán)隊(duì),執(zhí)著、敏銳、追求更好,是創(chuàng)新互聯(lián)的標(biāo)準(zhǔn)與要求,同時(shí)竭誠(chéng)為客戶(hù)提供服務(wù)是我們的理念。成都創(chuàng)新互聯(lián)公司把每個(gè)網(wǎng)站當(dāng)做一個(gè)產(chǎn)品來(lái)開(kāi)發(fā),精雕細(xì)琢,追求一名工匠心中的細(xì)致,我們更用心!
在軟件開(kāi)發(fā)的過(guò)程中,我們經(jīng)常需要操作數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)和提取數(shù)據(jù)。然而,手動(dòng)編寫(xiě) SQL 語(yǔ)句和 Java 代碼來(lái)訪問(wèn)數(shù)據(jù)庫(kù)是一項(xiàng)繁瑣而耗時(shí)的任務(wù)。為了簡(jiǎn)化這個(gè)過(guò)程,Java 數(shù)據(jù)庫(kù)工具箱應(yīng)運(yùn)而生。本文將介紹 Java 數(shù)據(jù)庫(kù)工具箱的基本概念,以及如何使用它來(lái)輕松操作數(shù)據(jù)庫(kù)。
什么是 Java 數(shù)據(jù)庫(kù)工具箱?
Java 數(shù)據(jù)庫(kù)工具箱是一個(gè) Java 庫(kù),它提供了一系列的類(lèi)和方法,用于簡(jiǎn)化對(duì)數(shù)據(jù)庫(kù)的操作。Java 數(shù)據(jù)庫(kù)工具箱可以連接到大多數(shù)類(lèi)型的數(shù)據(jù)庫(kù),包括 MySQL、Oracle、PostgreSQL 等。不僅如此,Java 數(shù)據(jù)庫(kù)工具箱還提供了與各種 SQL 語(yǔ)句的交互,以便快速導(dǎo)入、導(dǎo)出和轉(zhuǎn)換數(shù)據(jù)。
Java 數(shù)據(jù)庫(kù)工具箱的主要功能是實(shí)現(xiàn)數(shù)據(jù)的讀取、寫(xiě)入、更新和刪除。Java 數(shù)據(jù)庫(kù)工具箱還提供了高級(jí)功能,如事務(wù)處理、數(shù)據(jù)備份和恢復(fù),以及各種數(shù)據(jù)庫(kù)管理任務(wù)。Java 數(shù)據(jù)庫(kù)工具箱可以幫助開(kāi)發(fā)者更快地完成數(shù)據(jù)庫(kù)操作,降低錯(cuò)誤率。
如何使用 Java 數(shù)據(jù)庫(kù)工具箱?
Java 數(shù)據(jù)庫(kù)工具箱的使用非常簡(jiǎn)單。下面我們將介紹如何使用 Java 數(shù)據(jù)庫(kù)工具箱來(lái)實(shí)現(xiàn)以下操作:連接到數(shù)據(jù)庫(kù)、讀取數(shù)據(jù)、寫(xiě)入數(shù)據(jù)和更新數(shù)據(jù)。
連接到數(shù)據(jù)庫(kù)
Java 數(shù)據(jù)庫(kù)工具箱可以連接到各種數(shù)據(jù)庫(kù)類(lèi)型。例如,下面的代碼可以連接到 MySQL 數(shù)據(jù)庫(kù):
“`
String url = “jdbc:mysql://localhost:3306/mydatabase”;
String username = “myusername”;
String password = “mypassword”;
Connection conn = DriverManager.getConnection(url, username, password);
“`
這里,我們使用 DriverManager 類(lèi)的 getConnection() 方法來(lái)連接到數(shù)據(jù)庫(kù)。其中 url 參數(shù)是連接字符串,它指定了數(shù)據(jù)庫(kù)的位置和名稱(chēng)。username 和 password 參數(shù)是連接數(shù)據(jù)庫(kù)所需的憑據(jù)。
讀取數(shù)據(jù)
Java 數(shù)據(jù)庫(kù)工具箱可以使用多種方式來(lái)讀取數(shù)據(jù)庫(kù)數(shù)據(jù)。例如,使用 ResultSet 類(lèi)可以執(zhí)行 SQL 查詢(xún)并返回結(jié)果集。
下面的代碼演示了如何從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù):
“`
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(“SELECT * FROM mytable”);
while (rs.next()) {
int id = rs.getInt(“id”);
String name = rs.getString(“name”);
double price = rs.getDouble(“price”);
System.out.println(id + “, ” + name + “, ” + price);
}
rs.close();
stmt.close();
“`
這里,我們使用 Statement 類(lèi)的 executeQuery() 方法來(lái)執(zhí)行 SQL 查詢(xún)。查詢(xún)結(jié)果以 ResultSet 對(duì)象的形式返回。ResultSet 對(duì)象表示一個(gè)表格數(shù)據(jù),它可以用來(lái)遍歷查詢(xún)結(jié)果。
寫(xiě)入數(shù)據(jù)
Java 數(shù)據(jù)庫(kù)工具箱可以用來(lái)方便地寫(xiě)入數(shù)據(jù)。例如,使用 PreparedStatement 類(lèi)可以執(zhí)行 SQL 插入、更新和刪除語(yǔ)句。
下面的代碼演示了如何將數(shù)據(jù)寫(xiě)入到數(shù)據(jù)庫(kù)表中:
“`
PreparedStatement stmt = conn.prepareStatement(“INSERT INTO mytable (name, price) VALUES (?, ?)”);
stmt.setString(1, “apple”);
stmt.setDouble(2, 1.23);
stmt.executeUpdate();
stmt.setString(1, “orange”);
stmt.setDouble(2, 0.99);
stmt.executeUpdate();
stmt.close();
“`
這里,我們使用 PreparedStatement 類(lèi)的 setXXX() 方法來(lái)設(shè)置 SQL 語(yǔ)句的參數(shù)值,并使用 executeUpdate() 方法來(lái)執(zhí)行 SQL 語(yǔ)句。這樣,我們可以向數(shù)據(jù)庫(kù)表中插入新的數(shù)據(jù)。
更新數(shù)據(jù)
Java 數(shù)據(jù)庫(kù)工具箱還可以用來(lái)更新數(shù)據(jù)庫(kù)中的數(shù)據(jù)。例如,使用 PreparedStatement 類(lèi)可以執(zhí)行 SQL 更新語(yǔ)句。
下面的代碼演示了如何更新數(shù)據(jù)庫(kù)中的數(shù)據(jù):
“`
PreparedStatement stmt = conn.prepareStatement(“UPDATE mytable SET price = ? WHERE name = ?”);
stmt.setDouble(1, 0.99);
stmt.setString(2, “apple”);
stmt.executeUpdate();
stmt.close();
“`
這里,我們使用 PreparedStatement 類(lèi)的 setXXX() 方法來(lái)設(shè)置 SQL 語(yǔ)句的參數(shù)值,并使用 executeUpdate() 方法來(lái)執(zhí)行 SQL 語(yǔ)句。這樣,我們可以更新數(shù)據(jù)庫(kù)表中的數(shù)據(jù)。
Java 數(shù)據(jù)庫(kù)工具箱是一個(gè)非常有用的 Java 庫(kù),它可以幫助開(kāi)發(fā)者輕松地操作數(shù)據(jù)庫(kù)。使用 Java 數(shù)據(jù)庫(kù)工具箱,我們可以快速連接到數(shù)據(jù)庫(kù)、讀取數(shù)據(jù)、寫(xiě)入數(shù)據(jù)和更新數(shù)據(jù)。Java 數(shù)據(jù)庫(kù)工具箱還提供了許多其他高級(jí)功能,如事務(wù)處理、數(shù)據(jù)備份和恢復(fù)等。無(wú)論是初學(xué)者還是有經(jīng)驗(yàn)的開(kāi)發(fā)者,在開(kāi)發(fā)過(guò)程中都可以受益于 Java 數(shù)據(jù)庫(kù)工具箱。
相關(guān)問(wèn)題拓展閱讀:
- java如何訪問(wèn)數(shù)據(jù)庫(kù)(java訪問(wèn)mysql數(shù)據(jù)庫(kù))
- JAVA 關(guān)于調(diào)用數(shù)據(jù)庫(kù)
- 用Java怎樣訪問(wèn)數(shù)據(jù)庫(kù),用什么代碼?
java如何訪問(wèn)數(shù)據(jù)庫(kù)(java訪問(wèn)mysql數(shù)據(jù)庫(kù))
Java可以使用JDBC訪問(wèn)數(shù)據(jù)庫(kù),也可以使用各類(lèi)ORM框架訪問(wèn)數(shù)據(jù)庫(kù),但這些框架最終還是通過(guò)JDBC訪問(wèn)數(shù)據(jù)庫(kù),它們只是封裝了數(shù)據(jù)庫(kù)操作,而使得開(kāi)發(fā)者可以減少這部分消耗。因此,本文只講解JDBC訪問(wèn)方式。
JDBC訪問(wèn)一般分為如下流程:
1、加載JDBC驅(qū)動(dòng)程序:
在連接數(shù)據(jù)庫(kù)之前,首先要加載想要連接的數(shù)據(jù)庫(kù)的驅(qū)動(dòng)到JVM(Java虛擬機(jī)),這通過(guò)java.lang.Class類(lèi)的靜態(tài)方法forName(StringclassName)實(shí)現(xiàn)。
例如:
try{
//加載MySql的驅(qū)動(dòng)類(lèi)
Class.forName(“com.mysql.jdbc.Driver”);
}catch(e){
System.out.println(“找不到驅(qū)動(dòng)程序類(lèi),加載驅(qū)動(dòng)失敗!”);
e.();
}
成功加載后,會(huì)將Driver類(lèi)的實(shí)例注冊(cè)到類(lèi)中。
2、提供JDBC連接的URL
連接URL定義了連接數(shù)據(jù)庫(kù)時(shí)的協(xié)議、子協(xié)議、數(shù)據(jù)源標(biāo)識(shí)。
書(shū)寫(xiě)形式:協(xié)議:子協(xié)議:數(shù)據(jù)源標(biāo)識(shí)
協(xié)議:在JDBC中總是以jdbc開(kāi)始
子協(xié)議:是橋連接的驅(qū)動(dòng)程序或是數(shù)據(jù)庫(kù)管理系統(tǒng)名稱(chēng)。
數(shù)據(jù)源標(biāo)識(shí):標(biāo)記找到數(shù)據(jù)庫(kù)來(lái)源的地址與連接端口。
例如:(MySql的連接URL)
jdbc:
useUnicode=true:表示使用Unicode字符集。如果設(shè)置為
gb2312或GBK,本參數(shù)必須設(shè)置為true。=gbk:字符編碼方式。
3、創(chuàng)建數(shù)據(jù)庫(kù)的連接
要連接數(shù)據(jù)庫(kù),需要向java.sql.請(qǐng)求并獲得Connection對(duì)象,該對(duì)象就代表一個(gè)數(shù)據(jù)庫(kù)的連接。
使用的(Stringurl,Stringusername,Stringpassword)方法傳入指定的欲連接的數(shù)據(jù)庫(kù)的路徑、數(shù)據(jù)庫(kù)的用戶(hù)名和密碼來(lái)獲得。
例如:
//連接MySql數(shù)據(jù)庫(kù),用戶(hù)名和密碼都是root
Stringurl=”jdbc:
Stringusername=”root”;
Stringpassword=”root”;
try{
Connectioncon=
.(url,username,password);
}catch(se){
System.out.println(“數(shù)據(jù)庫(kù)連接失??!”);
se.();
}
4、創(chuàng)建一個(gè)Statement
要執(zhí)行SQL語(yǔ)句,必須獲得java.sql.Statement實(shí)例,Statement實(shí)例分為以下3種類(lèi)型:
1、執(zhí)行靜態(tài)SQL語(yǔ)句。通常通過(guò)Statement實(shí)例實(shí)現(xiàn)。
2、執(zhí)行動(dòng)態(tài)SQL語(yǔ)句。通常通過(guò)實(shí)例實(shí)現(xiàn)。
3、執(zhí)行數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程。通常通過(guò)實(shí)例實(shí)現(xiàn)。
具體的實(shí)現(xiàn)方式:
Statementstmt=con.();
PreparedStatementpstmt=con.prepareStatement(sql);
CallableStatementcstmt=con.prepareCall(“{CALLdemoSp(?,?)}”);
5、執(zhí)行慧轎SQL語(yǔ)句
Statement接口提供了三種執(zhí)行SQL語(yǔ)句的方法:executeQuery、executeUpdate和execute
1、ResultSetexecuteQuery(StringsqlString):執(zhí)行查詢(xún)數(shù)據(jù)庫(kù)的SQL語(yǔ)句,返回一個(gè)結(jié)果集(ResultSet)對(duì)象。
2、intexecuteUpdate(StringsqlString):用于執(zhí)行INSERT、UPDATE或DELETE語(yǔ)句以及SQLDDL語(yǔ)句,如:CREATETABLE和DROPTABLE等
3、execute(sqlString):用于執(zhí)行返回多個(gè)結(jié)果集、多個(gè)更新計(jì)數(shù)或二者組合的語(yǔ)句。
具芹尺體實(shí)現(xiàn)的代碼:
ResultSetrs=stmt.executeQuery(“SELECT*FROM…”);
introws=stmt.executeUpdate(“INSERTINTO…”);
booleanflag=stmt.execute(Stringsql);
6、處理結(jié)果
兩種情況:
1、執(zhí)行更新返回的是本次操作影響到的記錄數(shù)。
2、執(zhí)行查詢(xún)返回的結(jié)果是一個(gè)ResultSet對(duì)象。
ResultSet包含符合SQL語(yǔ)句中條件的所有行,并且它通過(guò)一套get方法提嫌碧高供了對(duì)這些行中數(shù)據(jù)的訪問(wèn)。
使用結(jié)果集(ResultSet)對(duì)象的訪問(wèn)方法獲取數(shù)據(jù):
while(rs.next()){
Stringname=rs.getString(“name”);
Stringpass=rs.getString(1);//此方法比較高效(列是從左到右編號(hào)的,并且從列1開(kāi)始)
}
7、關(guān)閉JDBC對(duì)象
操作完成以后要把所有使用的JDBC對(duì)象全都關(guān)閉,以釋放JDBC資源,關(guān)閉順序和聲明順序相反:
1、關(guān)閉記錄集
2、關(guān)閉聲明
3、關(guān)閉連接對(duì)象
if(rs!=null){//關(guān)閉記錄集
try{
rs.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
if(stmt!=null){//關(guān)閉聲明
try{
stmt.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
if(conn!=null){//關(guān)閉連接對(duì)象
try{
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
JAVA 關(guān)于調(diào)用數(shù)據(jù)庫(kù)
不論你冊(cè)滑或連的什么數(shù)據(jù)庫(kù)
知識(shí)geConnect(州伍)方法里面的代讓凱碼不一樣
DbConnect
db
=
DbConnect.
getInstance
();
這是一個(gè)連接數(shù)據(jù)庫(kù)的類(lèi)(你自己寫(xiě)的),初始化
db相當(dāng)一個(gè)別名,可以點(diǎn)出(.)該類(lèi)里面的方法
Connection
conn
=
db.getConnect();
db.getConnect();這個(gè)方法
應(yīng)該是你
寫(xiě)的一個(gè)連接方法了,返回的是Connection
類(lèi)檔滲中型,所以用他接收
此時(shí)已經(jīng)連接的數(shù)據(jù)庫(kù)了。接下來(lái)你要對(duì)數(shù)據(jù)庫(kù)做什么····
String
sql=”select
*from
(select
*from
notice_hanchao
order
by
insert_time
desc)”;
一條sql查詢(xún)語(yǔ)句
PreparedStatement
ps
=
conn.prepareStatement(sql);
conn.prepareStatement(sql);數(shù)據(jù)庫(kù)對(duì)
sql語(yǔ)句
判斷和執(zhí)行,返回的是PreparedStatement
所以用他接收
ResultSet
rs
=
ps.executeQuery();
執(zhí)行sql語(yǔ)句后要接收吧,ps.executeQuery();返回一個(gè)
結(jié)果行山集
,用ResultSet
去接收
接下來(lái)你可以打印了
rs.getString(1);
rs.get類(lèi)型(1);
rs.getString(2);
rs.get類(lèi)型(2);········
不懂就去問(wèn)你們老師吧···我只能這喊枯么寫(xiě)了··希望能幫助你
DbConnect
db
=
DbConnect.getInstance();
Connection
conn
=
db.getConnect();獲得一個(gè)和拆慎數(shù)據(jù)庫(kù)交互的對(duì)象,
然后通過(guò)這個(gè)對(duì)象來(lái)獲得旅遲敬一個(gè)和數(shù)據(jù)庫(kù)進(jìn)行連接旦兄的對(duì)象
String
sql=”select
*from
(select
*from
notice_hanchao
order
by
insert_time
desc)”;
PreparedStatement
ps
=
conn.prepareStatement(sql);
提交sql
ResultSet
rs
=
ps.executeQuery();
//得到結(jié)果集
然后提交一條sql語(yǔ)句,
并獲得結(jié)果,
這條sql語(yǔ)句
用Java怎樣訪問(wèn)數(shù)據(jù)庫(kù),用什么代碼?
1. 加載一個(gè)對(duì)應(yīng)數(shù)據(jù)庫(kù)的JDBC驅(qū)動(dòng)
在建立到一個(gè)數(shù)據(jù)庫(kù)的連接之前,必須先加載這個(gè)數(shù)據(jù)庫(kù)的JDBC驅(qū)動(dòng)程序,加載之后此driver會(huì)自動(dòng)注冊(cè)到JDBC驅(qū)動(dòng)列表中。加載一個(gè)JDBC驅(qū)動(dòng)有兩種方法。
a) 在命令行方式下指定驅(qū)動(dòng)器或者用冒號(hào)分割驅(qū)動(dòng)器列表:
具體命令如下:
C:\>java –Djdbc.drivers = com.company1.Driver:com.company2.Driver youProject
b)第二種方法,在程序中調(diào)用Class.forName()方法。推薦使用。。。。
try
{
String driverName = “com.imaginary.sql.msql.MsqlDriver”;
Class.forName(driverName).newInstance();
}
Catch(ClassNotFoundException e1)
{
//catch could not find database driver exception.
}
2.連接到數(shù)據(jù)庫(kù)。
根據(jù)您后臺(tái)待連接的數(shù)據(jù)庫(kù)不同,而有小小的差別。
a)連接到Oracle數(shù)據(jù)庫(kù)。
Connection connection = null ;
try
{
//load the jdbc driver ;
String driverName = “oracle.jdbc.driver.OracleDriver”;
Class.forName(driverName).newInstance();
//create a connection to the database;
String serverName = “127.0.0.1”;
String serverPort = “1521”;
String serverID = “datebase1”
String userName = “hello”;
String userPsw = “world”;
String url = “jdbc:oracle.thin:@” + serverName + “:” + serverPort + “:” + serverID ;
Connection = DriverManager.getConnection(url , userName , userPsw);
}
catch(ClassNotFoundException e1)
{
//catch could not find database driver exception.
}
catch(SQLException e2)
{
//catch could not connect to the database exception.
}
b) 連接到一個(gè)SQL Server數(shù)據(jù)庫(kù)。
Connection connection = null ;
try
{
//load the jdbc driver ;
String driverName = “com.microsoft.jdbc.sqlserver.SQLServerDriver”;
Class.forName(driverName).newInstance();
//create a connection to the database;
String serverName = “127.0.0.1”;
String serverPort = “1433”;
String serverID = serverName + serverPort ;
String userName = “hello”;
String userPsw = “world”;
String url = “jdbc:QLConnect ://” + serverID ;
Connection = DriverManager.getConnection(url , userName , userPsw);
}
catch(ClassNotFoundException e1)
{
//catch could not find database driver exception.
}
catch(SQLException e2)
{
//catch could not connect to the database exception.
}
c) 連接到一個(gè)MySQL數(shù)據(jù)庫(kù)上。。。。
Connection connection = null ;
try
{
//load the jdbc driver ;
String driverName = “org.gjt.mm.mysql.Driver”;
Class.forName(driverName).newInstance();
//create a connection to the database;
String serverName = “127.0.0.1”;
String serverID = “database”;
String userName = “hello”;
String userPsw = “world”;
String url = “jdbc:mysql ://” + serverName + “/” + serverID ;
Connection = DriverManager.getConnection(url , userName , userPsw);
}
catch(ClassNotFoundException e1)
{
//catch could not find database driver exception.
}
catch(SQLException e2)
{
//catch could not connect to the database exception.
}
綜合上面的三種數(shù)據(jù)庫(kù)連接方式 , 其實(shí)大同小異。由于訪問(wèn)不同的數(shù)據(jù)庫(kù)和所使用的數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序不同,所以導(dǎo)致代碼表面上有小小不同,但透過(guò)表面看來(lái),內(nèi)部都是
1. 加載一個(gè)特定的數(shù)據(jù)庫(kù)JDBC驅(qū)動(dòng)。
2. 連接到一個(gè)數(shù)據(jù)庫(kù)。
3. 之后,就可以對(duì)一個(gè)特定的數(shù)據(jù)庫(kù)進(jìn)行特定的操作了。
附上各種數(shù)據(jù)庫(kù)的JDBC驅(qū)動(dòng)起可用信息網(wǎng)址:
對(duì)于Oracle數(shù)據(jù)庫(kù),請(qǐng)參考:
對(duì)于MySQL數(shù)據(jù)庫(kù),請(qǐng)參考:
對(duì)于SQL Server數(shù)據(jù)庫(kù),有很多的驅(qū)動(dòng)可選,比較常用的:
最基礎(chǔ)的可以使用JDBC,也可使用框架自帶的連接方法,如Spring的jdbcTemplate,MyBatis以及Hibernate框架
JAVA實(shí)現(xiàn)訪問(wèn)數(shù)據(jù)庫(kù)是通過(guò)JDBC技術(shù),下載相應(yīng)數(shù)據(jù)庫(kù)的java驅(qū)動(dòng)包,導(dǎo)入進(jìn)項(xiàng)目,加載驅(qū)動(dòng)類(lèi),就可以設(shè)置連接 并操作 數(shù)據(jù)庫(kù)了。
當(dāng)然還有一些ORM框架可以更加方便的 使用java來(lái)操作數(shù)據(jù)庫(kù),常用的有 Hibernate 和 Mybatis??梢约涌扉_(kāi)發(fā)人員的 開(kāi)發(fā)速度,簡(jiǎn)化一些煩瑣的工作。當(dāng)然框架底層也是 JDBC 實(shí)現(xiàn)的。因?yàn)椴煌瑪?shù)據(jù)庫(kù)一些語(yǔ)法存在一些差異,如果想換數(shù)據(jù)庫(kù) 用框架實(shí)現(xiàn)是比較方便的,只需修改配置文件無(wú)需修改代碼。
java有數(shù)據(jù)庫(kù)幫助類(lèi)嗎的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于java有數(shù)據(jù)庫(kù)幫助類(lèi)嗎,Java數(shù)據(jù)庫(kù)工具箱,幫你輕松操作數(shù)據(jù)庫(kù),java如何訪問(wèn)數(shù)據(jù)庫(kù)(java訪問(wèn)mysql數(shù)據(jù)庫(kù)),JAVA 關(guān)于調(diào)用數(shù)據(jù)庫(kù),用Java怎樣訪問(wèn)數(shù)據(jù)庫(kù),用什么代碼?的信息別忘了在本站進(jìn)行查找喔。
成都創(chuàng)新互聯(lián)建站主營(yíng):成都網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、網(wǎng)站改版的網(wǎng)站建設(shè)公司,提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、成都網(wǎng)站推廣、成都網(wǎng)站優(yōu)化seo、響應(yīng)式移動(dòng)網(wǎng)站開(kāi)發(fā)制作等網(wǎng)站服務(wù)。
文章題目:Java數(shù)據(jù)庫(kù)工具箱,幫你輕松操作數(shù)據(jù)庫(kù)(java有數(shù)據(jù)庫(kù)幫助類(lèi)嗎)
網(wǎng)站網(wǎng)址:http://www.dlmjj.cn/article/cdgdopo.html


咨詢(xún)
建站咨詢(xún)
