- Resumen JDBC (plantilla, ensayo en ocho partes):
try{
a.导入驱动包、加载具体驱动类Class.forName("具体驱动类");
b.与数据库建立连接connection = DriverManager.getConnection(...);
c.通过connection,获取操作数据库的对象(Statement\preparedStatement\callablestatement)
stmt = connection.createStatement();
d.(查询)处理结果集rs = pstmt.executeQuery()
while(rs.next()){ rs.getXxx(..) ;}
}catch(ClassNotFoundException e )
{ ...}
catch(SQLException e)
{...
}
catch(Exception e)
{...
}
finally
{
//打开顺序,与关闭顺序相反
if(rs!=null)rs.close()
if(stmt!=null) stmt.close();
if(connection!=null)connection.close();
}
- JDBC, además de Class.forName () lanza ClassNotFoundException, SQLException volcado toda método restante
- CallableStatement: llamar a un procedimiento almacenado, una función de almacenar
Connection.prepareCall (parámetro: procedimiento almacenado o nombre de función se almacena)
formato de parámetro:
procedimiento almacenado (sin valor de retorno de retorno, Parámetros que se utilizan en su lugar):
{Llamada nombre del procedimiento almacenado (lista de parámetros)}
almacenado funciones (valores de retorno regreso):
{= almacenamiento de llamadas nombre de la función (lista de parámetros)}?
create or replace procedure addTwoNum ( num1 in number,num2 in number,result out number ) -- 1 + 2 ->3
as
begin
result := num1+num2 ;
end ;
/
Si accede a la base de datos a través de sqlplus sólo tiene que abrir: OracleServiceSID
por otros programas con los datos de acceso (sqldevelop, navicate, JDBC), necesidad de abrir: OracleServiceSID, XxxListener
JDBC pasos llamar a un procedimiento almacenado:
- Objeto (CallableStatement) de generación de llamada a un procedimiento almacenado cstmt = Connection.prepareCall ( "...");
- Por setXXX () parámetro de salida de proceso valora cstmt.setInt (1, 30);
- (...) procesado de salida de tipo de parámetro por registerOutParameter
- cstmt.execute () ejecución
- Recepción de un valor de salida (valor de retorno) getXXX ()
Tune funciones de almacenamiento:
create or replace function addTwoNumfunction ( num1 in number,num2 in number) -- 1 + 2
return number
as
result number ;
begin
result := num1+num2 ;
return result ;
end ;
/
Llamadas JDBC función almacenada: el ajuste de la diferencia entre el procedimiento almacenado:
Al llamar la atención parámetros: "{= llamada addTwoNumfunction (? , ??)}"
- CLOB procesamiento / tipo BLOB de
proceso de datos un tanto grandes:
Una ruta de almacenamiento E :. \ JDK_API_zh_CN.CHM
a través de JDBC rutas de archivos de almacenamiento y después del procesamiento de acuerdo con la operación IO
ejemplo: el JDBC E: archivo de cadena \ JDK_API_zh_CN.CHM "E: \ JDK_API_zh_CN.CHM "almacenada en la base de datos
para obtener: 1 obtener la ruta." E: \ JDK_API_zh_CN.CHM "2.IO
b.
CLOB: grandes volúmenes de datos de texto (novela -> datos)
BLOB: binario
CLOB: carácter grandes datos de texto fluyen lector escritor
de memoria
1. primera pstmt sustituye por nuevo contenido (marcadores de posición)?
2 a través de la pstmt.setCharacterStream (2, lector, (int ) file.length ()); el paso superior? Alternativamente la novela los terceros necesidades parámetro de flujo, para señalar que el tipo Int
toma:
1. lector Lector = rs.getCharacterStream ( "NOVEL" ); el tipo de datos para ahorrar cloc objeto Reader - El escritor lector se puede emitir a través.
blob: flujo de bytes binaria InputStream OutputStream
y el paso CLOB básicamente el mismo, la diferencia: setBinaryStream (...) getBinaryStream (... )