Création d'un Clob avant d'accéder à la base
Bonjour,
Je signale que je ne suis pas du tout familier avec les Clob.
Voilà mon problème.
J'ai une classe (bean) contenant un membre de type Clob (java.sql.Clob).
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
public class Pipo implements java.io.Serializable {
...
protected String monFichier;
protected Clob maDonnee;
...
public String getMonFichier() {
return monFichier;
}
public void setMonFichier(String monFichier) {
this.monFichier = monFichier;
}
public Clob getMaDonnee() {
return maDonnee;
}
public void setMaDonnee(Clob maDonnee) {
this.maDonnee = maDonnee;
}
...
} |
J'ai aussi une classe DAO qui lui est associée
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
public class PipoDAO {
public int insert(Pipo obj) throws SQLException {
PreparedStatement ps = dbHandler.prepareStatement("pipo.insert");
...
ps.setString(4, obj.getMonFichier());
ps.setClob(5, obj.getMaDonnee());
...
int n = ps.executeUpdate();
...
}
} |
Je souhaite faire quelque chose comme ce qui suit. C'est à dire, créer le bean, le remplir, puis seulement après, accéder à la base pour insérer l'enregistrement.
La particularité est de remplir le Clob avec le contenu d'un fichier.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
...
File file = new File("pipo.txt");
...
DatabaseHandler dbHandler = DatabaseHandler.getInstance();
PipoDAO pipoDAO = PipoDAO.getInstance();
...
Pipo pipo = new Pipo();
...
// Remplir le bean
...
pipo.setMonFichier("pipo.txt");
CLOB clob = fileToClob(file);
pipo.setMaDonnee(clob);
...
// Mise à jour de la base
pipoDAO.insert(pipo);
... |
Est-ce possible?
Si oui, comment faire?
Il faudra ensuite prévoir la procédure inverse qui consiste à lire la donnée dans la base, puis remplir un fichier ou plutot un reader.
Merci.
- Dominique Crétel