该章节分为2 部分:
使用Statement 执行SQL 语句
GBase UP 产品手册 6 应用开发指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 1075
使用PreparedStatement 执行SQL 语句
•
executeSQLByStatement方法使用Statemen执行SQL语句,
并把ResultSet
中的查询结果通过控制台打印出来。
•
executeSQLByPreparedStatement 方法使用PreparedStatement 执行SQL
语句,并把ResultSet 中的查询结果通过控制台打印出来。
示例如下:
package com.gbase.jdbc.simple;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
public class ExecuteSQLByStatement {
private static final String URL =
"jdbc:gbase://192.168.111.95:5258/test?user=sysdba&password=";
public static void main(String[] args) {
prepareTableAndData();
ExecuteSQLByStatement executeSQLByStatement = new
ExecuteSQLByStatement();
executeSQLByStatement.executeSQLByStatement();
executeSQLByStatement.executeSQLByPreparedStatement();
}
/**
* 通过Statement 执行SQL 语句,
* 并把ResultSet 中的结果通过控制台
* 打印出来。
*/
public void executeSQLByStatement() {
Connection conn = null;
Statement stm = null;
ResultSet rs = null;
ResultSetMetaData rsmd = null;
try {
Class.forName("com.gbase.jdbc.Driver");
GBase UP 产品手册 6 应用开发指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 1076
conn = DriverManager.getConnection(URL);
stm = conn.createStatement();
rs = stm.executeQuery("select * from user_info where user_id in (2,3)");
if (rs == null) {
return;
}
rsmd = rs.getMetaData();
int rsColoumnCount = rsmd.getColumnCount();
while (rs.next()) {
System.out.println("executeSQLByStatement
===========================");
for (int i = 0; i < rsColoumnCount; i++) {
System.out.print(rsmd.getColumnName(i + 1).concat(" = "));
System.out.println(rs.getObject(i + 1));
}
System.out.println("executeSQLByStatement
===========================");
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
rs.close();
} catch (NullPointerException e) {
} catch (Exception e) {
rs = null;
}
try {
stm.close();
} catch (NullPointerException e) {
} catch (Exception e) {
stm = null;
}
try {
conn.close();
} catch (NullPointerException e) {
} catch (Exception e) {
conn = null;
GBase UP 产品手册 6 应用开发指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 1077
}
}
}
/**
* 通过PreparedStatement 执行SQL 语句,
* 并把ResultSet 中的结果通过控制台
* 打印出来。
*/
public void executeSQLByPreparedStatement() {
Connection conn = null;
PreparedStatement stm = null;
ResultSet rs = null;
ResultSetMetaData rsmd = null;
try {
Class.forName("com.gbase.jdbc.Driver");
conn = DriverManager.getConnection(URL);
stm = conn.prepareStatement("select * from user_info where user_id in
(?,?)");
stm.setInt(1, 2);
stm.setInt(2, 3);
rs = stm.executeQuery();
if (rs == null) {
return;
}
rsmd = rs.getMetaData();
int rsColoumnCount = rsmd.getColumnCount();
while (rs.next()) {
System.out.println("executeSQLByPreparedStatement
===========================");
for (int i = 0; i < rsColoumnCount; i++) {
System.out.print(rsmd.getColumnName(i + 1).concat(" = "));
System.out.println(rs.getObject(i + 1));
}
System.out.println("executeSQLByPreparedStatement
===========================");
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
GBase UP 产品手册 6 应用开发指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 1078
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
rs.close();
} catch (NullPointerException e) {
} catch (Exception e) {
rs = null;
}
try {
stm.close();
} catch (NullPointerException e) {
} catch (Exception e) {
stm = null;
}
try {
conn.close();
} catch (NullPointerException e) {
} catch (Exception e) {
conn = null;
}
}
}
/**
* 在test 数据库中创建一个名称为
* “user_info”的表,包含三个字段,
* 并向表中插入三条数据。
*/
private static void prepareTableAndData() {
Connection conn = null;
Statement stm = null;
try {
Class.forName("com.gbase.jdbc.Driver");
conn = DriverManager.getConnection(URL);
stm = conn.createStatement();
/*
* create table user_info (
user_id int(11) ,
user_Name varchar(50),
user_info varchar(200)
)ENGINE=GsDB DEFAULT CHARSET=utf8
*/
GBase UP 产品手册 6 应用开发指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 1079
stm.executeUpdate("drop table if exists `user_info`");
stm.executeUpdate("create table `user_info` ( `user_id`
int(11) ,`user_Name` varchar(50),`user_info` varchar(200))ENGINE=GsDB DEFAULT
CHARSET=utf8");
stm.executeUpdate("insert into `user_info` (`user_id`,`user_name`,
`user_info`) values (1,'张三','南大通用')");
stm.executeUpdate("insert into `user_info` (`user_id`,`user_name`,
`user_info`) values (2,'张四','南大通用-gbase8a')");
stm.executeUpdate("insert into `user_info` (`user_id`,`user_name`,
`user_info`) values (3,'张五','南大通用-gbase8d')");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
stm.close();
} catch (NullPointerException e) {
} catch (Exception e) {
stm = null;
}
try {
conn.close();
} catch (NullPointerException e) {
} catch (Exception e) {
conn = null;
}
}
}
}