KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > contineo > setup > DBInit


1 /*
2  * DBInit.java
3  *
4  * Created on 5. Februar 2004, 21:54
5  */

6
7 package org.contineo.setup;
8
9 import java.io.BufferedReader JavaDoc;
10 import java.io.FileInputStream JavaDoc;
11 import java.io.InputStream JavaDoc;
12 import java.io.InputStreamReader JavaDoc;
13 import java.io.Reader JavaDoc;
14 import java.util.ArrayList JavaDoc;
15 import java.util.Iterator JavaDoc;
16 import java.util.List JavaDoc;
17
18 /**
19  *
20  * @author Michael Scholz
21  */

22 public class DBInit {
23
24     /**
25      *
26      * @uml.property name="con"
27      * @uml.associationEnd
28      * @uml.property name="con" multiplicity="(1 1)"
29      */

30     private DBCon con;
31
32     /**
33      * @uml.property name="list"
34      * @uml.associationEnd
35      */

36     private List JavaDoc<String JavaDoc> list = new ArrayList JavaDoc<String JavaDoc>();
37
38     
39     /** Creates a new instance of DBInit */
40     public DBInit(String JavaDoc sqlfile) {
41         try {
42             ClassLoader JavaDoc loader = Thread.currentThread().getContextClassLoader();
43             InputStream JavaDoc is = new FileInputStream JavaDoc(loader.getResource(sqlfile).toURI().getPath());
44             BufferedReader JavaDoc reader = new BufferedReader JavaDoc(new InputStreamReader JavaDoc(is));
45             con = new DBCon();
46             parse(reader);
47         } catch (Exception JavaDoc e) {
48             e.printStackTrace();
49         }
50     }
51     
52     protected void parse(Reader JavaDoc reader) {
53         try {
54             int letter = 0;
55             StringBuffer JavaDoc stmt = new StringBuffer JavaDoc();
56             while((letter = reader.read()) != -1) {
57                 if (letter != 59) {
58                     if (letter != 10 && letter != 13)
59                         stmt.append((char)letter);
60                 } else {
61                     list.add(stmt.toString());
62                     stmt = new StringBuffer JavaDoc();
63                 }
64             }
65         } catch (Exception JavaDoc e) {
66             e.printStackTrace();
67         }
68     }
69     
70     public boolean testConnection() {
71         return con.testConnection();
72     }
73  
74     public String JavaDoc generate() {
75         StringBuffer JavaDoc result = new StringBuffer JavaDoc();
76         try {
77             Iterator JavaDoc iter = list.iterator();
78             while(iter.hasNext()) {
79                 String JavaDoc query = (String JavaDoc)iter.next();
80                 int space1 = query.indexOf(" ");
81                 int space2 = query.indexOf(" ", space1 + 1);
82                 int space3 = query.indexOf(" ", space2 + 1);
83                 result.append(query.substring(0, space3));
84                 try {
85                     int updated = con.executeUpdate(query);
86                     if (updated != 1 && query.toLowerCase().startsWith("insert"))
87                         result.append(" ... Failed\n");
88                     else
89                         result.append(" ... OK\n");
90                 } catch (UpdateException ue) {
91                     result.append(" ... Failed\n");
92                 }
93             }
94         } catch (Exception JavaDoc e) {
95             e.printStackTrace();
96         }
97         return result.toString();
98     }
99 }
100
Popular Tags