3 Star 1 Fork 0

浙江智臾科技有限公司/jdbc

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
sample.txt 12.25 KB
一键复制 编辑 原始数据 按行查看 历史
import java.io.IOException;
import java.sql.*;
import java.text.MessageFormat;
import java.time.*;
import java.util.Properties;
import com.dolphindb.jdbc.JDBCStatement;
import com.xxdb.DBConnection;
import com.xxdb.data.BasicMonth;
public class doctest
{
private static final String JDBC_DRIVER = "com.dolphindb.jdbc.Driver";
// Connect to DolphinDB server
private static final String url1 = "jdbc:dolphindb://localhost:8081";
// Connect to DolphinDB Database
private static final String url2 = "jdbc:dolphindb://localhost:8081?databasePath=dfs://valuedb&partitionType=VALUE&partitionScheme=2000.01M..2019.05M";
public static Connection conn = null;
public static PreparedStatement stmt = null;
//Output in-memory table
public static void printData(ResultSet rs) throws SQLException {
ResultSetMetaData resultSetMetaData = rs.getMetaData();
int len = resultSetMetaData.getColumnCount();
while (rs.next()) {
for (int i = 1; i <= len; ++i) {
System.out.print(
MessageFormat.format("{0}: {1}, ", resultSetMetaData.getColumnName(i), rs.getObject(i)));
}
System.out.print("\n");
}
}
/*-------------------------------------------Query, add, delete and update the in-memory table-------------------------------------------*/
//1.reate a memory table and save it locally: Put all the statements into a String, and finally connect to the port by DBconnection and run
@SuppressWarnings("finally")
public static boolean CreateTable(String database,String tableName,String host, String port)
{
boolean success=false;
DBConnection db = null;
try {
String sb="bool = [1b, 0b];\n" +
"char = [97c, 'A'];\n" +
"short = [122h, 123h];\n" +
"int = [21, 22];\n" +
"long = [22l, 23l];\n" +
"float = [2.1f, 2.2f];\n" +
"double = [2.1, 2.2];\n" +
"string= [`Hello, `world];\n" +
"date = [2013.06.13, 2013.06.14];\n" +
"month = [2016.06M, 2016.07M];\n" +
"time = [13:30:10.008, 13:30:10.009];\n" +
"minute = [13:30m, 13:31m];\n" +
"second = [13:30:10, 13:30:11];\n" +
"datetime = [2012.06.13 13:30:10, 2012.06.13 13:30:10];\n" +
"timestamp = [2012.06.13 13:30:10.008, 2012.06.13 13:30:10.009];\n" +
"nanotime = [13:30:10.008007006, 13:30:10.008007007];\n" +
"nanotimestamp = [2012.06.13 13:30:10.008007006, 2012.06.13 13:30:10.008007007];\n" +
"tb1= table(bool,char,short,int,long,float,double,string,date,month,time,minute,second,datetime,timestamp,nanotime,nanotimestamp);\n" +
"db=database(\""+database+"\")\n" +
"saveTable(db, tb1, "+tableName+");\n";
db = new DBConnection();
db.connect(host, Integer.parseInt(port));
db.run(sb);
success=true;
} catch (Exception e) {
e.printStackTrace();
success=false;
} finally {
if (db != null)
db.close();
return success;
}
}
//2.Insert records into an in-memory table
public static void InMemmoryAddTest(Properties info, String database, String tableName)
{
try {
Class.forName(JDBC_DRIVER);
conn = DriverManager.getConnection(url1,info);
JDBCStatement stm = (JDBCStatement)conn.createStatement();
stm.execute("memTable = loadTable('" + database + "','" + tableName + "')");
//SQL insert statement
stmt = conn.prepareStatement("insert into memTable values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
stmt.setBoolean(1,true);
stmt.setByte(2,(byte)98);
stmt.setShort(3,(short)112);
stmt.setInt(4,21);
stmt.setLong(5,22l);
stmt.setFloat(6,2.1f);
stmt.setDouble(7,2.1);
stmt.setString(8,"hello");
stmt.setDate(9, Date.valueOf(LocalDate.of(2013,06,13)));
stmt.setObject(10, YearMonth.of(2016,06));
stmt.setObject(11, Time.valueOf("13:30:10"));
stmt.setObject(12, LocalTime.of(13,30));
stmt.setObject(13,LocalTime.of(13,30,10));
stmt.setObject(14,LocalDateTime.of(2012,06,13,13,30,10));
stmt.setObject(15,LocalDateTime.of(2012,06,13,13,30,10,8000000));
stmt.setObject(16,LocalTime.of(13,30,10,8007006));
stmt.setObject(17,LocalDateTime.of(2012,06,13,13,30,10,8007006));
stmt.executeUpdate();
//Query the in-memory table
ResultSet rs = stmt.executeQuery("select * from memTable");
printData(rs);
} catch (Exception e) {
e.printStackTrace();
}
finally {
try {
// Release
if (stmt != null)
stmt.close();
} catch (SQLException se2) {
}
try {
// Release
if (conn != null)
conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
}
//3.Delete records from the in-memory table
public static void InMemoryDeleteTest(Properties info, String database, String tableName)
{
try {
Class.forName(JDBC_DRIVER);
conn = DriverManager.getConnection(url1);
JDBCStatement stm = (JDBCStatement)conn.createStatement();
stm.execute("memTable = loadTable('" + database + "','" + tableName + "')");
//SQL delete语句
stmt = conn.prepareStatement("delete from memTable where char = ?");
stmt.setByte(1, (byte)'A');
stmt.executeUpdate();
// Check if the records have been deleted
ResultSet rs = stmt.executeQuery("select * from memTable");
System.out.println("==========InMemoryDeleteTest======================");
printData(rs);
} catch (Exception e) {
e.printStackTrace();
} finally {
//释放
try {
if (stmt != null)
stmt.close();
} catch (SQLException se2) {
}
//释放
try {
if (conn != null)
conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
}
//4.Update an in-memory table
public static void InMemoryUpdateTest(Properties info, String database, String tableName)
{
try {
Class.forName(JDBC_DRIVER);
conn = DriverManager.getConnection(url1);
JDBCStatement stm = (JDBCStatement)conn.createStatement();
stm.execute("memTable = loadTable('" + database + "','" + tableName + "')");
//SQL update statement
stmt = conn.prepareStatement("update memTable set bool = 0b where char = 97c");
stmt.executeUpdate();
// Check if the updates have been made
ResultSet rs = stmt.executeQuery("select * from memTable where char=97c");
System.out.println("==========InMemoryUpdateTest======================");
printData(rs);
} catch (Exception e) {
e.printStackTrace();
} finally {
// Release
try {
if (stmt != null)
stmt.close();
} catch (SQLException se2) {
}
// Rlease
try {
if (conn != null)
conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
}
/*-------------------------------------------Query and insert on a partitioned table-------------------------------------------*/
//1. Create a partitioned table
@SuppressWarnings("finally")
public static boolean CreateValueTable(String database, String tableName, String host, String port)
{
boolean success=false;
DBConnection db = null;
StringBuilder sb = new StringBuilder();
sb.append("login(\"admin\",\"123456\")\n");
sb.append("n=3000\n");
sb.append("month=take(2000.01M..2019.05M, n)\n");
sb.append("x=take(1..1000, n)\n");
sb.append("t=table(month, x)\n");
sb.append("if(existsDatabase(\""+database+"\"))\n" +
" dropDatabase(\""+database+"\")\n");
sb.append("db=database(\""+database+"\", VALUE, 2000.01M..2019.05M)\n");
sb.append("pt = db.createPartitionedTable(t, `"+tableName+", `month)\n");
sb.append("pt.append!(t)\n");
db = new DBConnection();
try {
db.connect(host, Integer.parseInt(port));
db.run(sb.toString());
success=true;
} catch (NumberFormatException | IOException e) {
e.printStackTrace();
success=false;
}finally {
if (db != null)
db.close();
return success;
}
}
//2.Add records
public static void DFSAddTest(Properties info, String database, String tableName)
{
try {
Class.forName(JDBC_DRIVER);
// load table
conn = DriverManager.getConnection(url2,info);
JDBCStatement stm = (JDBCStatement)conn.createStatement();
stm.execute("dfsTable = loadTable('" + database + "','" + tableName + "')");
//SQL insert statement
stmt = conn.prepareStatement("insert into dfsTable values(?,?)");
stmt.setObject(1, new BasicMonth(YearMonth.of(2016,06)));
stmt.setInt(2,3);
stmt.executeUpdate();
// Query the table to check if the record have been added.
ResultSet rs = stmt.executeQuery("select count(*) from loadTable(\""+database+"\", `"+tableName+")");
printData(rs);
} catch (Exception e) {
e.printStackTrace();
} finally {
// Release
try {
if (stmt != null)
stmt.close();
} catch (SQLException se2) {
}
// Release
try {
if (conn != null)
conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
}
public static void main(String[] args)
{
String HOST="localhost";// Server address that has been configured and successfully started
String PORT="8081";// Port number
Properties info = new Properties(); // Login info
info.put("user", "admin");// Username
info.put("password", "123456");// Password(default admin password)
/*-------------------------------------------Operations on in-memory table-------------------------------------------*/
String in_memory_database="H://DolphinDBStreamWin/jdbc";// Local database path
String in_memory_tableName="t1";// Table name
//1.Create
boolean success=CreateTable(in_memory_database, "`"+in_memory_tableName, HOST, PORT);
if(success==true)
System.out.println("\n---------------Successfully create table "+in_memory_tableName+"!---------------\n");
//2.Insert
InMemmoryAddTest(info, in_memory_database, in_memory_tableName);
//3. Delete
InMemoryDeleteTest(info, in_memory_database, in_memory_tableName);
// //4.Update
InMemoryUpdateTest(info, in_memory_database, in_memory_tableName);
// /*-------------------------------------------Operations on partitioned table-------------------------------------------*/
String dfs_database="dfs://valuedb";//dfs database path
String dfs_tableName="pt";// Table name
//1.Create
success=CreateValueTable(dfs_database, dfs_tableName, HOST, PORT);
if(success==true)
System.out.println("\n---------------Successfully create table "+dfs_tableName+"!---------------\n");
//2.Insert
DFSAddTest(info, dfs_database,dfs_tableName);
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/dolphindb/jdbc.git
[email protected]:dolphindb/jdbc.git
dolphindb
jdbc
jdbc
master

搜索帮助