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).
J'ai aussi une classe DAO qui lui est associée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; } ... }
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(); ... } }
La particularité est de remplir le Clob avec le contenu d'un fichier.
Est-ce possible?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); ...
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
Partager