8
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi đã kết nối với cơ sở dữ liệu MySQL, chứa bốn trường [lần đầu tiên là ID, các trường sau có chứa chuỗi varchar].
Tôi đang cố gắng để có được hàng cuối cùng của cơ sở dữ liệu và truy xuất nội dung của các trường để tôi có thể đặt chúng thành các biến [INT và ba chuỗi] và sử dụng chúng sau.
Cho đến nay, tôi có mức tối thiểu để thực hiện kết nối, tôi phải đi đâu từ đây? Như bạn có thể thấy, tôi đã cố gắng viết một câu lệnh SQL để có được hàng cuối cùng nhưng tất cả đã sai từ đó và tôi không biết cách chia nó thành các trường riêng biệt.
Class.forName["com.mysql.jdbc.Driver"].newInstance[];
Connection con = DriverManager.getConnection["jdbc:mysql://localhost/t", "", ""];
Statement st = con.createStatement[];
String sql = ["SELECT * FROM posts ORDER BY id DESC LIMIT 1;"];
st.getResultSet[].getRow[];
con.close[];
Hỏi ngày 20 tháng 8 năm 2012 lúc 16:18Aug 20, 2012 at 16:18
Bạn đi đây:
Class.forName["com.mysql.jdbc.Driver"].newInstance[];
Connection con = DriverManager.getConnection["jdbc:mysql://localhost/t", "", ""];
Statement st = con.createStatement[];
String sql = ["SELECT * FROM posts ORDER BY id DESC LIMIT 1;"];
ResultSet rs = st.executeQuery[sql];
if[rs.next[]] {
int id = rs.getInt["first_column_name"];
String str1 = rs.getString["second_column_name"];
}
con.close[];
Trong rs.getInt
hoặc
Class.forName["com.mysql.jdbc.Driver"].newInstance[];
Connection con = DriverManager.getConnection["jdbc:mysql://localhost/t", "", ""];
Statement st = con.createStatement[];
String sql = ["SELECT * FROM posts ORDER BY id DESC LIMIT 1;"];
ResultSet rs = st.executeQuery[sql];
if[rs.next[]] {
int id = rs.getInt["first_column_name"];
String str1 = rs.getString["second_column_name"];
}
con.close[];
0, bạn có thể vượt qua Class.forName["com.mysql.jdbc.Driver"].newInstance[];
Connection con = DriverManager.getConnection["jdbc:mysql://localhost/t", "", ""];
Statement st = con.createStatement[];
String sql = ["SELECT * FROM posts ORDER BY id DESC LIMIT 1;"];
ResultSet rs = st.executeQuery[sql];
if[rs.next[]] {
int id = rs.getInt["first_column_name"];
String str1 = rs.getString["second_column_name"];
}
con.close[];
1 bắt đầu từ Class.forName["com.mysql.jdbc.Driver"].newInstance[];
Connection con = DriverManager.getConnection["jdbc:mysql://localhost/t", "", ""];
Statement st = con.createStatement[];
String sql = ["SELECT * FROM posts ORDER BY id DESC LIMIT 1;"];
ResultSet rs = st.executeQuery[sql];
if[rs.next[]] {
int id = rs.getInt["first_column_name"];
String str1 = rs.getString["second_column_name"];
}
con.close[];
2, nhưng tôi thích vượt qua Class.forName["com.mysql.jdbc.Driver"].newInstance[];
Connection con = DriverManager.getConnection["jdbc:mysql://localhost/t", "", ""];
Statement st = con.createStatement[];
String sql = ["SELECT * FROM posts ORDER BY id DESC LIMIT 1;"];
ResultSet rs = st.executeQuery[sql];
if[rs.next[]] {
int id = rs.getInt["first_column_name"];
String str1 = rs.getString["second_column_name"];
}
con.close[];
3 vì nó có nhiều thông tin hơn vì bạn không phải xem cơ sở dữ liệu Class.forName["com.mysql.jdbc.Driver"].newInstance[];
Connection con = DriverManager.getConnection["jdbc:mysql://localhost/t", "", ""];
Statement st = con.createStatement[];
String sql = ["SELECT * FROM posts ORDER BY id DESC LIMIT 1;"];
ResultSet rs = st.executeQuery[sql];
if[rs.next[]] {
int id = rs.getInt["first_column_name"];
String str1 = rs.getString["second_column_name"];
}
con.close[];
4 mà Class.forName["com.mysql.jdbc.Driver"].newInstance[];
Connection con = DriverManager.getConnection["jdbc:mysql://localhost/t", "", ""];
Statement st = con.createStatement[];
String sql = ["SELECT * FROM posts ORDER BY id DESC LIMIT 1;"];
ResultSet rs = st.executeQuery[sql];
if[rs.next[]] {
int id = rs.getInt["first_column_name"];
String str1 = rs.getString["second_column_name"];
}
con.close[];
5 là những gì Class.forName["com.mysql.jdbc.Driver"].newInstance[];
Connection con = DriverManager.getConnection["jdbc:mysql://localhost/t", "", ""];
Statement st = con.createStatement[];
String sql = ["SELECT * FROM posts ORDER BY id DESC LIMIT 1;"];
ResultSet rs = st.executeQuery[sql];
if[rs.next[]] {
int id = rs.getInt["first_column_name"];
String str1 = rs.getString["second_column_name"];
}
con.close[];
6.Cập nhật:
7 Class.forName["com.mysql.jdbc.Driver"].newInstance[];
Connection con = DriverManager.getConnection["jdbc:mysql://localhost/t", "", ""];
Statement st = con.createStatement[];
String sql = ["SELECT * FROM posts ORDER BY id DESC LIMIT 1;"];
ResultSet rs = st.executeQuery[sql];
if[rs.next[]] {
int id = rs.getInt["first_column_name"];
String str1 = rs.getString["second_column_name"];
}
con.close[];
Class.forName["com.mysql.jdbc.Driver"].newInstance[];
Connection con = DriverManager.getConnection["jdbc:mysql://localhost/t", "", ""];
Statement st = con.createStatement[];
String sql = ["SELECT * FROM posts ORDER BY id DESC LIMIT 1;"];
ResultSet rs = st.executeQuery[sql];
if[rs.next[]] {
int id = rs.getInt["first_column_name"];
String str1 = rs.getString["second_column_name"];
}
con.close[];
7boolean next [] ném SQlexception
Di chuyển con trỏ Froward một hàng từ vị trí hiện tại của nó. Một con trỏ kết quả ban đầu được định vị trước hàng đầu tiên; Cuộc gọi đầu tiên đến phương thức tiếp theo làm cho hàng đầu tiên trở thành hàng hiện tại; Cuộc gọi thứ hai làm cho hàng thứ hai trở thành hàng hiện tại, v.v.
Khi một cuộc gọi đến phương thức tiếp theo trả về sai, con trỏ sẽ được định vị sau hàng cuối cùng. Bất kỳ lời cầu khẩn của một phương thức kết quả đòi hỏi một hàng hiện tại sẽ dẫn đến việc SQlexcepce bị ném. Nếu loại tập kết quả là type_forward_only, thì nhà cung cấp được chỉ định xem việc triển khai trình điều khiển JDBC của họ sẽ trả về sai hoặc ném SQlexception vào cuộc gọi tiếp theo tiếp theo.
Nếu một luồng đầu vào được mở cho hàng hiện tại, một cuộc gọi đến phương thức tiếp theo sẽ ngầm đóng nó. Chuỗi cảnh báo của đối tượng kết quả được xóa khi đọc một hàng mới.
Trả về: Đúng nếu hàng hiện tại mới là hợp lệ; Sai Nếu không có thêm hàng ném: SQLEXception - Nếu xảy ra lỗi truy cập cơ sở dữ liệu hoặc phương thức này được gọi trên tập kết quả đóng
tài liệu tham khảo
Dror Cohen
6.5215 huy hiệu vàng28 Huy hiệu bạc31 Huy hiệu đồng5 gold badges28 silver badges31 bronze badges
Đã trả lời ngày 20 tháng 8 năm 2012 lúc 16:36Aug 20, 2012 at 16:36
Một cái gì đó như thế này sẽ làm:
public static void main[String[] args] {
Connection con = null;
Statement st = null;
ResultSet rs = null;
String url = "jdbc:mysql://localhost/t";
String user = "";
String password = "";
try {
Class.forName["com.mysql.jdbc.Driver"];
con = DriverManager.getConnection[url, user, password];
st = con.createStatement[];
rs = st.executeQuery["SELECT * FROM posts ORDER BY id DESC LIMIT 1;"];
if [rs.next[]] {//get first result
System.out.println[rs.getString[1]];//coloumn 1
}
} catch [SQLException ex] {
Logger lgr = Logger.getLogger[Version.class.getName[]];
lgr.log[Level.SEVERE, ex.getMessage[], ex];
} finally {
try {
if [rs != null] {
rs.close[];
}
if [st != null] {
st.close[];
}
if [con != null] {
con.close[];
}
} catch [SQLException ex] {
Logger lgr = Logger.getLogger[Version.class.getName[]];
lgr.log[Level.WARNING, ex.getMessage[], ex];
}
}
}
Bạn có thể lặp lại kết quả với
Class.forName["com.mysql.jdbc.Driver"].newInstance[];
Connection con = DriverManager.getConnection["jdbc:mysql://localhost/t", "", ""];
Statement st = con.createStatement[];
String sql = ["SELECT * FROM posts ORDER BY id DESC LIMIT 1;"];
ResultSet rs = st.executeQuery[sql];
if[rs.next[]] {
int id = rs.getInt["first_column_name"];
String str1 = rs.getString["second_column_name"];
}
con.close[];
8 như thế này:while[rs.next[]]
{
System.out.println[rs.getString["Colomn_Name"]];//or getString[1] for coloumn 1 etc
}
Có rất nhiều hướng dẫn tuyệt vời khác ngoài kia như thế này để liệt kê một số:
- //www.vogella.com/articles/MySQLJava/article.html
- //www.java-samples.com/showtutorial.php?tutorialid=9
Đối với việc bạn sử dụng
Class.forName["com.mysql.jdbc.Driver"].newInstance[];
Connection con = DriverManager.getConnection["jdbc:mysql://localhost/t", "", ""];
Statement st = con.createStatement[];
String sql = ["SELECT * FROM posts ORDER BY id DESC LIMIT 1;"];
ResultSet rs = st.executeQuery[sql];
if[rs.next[]] {
int id = rs.getInt["first_column_name"];
String str1 = rs.getString["second_column_name"];
}
con.close[];
9, hãy xem JDBC Connection- class.forname vs class.forname []. NewInstance? trong đó cho thấy cách bạn có thể sử dụng public static void main[String[] args] {
Connection con = null;
Statement st = null;
ResultSet rs = null;
String url = "jdbc:mysql://localhost/t";
String user = "";
String password = "";
try {
Class.forName["com.mysql.jdbc.Driver"];
con = DriverManager.getConnection[url, user, password];
st = con.createStatement[];
rs = st.executeQuery["SELECT * FROM posts ORDER BY id DESC LIMIT 1;"];
if [rs.next[]] {//get first result
System.out.println[rs.getString[1]];//coloumn 1
}
} catch [SQLException ex] {
Logger lgr = Logger.getLogger[Version.class.getName[]];
lgr.log[Level.SEVERE, ex.getMessage[], ex];
} finally {
try {
if [rs != null] {
rs.close[];
}
if [st != null] {
st.close[];
}
if [con != null] {
con.close[];
}
} catch [SQLException ex] {
Logger lgr = Logger.getLogger[Version.class.getName[]];
lgr.log[Level.WARNING, ex.getMessage[], ex];
}
}
}
0 vì không cần thiết để tự bắt đầuReferences:
- //zetcode.com/databases/mysqljavatutorial/
Đã trả lời ngày 20 tháng 8 năm 2012 lúc 16:21Aug 20, 2012 at 16:21
David Kroudampdavid KroudampDavid Kroukamp
359K13 Huy hiệu vàng78 Huy hiệu bạc134 Huy hiệu đồng13 gold badges78 silver badges134 bronze badges
Điều này sẽ hoạt động, tôi nghĩ ...
ResultSet results = st.executeQuery[sql];
if[results.next[]] { //there is a row
int id = results.getInt[1]; //ID if its 1st column
String str1 = results.getString[2];
...
}
Đã trả lời ngày 20 tháng 8 năm 2012 lúc 16:26Aug 20, 2012 at 16:26
nullpotentnullpotentnullpotent
9.1241 Huy hiệu vàng 30 Huy hiệu bạc42 Huy hiệu Đồng1 gold badge30 silver badges42 bronze badges
3
Phương thức Java dễ dàng để lấy dữ liệu từ bảng MySQL:
/*
* CREDIT : WWW.CODENIRVANA.IN
*/
String Data[String query]{
String get=null;
try{
Class.forName["com.mysql.jdbc.Driver"].newInstance[];
Connection con = [Connection]DriverManager.getConnection
["jdbc:mysql://localhost:3306/mysql","root","password"];
Statement stmt = [Statement] con.createStatement[];
ResultSet rs=stmt.executeQuery[query];
if [rs.next[]]
{
get = rs.getString[""];
}
}
catch[Exception e]{
JOptionPane.showMessageDialog [this, e.getMessage[]];
}
return get;
}
Đã trả lời ngày 18 tháng 10 năm 2013 lúc 16:53Oct 18, 2013 at 16:53
Đây là những gì tôi vừa làm ngay bây giờ:
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import com.sun.javafx.runtime.VersionInfo;
public class ConnectToMySql {
public static ConnectBean dataBean = new ConnectBean[];
public static void main[String args[]] {
getData[];
}
public static void getData [] {
try {
Class.forName["com.mysql.jdbc.Driver"];
Connection con = DriverManager.getConnection["jdbc:mysql://localhost:3306/mynewpage",
"root", "root"];
// here mynewpage is database name, root is username and password
Statement stmt = con.createStatement[];
System.out.println["stmt " + stmt];
ResultSet rs = stmt.executeQuery["select * from carsData"];
System.out.println["rs " + rs];
int count = 1;
while [rs.next[]] {
String vehicleType = rs.getString["VHCL_TYPE"];
System.out.println[count +": " + vehicleType];
count++;
}
con.close[];
} catch [Exception e] {
Logger lgr = Logger.getLogger[VersionInfo.class.getName[]];
lgr.log[Level.SEVERE, e.getMessage[], e];
System.out.println[e.getMessage[]];
}
}
}
Mã trên sẽ giúp bạn có cột đầu tiên của bảng bạn có.
Đây là bảng mà bạn có thể cần tạo trong cơ sở dữ liệu MySQL của mình
CREATE TABLE
carsData
[
VHCL_TYPE CHARACTER[10] NOT NULL,
];
Đã trả lời ngày 25 tháng 11 năm 2020 lúc 6:54Nov 25, 2020 at 6:54
Đầu tiên, tải xuống tệp JAR kết nối MySQL, đây là tệp JAR mới nhất cho đến ngày hôm nay [MySQL-ConneNector-Java-8.0.21].
Thêm tệp jar vào không gian làm việc của bạn [đường dẫn xây dựng].
Sau đó, tạo một đối tượng kết nối mới từ lớp trình điều khiển, do đó bạn có thể sử dụng đối tượng kết nối này để thực thi các truy vấn.
Xác định tên cơ sở dữ liệu, tên người dùng và mật khẩu cho kết nối của bạn.
Sử dụng kết quả để lấy dữ liệu dựa trên một tên cột từ bảng cơ sở dữ liệu của bạn.
Mã mẫu ở đây:
public class JdbcMySQLExample{
public static void main[String[] args] {
String url = "jdbc:mysql://localhost:3306/YOUR_DB_NAME?useSSL=false";
String user = "root";
String password = "root";
String query = "SELECT * from YOUR_TABLE_NAME";
try [Connection con = DriverManager.getConnection[url, user, password];
Statement st = con.createStatement[];
ResultSet rs = st.executeQuery[query]] {
if [rs.next[]] {
System.out.println[rs.getString[1]];
}
} catch [SQLException ex] {
System.out.println[ex];
}
}
Đã trả lời ngày 25 tháng 11 năm 2020 lúc 7:10Nov 25, 2020 at 7:10