Halo数据库JDBC兼容部分Oracle功能简单演示
JDBC是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC 有两部分组成:JDBC API 和 JDBC Driver Interface,提供数据库建立连接、执行sql语句、处理结果。
一、HaloJDBC实现的Driver装载:Halo、Oracle
装载Halo驱动:Class.forName("com.halo.Driver");DriverManager.getConnection("jdbc:halo://IP:1921/数据库", "test", "test");以OracleURL装载Halo驱动:Class.forName("oracle.jdbc.driver.OracleDriver");DriverManager.getConnection("jdbc:oracle:thin:@IP:1921:数据库", "test", "test")
二、支持Oracle创建Function函数
create [or replace] function functionName(parameterName1 mode1 dataType1,parameterName2 mode2 dataType2,...)return returnDataTypeis/asbeginfunction_bodyreturn expressionend functionName;简单示例如下:public static void function(Connection c,Statement stmt) throws SQLException {try {c.setAutoCommit(false);stmt= c.createStatement();String query = "create or replace function test0\n " +"return varchar2\n" +"as \n" +"BEGIN\n " +"return 'YJKJ';\n" +"END;\n" +"/";stmt.executeUpdate(query);stmt.close();c.close();} catch (SQLException e) {e.printStackTrace();System.err.println(e.getClass().getName() + ": " + e.getMessage());}
二、支持OracleStruct类型简单使用
List object= new ArrayList();Object[] a = new Object[4];a[0]="a";a[1]="b";a[2]="c";a[3]="d";Object[] b = new Object[4];b[0]="e";b[1]="f";b[2]="g";b[3]="h";object.add(a);object.add(b);List strucList = new ArrayList();for(Object[] objs : ((ArrayList<Object[]>)object) ){Struct structDesc = c.createStruct("自定义类型", objs);strucList.add(structDesc);}Array inputArray = stmts.getConnection().createArrayOf("自定义Array类型", strucList.toArray());Object[] objs = (Object[])(stmts.getArray(1).getArray());Struct struct= (Struct)objs[0];Object [] objects =struct.getAttributes();objects[0].toString()
四、Halo操作Oracle的Clob类型
简单示例如下:1、直接使用getString获取Clob数据类型2、不需要获取到流,读取缓冲区读取内容,循环将字符串取出赋值StringBuffer转成String创建表create table testclob (tClob text);插入数据insert into testclob values('<xml zxcvbnmasdfghjklqwertyuiop>');public static void Clob(Connection c, Statement stmt) {try {c.setAutoCommit(false);System.out.println("连接数据库成功!");stmt = c.createStatement();ResultSet rs = stmt.executeQuery("select * from testclob");while(rs.next()){String clob = rs.getString("tClob");System.err.println(clob);break;}rs.close();stmt.close();c.close();} catch (Exception e) {e.printStackTrace();System.err.println(e.getClass().getName() + ": " + e.getMessage());System.exit(0);}System.out.println("查询数据成功!");}
end
微信号|Halo Tech