本文目錄一覽:
- 1、如何用java創建mysql資料庫
- 2、怎麼用java實現mysql的複製資料庫里所有的表跟數據
- 3、如何用java 5分鐘實現一個最簡單的mysql代理伺服器
- 4、如何用java實現mysql資料庫的導入導出
如何用java創建mysql資料庫
JDBC連接資料庫
•創建一個以JDBC連接資料庫的程序,包含7個步驟:
1、載入JDBC驅動程序:
在連接資料庫之前,首先要載入想要連接的資料庫的驅動到JVM(Java虛擬機),
這通過java.lang.Class類的靜態方法forName(String className)實現。
例如:
try{
//載入MySql的驅動類
Class.forName(“com.mysql.jdbc.Driver”) ;
}catch(ClassNotFoundException e){
System.out.println(“找不到驅動程序類 ,載入驅動失敗!”);
e.printStackTrace() ;
}
成功載入後,會將Driver類的實例註冊到DriverManager類中。
2、提供JDBC連接的URL
•連接URL定義了連接資料庫時的協議、子協議、數據源標識。
•書寫形式:協議:子協議:數據源標識
協議:在JDBC中總是以jdbc開始
子協議:是橋連接的驅動程序或是資料庫管理系統名稱。
數據源標識:標記找到資料庫來源的地址與連接埠。
例如:(MySql的連接URL)
jdbc:mysql:
//localhost:3306/test?useUnicode=truecharacterEncoding=gbk ;
useUnicode=true:表示使用Unicode字符集。如果characterEncoding設置為
gb2312或GBK,本參數必須設置為true 。characterEncoding=gbk:字元編碼方式。
3、創建資料庫的連接
•要連接資料庫,需要向java.sql.DriverManager請求並獲得Connection對象,
該對象就代表一個資料庫的連接。
•使用DriverManager的getConnectin(String url , String username ,
String password )方法傳入指定的欲連接的資料庫的路徑、資料庫的用戶名和
密碼來獲得。
例如:
//連接MySql資料庫,用戶名和密碼都是root
String url = “jdbc:mysql://localhost:3306/test” ;
String username = “root” ;
String password = “root” ;
try{
Connection con =
DriverManager.getConnection(url , username , password ) ;
}catch(SQLException se){
System.out.println(“資料庫連接失敗!”);
se.printStackTrace() ;
}
4、創建一個Statement
•要執行SQL語句,必須獲得java.sql.Statement實例,Statement實例分為以下3
種類型:
1、執行靜態SQL語句。通常通過Statement實例實現。
2、執行動態SQL語句。通常通過PreparedStatement實例實現。
3、執行資料庫存儲過程。通常通過CallableStatement實例實現。
具體的實現方式:
Statement stmt = con.createStatement() ;
PreparedStatement pstmt = con.prepareStatement(sql) ;
CallableStatement cstmt =
con.prepareCall(“{CALL demoSp(? , ?)}”) ;
怎麼用java實現mysql的複製資料庫里所有的表跟數據
樓主要考慮的不僅僅是標題的需求。
1、複製資料庫里所有的表和數據的目的是什麼。
a、假設樓主是要做資料庫備份的話,且通過程序來做的話,可以使用程序來執行dos命令
如java:Runtime.getRuntime().exec(“e:\\MySQL\\bin\\mysqldump -h localhost -uroot -p123 db_name”)
b、假設樓主是要做庫與庫之間的同步的話,可以使用第三方客戶端進行,比如navicat,sqlyong等
c、假設樓主是要做庫與庫之間的同步且用程序進行的話,可以使用mysql中提供操作資料庫的api來做相對應的讀取工作和對比工作,然後寫入工作
如何用java 5分鐘實現一個最簡單的mysql代理伺服器
如何用java 5分鐘實現一個最簡單的mysql代理伺服器
首先,準備開發工具套件,我們並不會引入過多工具包,僅僅需要:
java8
vert.x 3
如果你是用maven做為項目管理工具,請將vert.x 3引入:
1
2
3
4
5
dependency
groupIdio.vertx/groupId
artifactIdvertx-core/artifactId
version3.3.2/version
/dependency
代碼實現:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package
com.maxleap.mysqlproxy;
import
io.vertx.core.AbstractVerticle;
import
io.vertx.core.Vertx;
import
io.vertx.core.logging.Logger;
import
io.vertx.core.logging.LoggerFactory;
import
io.vertx.core.net.NetClient;
import
io.vertx.core.net.NetServer;
import
io.vertx.core.net.NetSocket;
/**
*
@author sneaky
*
@since 1.0.0
*/
public
class
MysqlProxyServer
{
private
static
final
Logger
logger
=
LoggerFactory.getLogger(MysqlProxyServer.class);
public
static
void
main(String[]
args)
{
Vertx.vertx().deployVerticle(new
MysqlProxyServerVerticle());
}
public
static
class
MysqlProxyServerVerticle
extends
AbstractVerticle
{
private
final
int
port
=
3306;
private
final
String
mysqlHost
=
“10.10.0.6”;
@Override
public
void
start()
throws
Exception
{
NetServer
netServer
=
vertx.createNetServer();//創建代理伺服器
NetClient
netClient
=
vertx.createNetClient();//創建連接mysql客戶端
netServer.connectHandler(socket
–
netClient.connect(port,
mysqlHost,
result
–
{
//響應來自客戶端的連接請求,成功之後,在建立一個與目標mysql伺服器的連接
if
(result.succeeded())
{
//與目標mysql伺服器成功連接連接之後,創造一個MysqlProxyConnection對象,並執行代理方法
new
MysqlProxyConnection(socket,
result.result()).proxy();
如何用java實現mysql資料庫的導入導出
MySql導出資料庫的命令如下:
Sql代碼
mysqldump -uusername -ppassword -hhost -Pport exportDatabaseName exportPath
mysqldump -uusername -ppassword -hhost -Pport exportDatabaseName exportPath
利用Java調用命令窗口執行命令來進行MySql導入資料庫一般分三步走:
第一步:登錄Mysql資料庫,在登錄資料庫的時候也可以指定登錄到哪個資料庫,如果指定了則可以跳過第二步;
第二步:切換資料庫到需要導入的目標資料庫
第三步:利用命令開始導入
在進行導出的時候,需要注意命令語句的運行環境,如果已經將mysql安裝路徑下的bin加入到
系統的path變數中,那麼在導出的時候可以直接使用命令語句,否則,就需要在執行命令語句的
時候加上命令所在位置的路徑,即mysql安裝路徑想的bin下的mysqldump命令。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/291063.html