KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > javabb > migration > phpbb > Jbb_users


1 /**
2  * Script de migração phpBB -> JavaBB
3  * @author Lucas Teixeira - lucas@javabb.org
4  */

5
6 package org.javabb.migration.phpbb;
7 import java.sql.Connection JavaDoc;
8 import java.sql.Date JavaDoc;
9 import java.sql.PreparedStatement JavaDoc;
10 import java.sql.ResultSet JavaDoc;
11 import java.sql.SQLException JavaDoc;
12 import java.sql.Statement JavaDoc;
13
14 public class Jbb_users extends Jbb_Convert {
15     
16     public void convert() throws ClassNotFoundException JavaDoc, SQLException JavaDoc {
17         sql = "select * from nuke_users order by user_id;";
18         System.out.println("TABLE JBB_USERS.");
19         Connection JavaDoc phpConn = this.getPhpBBConnection();
20         Statement JavaDoc stm = phpConn.createStatement();
21         System.out.println("\tReading data");
22         ResultSet JavaDoc rs = stm.executeQuery(sql);
23         long i = 0;
24        
25         Connection JavaDoc javaConn = this.getJavaBBConnection();
26         
27         //javaConn.createStatement().executeUpdate("ALTER TABLE jbb_users MODIFY COLUMN id_user BIGINT(20) NOT NULL DEFAULT '0'");
28
//System.out.println("ALTER TABLE jbb_users MODIFY COLUMN id_user BIGINT(20) NOT NULL DEFAULT '0' is OK!");
29
//"Operação : ALTER TABLE jbb_users MODIFY COLUMN id_user BIGINT(20) NOT NULL DEFAULT '0' AUTO_INCREMENT"
30

31         javaConn.createStatement().executeUpdate("delete from jbb_users");
32         System.out.println("delete from jbb_users is OK!");
33         
34         PreparedStatement JavaDoc ps = javaConn.prepareStatement("insert into jbb_users (id_user, user_name, pws, name, email, posts, admin, " +
35                 "data_registro, localizacao, website, occupation, user_sig, user_msnm, user_lastvisit, user_dateformat, " +
36                 "user_allow_viewonline, user_avatar, user_icq, user_interests, user_aim, user_yim, show_mail, show_signature, " +
37                 "user_code) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
38
39         System.out.println("\tInserting data ");
40         while (rs.next()) {
41             ps.setInt ( 1, rs.getInt("user_id"));
42             ps.setString ( 2, rs.getString("username"));
43             ps.setString ( 3, rs.getString("user_password"));
44             ps.setString ( 4, rs.getString("name")); //TODO Porque todos os usuários tem que se chamar 'JavaBB User!' ? (;
45
ps.setString ( 5, rs.getString("user_email"));
46             ps.setInt ( 6, rs.getInt("user_posts"));
47             ps.setInt ( 7, 0); //TODO ninguem é admin a princípio
48

49             String JavaDoc data_registro = "";
50             String JavaDoc last_visit = "";
51             try{
52                 data_registro = long2timestamp(rs.getLong("user_regdate") * 1000);
53             } catch(Exception JavaDoc e){
54                 data_registro = "1063221218";
55             }
56             
57             try{
58                 last_visit = long2timestamp(rs.getLong("user_lastvisit") * 1000);
59             } catch(Exception JavaDoc e){
60                 last_visit = "1063221218";
61             }
62         
63             ps.setDate ( 8, new Date JavaDoc(new Long JavaDoc(data_registro).longValue()));
64             ps.setString ( 9, rs.getString("user_from"));
65             ps.setString (10, rs.getString("user_website"));
66             ps.setString (11, rs.getString("user_occ"));
67             ps.setString (12, "[url=http://www.javafree.org]JavaFree.org[/url]");
68             ps.setString (13, rs.getString("user_msnm"));
69             ps.setDate (14, new Date JavaDoc(new Long JavaDoc(last_visit).longValue()));
70             ps.setString (15, rs.getString("user_dateformat"));
71             ps.setString (16, rs.getString("user_allow_viewonline"));
72             
73             String JavaDoc user_avatar = rs.getString("user_avatar");
74             if(user_avatar != null && !"".equals(user_avatar))
75                 if(user_avatar.charAt(0) != 'h')
76                     user_avatar = "http://www.javafree.com.br/forum/images/avatars/" + user_avatar;
77             
78             ps.setString (17, user_avatar);
79             ps.setString (18, rs.getString("user_icq"));
80             ps.setString (19, rs.getString("user_interests"));
81             ps.setString (20, rs.getString("user_aim"));
82             ps.setString (21, rs.getString("user_yim"));
83             ps.setInt (22, rs.getInt("user_viewemail"));
84             ps.setInt (23, rs.getInt("user_attachsig"));
85             ps.setString (24, rs.getString("user_id").concat(""+System.currentTimeMillis()));
86             
87             ps.addBatch();
88             System.out.print(".");
89
90             try{
91                 if(i%1000==0){
92                     ps.executeBatch();
93                 }
94             }catch(SQLException JavaDoc ex1){
95                 System.out.println("Cannot insert the userId:" + rs.getInt("user_id"));
96             }
97             i++;
98
99         }
100         System.out.println("\n");
101         ps.executeBatch(); //Executa o restante.
102

103         //Corrige o bug do Usuário Anonymous
104
ps = javaConn.prepareStatement("UPDATE jbb_users SET id_user = ? WHERE user_name = ?;");
105         ps.setInt (1, 0); //id 0
106
ps.setString(2, "Anonymous");
107         ps.executeUpdate();
108         
109         
110         //javaConn.createStatement().executeUpdate("ALTER TABLE jbb_users MODIFY COLUMN id_user BIGINT(20) NOT NULL DEFAULT '0' AUTO_INCREMENT");
111
//System.out.println("ALTER TABLE jbb_users MODIFY COLUMN id_user BIGINT(20) NOT NULL DEFAULT '0' AUTO_INCREMENT is OK!");
112

113         ps.close();
114         stm.close();
115         rs.close();
116         phpConn.close();
117         javaConn.close();
118         System.out.print("Done!\n\n");
119     }
120 }
121
Popular Tags