Eu uso ORACLE9i e Oracle8 há muito tempo. Anotei aqui os problemas que precisam de atenção ao usar JSP apenas para sua referência.
1. Como lidar com grandes tipos de Clob e BLOB
podem ser usados para armazenar grandes dados de texto e podem armazenar até 4 GB de dados. É relativamente comum no desenvolvimento de aplicativos. it. Ele fornece dois métodos para ler e obter os dados de Clob:
O método getCharacterStream() retorna o fluxo de entrada codificado em Unicode (objeto java.io.Reader).
O método getAsciiStream() retorna o fluxo de entrada codificado em ASCII (java. io.InputStream).
Então, se você pode armazenar caracteres chineses, você deve usar o método anterior.
Agora
dê um exemplo prático e deixe-me aprender como usar o CLOB passo a passo.
teste de criação de tabela (id INTEGER, conteúdo clob);
Em seguida, inserimos um registro nesta tabela por meio de JSP e, em seguida, obtemos e exibimos
a operação de inserção:
Os seguintes pontos a serem observados são:
1) Os dados do tipo Clob não podem ser inseridos diretamente, e deve ser fornecido primeiro através do método empty_clob(). Ele aloca um localizador (da mesma forma, use a função empty_blob() para alocar um localizador para blobs). mas o conjunto de resultados não está vazio), obtenha um objeto Clob e modifique o conteúdo do objeto para atender às nossas necessidades e, em seguida, o registro da linha é atualizado por meio do método de atualização
2) Ao modificar um registro contendo o tipo lob por meio de seleção, a linha deve ser bloqueada (implementada através da palavra-chave for update), caso contrário o Oracle reportará um erro
3) Apenas se o registro inserido for selecionado para atualização, ocorrerá um erro de "violação de ordem de leitura". função de envio para false, ou seja, o envio automático não é permitido, então confirme-o e selecione-o. Esta é a função das linhas //* acima.
A seguir, leremos o registro recém-inserido do. banco de dados e exibi-lo:
2. Problema de codificação
Como os desenvolvedores de JAVA são estrangeiros, seu suporte ao chinês não é muito bom. Ok, isso tem causado muitas dores de cabeça para muitos de nós, e é disso que estamos falando sobre caracteres chineses. codificação. Não entrarei em detalhes sobre algumas especificações de codificação de caracteres chineses. Falarei principalmente sobre como conectar-se a um banco de dados Oracle.
1. A questão chinesa inserida no banco de dados deve ser convertida em codificação
2. A leitura chinesa do banco de dados deve ser convertida em codificação
Vejamos um código JAVA codificado:
//ECov.java
import java.io.UnsupportedEncodingExceptionpublic
;
classe ECov
{
public static String asc2gb(String asc){
String
ret;
"
GB2312 }
catch(UnsupportedEncodingException
");
e)
{
ret=asc;
return ret
}
public static String gb2asc(String gb)
{
String
ret
;
"ISO8859_1
")
;
catch(UnsupportedEncodingException e){
ret=gb;
return
ret
}
public static int byte2int(byte b){
return ((-1)>>>>24)&
b
;
significado deste código Ou seja, os dois métodos são combinados em um.
ECov.gb2asc(arg) deve ser usado ao inserir no banco de dados, e ECov.asc2gb(arg) deve ser usado durante a leitura. O ponto mais crítico é que a Oracle parece reconhecer apenas a codificação do formato ISO8859_1 (ideia minha).
3. Alguns pequenos detalhes
1. É setAutoCommit(true ou false), que é a função commit() comumente usada no sqlPlus. Se você usar true, não use commit(), caso contrário você ainda usará o método commit(). .
2. O processamento dos tipos de data não é tão simples quanto setDate() e getDate() como se imagina. Você achará muito divertido se depurar você mesmo.
3. É melhor usar a tecnologia de pool de conexões no banco de dados. É um bom método usar um ambiente J2EE padrão e tecnologia JNDI simples.