創(chuàng)建數(shù)據(jù)庫(kù)和表
首先,在MySQL中創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),并且使用該數(shù)據(jù)庫(kù)。然后,創(chuàng)建一個(gè)名為"usr"的表,并向表中插入4條數(shù)據(jù)。以下是創(chuàng)建表和插入數(shù)據(jù)的SQL語(yǔ)句: CREATE DATABASE test; US
首先,在MySQL中創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),并且使用該數(shù)據(jù)庫(kù)。然后,創(chuàng)建一個(gè)名為"usr"的表,并向表中插入4條數(shù)據(jù)。以下是創(chuàng)建表和插入數(shù)據(jù)的SQL語(yǔ)句:
CREATE DATABASE test;
USE test;
CREATE TABLE usr (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT,
email VARCHAR(50)
);
INSERT INTO usr (id, name, age, email) VALUES (1, 'John', 25, 'john@');
INSERT INTO usr (id, name, age, email) VALUES (2, 'Amy', 30, 'amy@');
INSERT INTO usr (id, name, age, email) VALUES (3, 'Tom', 28, 'tom@');
INSERT INTO usr (id, name, age, email) VALUES (4, 'Lisa', 35, 'lisa@');
創(chuàng)建Java工程和連接數(shù)據(jù)庫(kù)
打開(kāi)Eclipse,并創(chuàng)建一個(gè)Java工程項(xiàng)目。在src目錄下創(chuàng)建util包,在util包中創(chuàng)建類(lèi)DBConn。然后,創(chuàng)建entity包,在entity包中創(chuàng)建類(lèi)Usr。最后,創(chuàng)建dao包,在dao包中創(chuàng)建類(lèi)UsrDao。創(chuàng)建完成后的工程目錄如下:
- src
- util
-
- entity
-
- dao
-
因?yàn)槲覀兪褂肑DBC方式連接數(shù)據(jù)庫(kù),所以需要編寫(xiě)一個(gè)數(shù)據(jù)庫(kù)連接的工具類(lèi)??梢詤⒖糐ava編寫(xiě)JDBC連接MySQL數(shù)據(jù)庫(kù)的工具類(lèi)。完整的工程目錄及DBConn類(lèi)的內(nèi)容如下:
package util;
import ;
import ;
import java.sql.SQLException;
public class DBConn {
// 數(shù)據(jù)庫(kù)連接信息
private static final String URL "jdbc:mysql://localhost:3306/test";
private static final String USERNAME "root";
private static final String PASSWORD "password";
// 獲取數(shù)據(jù)庫(kù)連接對(duì)象
public static Connection getConnection() throws SQLException {
return (URL, USERNAME, PASSWORD);
}
}
接下來(lái),編寫(xiě)類(lèi)用于表示usr表的數(shù)據(jù)結(jié)構(gòu):
package entity;
import ;
public class Usr {
private int id;
private String name;
private int age;
private String email;
public Usr(int id, String name, int age, String email) {
id;
name;
age;
email;
}
// Getter and Setter methods
// ...省略部分代碼...
}
然后,編寫(xiě)類(lèi)作為數(shù)據(jù)訪問(wèn)層,用于執(zhí)行SQL查詢語(yǔ)句并將結(jié)果存放到Java變量中:
package dao;
import ;
import ;
import ;
import java.sql.SQLException;
import ;
import ;
import ;
import util.DBConn;
public class UsrDao {
// 查詢usr表所有數(shù)據(jù)
public List getAllUsrs() {
List usrs new ArrayList<>();
try (Connection conn ();
PreparedStatement pstmt ("SELECT * FROM usr");
ResultSet rs pstmt.executeQuery()) {
while (()) {
int id ("id");
String name ("name");
int age ("age");
String email ("email");
Usr usr new Usr(id, name, age, email);
(usr);
}
} catch (SQLException e) {
();
}
return usrs;
}
}
將查詢結(jié)果存放到變量中
在UsrDao類(lèi)中,我們可以看到將查詢結(jié)果存放到變量中的關(guān)鍵代碼如下:
while (()) {
int id ("id");
String name ("name");
int age ("age");
String email ("email");
Usr usr new Usr(id, name, age, email);
(usr);
}
在執(zhí)行查詢函數(shù)之后(ptst.executeQuery()),會(huì)返回一個(gè)ResultSet類(lèi)型的結(jié)果集。然后,使用ResultSet類(lèi)中的next()方法來(lái)遍歷結(jié)果集。最后,使用getString()方法可以將對(duì)應(yīng)變量的值取出來(lái)。需要注意的是,取出來(lái)的值是String類(lèi)型的,所以如果要存放到其他類(lèi)型的Java變量中,需要先進(jìn)行類(lèi)型轉(zhuǎn)換。比如在這里,id是int類(lèi)型,需要通過(guò)new Integer(("id"))的方式將String類(lèi)型的值轉(zhuǎn)換為int類(lèi)型。
運(yùn)行程序并查看結(jié)果
在的窗口上右鍵選擇"Run As",然后選擇"Java Application"運(yùn)行程序。運(yùn)行結(jié)果如下:
[Usr{id1, name'John', age25, email'john@'},
Usr{id2, name'Amy', age30, email'amy@'},
Usr{id3, name'Tom', age28, email'tom@'},
Usr{id4, name'Lisa', age35, email'lisa@'}]
通過(guò)JDBC將數(shù)據(jù)庫(kù)的數(shù)據(jù)通過(guò)SQL語(yǔ)句取出來(lái)后存放到變量中,并通過(guò)控制臺(tái)輸出成功。