如何使用Java操作QuestDB
要使用Java操作QuestDB,需要添加以下Maven依赖项:
<dependency>
<groupId>org.questdb</groupId>
<artifactId>questdb</artifactId>
<version>5.0.1</version>
</dependency>
<dependency>
<groupId>org.questdb</groupId>
<artifactId>questdb-jdbc</artifactId>
<version>5.0.1</version>
</dependency>
以下是Java实现QuestDB中的数据增删改查样例代码:
1. 连接到QuestDB:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class QuestDBExample {
public static void main(String[] args) {
Connection connection = null;
try {
// 连接数据库,需要提供QuestDB的URL、用户名和密码
connection = DriverManager.getConnection("jdbc:questdb:http://localhost:9000/", "admin", "quest");
// 在这里执行查询、插入、更新或删除操作
// ...
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭数据库连接
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
2. 创建表格并插入数据:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class CreateTableExample {
public static void main(String[] args) {
Connection connection = null;
try {
connection = DriverManager.getConnection("jdbc:questdb:http://localhost:9000/", "admin", "quest");
Statement statement = connection.createStatement();
// 创建表格
String createTableSQL = "CREATE TABLE quotes (timestamp TIMESTAMP, symbol SYMBOL, price DOUBLE)";
statement.execute(createTableSQL);
// 插入数据
String insertDataSQL = "INSERT INTO quotes VALUES (NOW(), 'AAPL', 135.25)";
statement.execute(insertDataSQL);
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
3. 查询数据:
import java.sql.*;
public class QueryDataExample {
public static void main(String[] args) {
Connection connection = null;
try {
connection = DriverManager.getConnection("jdbc:questdb:http://localhost:9000/", "admin", "quest");
Statement statement = connection.createStatement();
// 查询数据
String querySQL = "SELECT * FROM quotes";
ResultSet resultSet = statement.executeQuery(querySQL);
// 处理查询结果
while (resultSet.next()) {
Timestamp timestamp = resultSet.getTimestamp("timestamp");
String symbol = resultSet.getString("symbol");
double price = resultSet.getDouble("price");
System.out.println(timestamp + "," + symbol + "," + price);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
4. 更新数据:
import java.sql.*;
public class UpdateDataExample {
public static void main(String[] args) {
Connection connection = null;
try {
connection = DriverManager.getConnection("jdbc:questdb:http://localhost:9000/", "admin", "quest");
Statement statement = connection.createStatement();
// 更新数据
String updateSQL = "UPDATE quotes SET price = 140.50 WHERE symbol = 'AAPL'";
int rowsAffected = statement.executeUpdate(updateSQL);
System.out.println("Rows affected: " + rowsAffected);
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
5. 删除数据:
import java.sql.*;
public class DeleteDataExample {
public static void main(String[] args) {
Connection connection = null;
try {
connection = DriverManager.getConnection("jdbc:questdb:http://localhost:9000/", "admin", "quest");
Statement statement = connection.createStatement();
// 删除数据
String deleteSQL = "DELETE FROM quotes WHERE symbol = 'AAPL'";
int rowsAffected = statement.executeUpdate(deleteSQL);
System.out.println("Rows affected: " + rowsAffected);
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
这些示例代码演示了使用Java操作QuestDB的基本操作,你可以根据需要修改和扩展这些代码。