基本資料庫連線的方式在上一篇文章:[Java] 連線至sql資料庫
1. IPaddress:統一數值方便取用,建一個interface
1
2
3
4
5
6
| public interface IPaddress { final String ip = "IP地址"; final String sqldbaccount = "使用者名稱"; final String sqldbpass = "使用者密碼"; final String dbName = "資料庫名稱";} |
Register.java,要使用時先new一個Register object,再呼叫此object的insertTable即可
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
| import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Register implements IPaddress{ private Connection connection = null; private Statement statement = null; private ResultSet resultSet = null; private PreparedStatement pStatement = null; private String dropdbSQL = "DROP TABLE User "; private String name; private String passwd; private String nickName; //建構子,初始化要註冊的資料,並與資料庫取得連線 public Register(String name, String nickName, String passwd){ this.name = name; this.passwd = passwd; this.nickName = nickName; try { Class.forName("com.mysql.jdbc.Driver"); connection = DriverManager.getConnection("jdbc:mysql://"+ip+"/"+dbName+"?useUnicode=true&characterEncoding=Big5", sqldbaccount,sqldbpass); } catch (ClassNotFoundException e) { //System.out.println(e); }catch (SQLException e) { //System.out.println(e); } } public int insertTable(){ int confirm = selectTable();//先去資料表查使用者名稱有無重複 int flag = 0; String insertdbSQL = "insert into User(id,name,nickName, passwd) " + "select ifNULL(max(id),0)+1,?,?,? FROM User"; try { if (confirm==0) {//沒有重複使用者 pStatement = connection.prepareStatement(insertdbSQL); pStatement.setString(1, name); pStatement.setString(2, nickName); pStatement.setString(3, passwd); pStatement.executeUpdate(); creatTable_friend(); creatTable_chat(); flag = 1; } } catch (SQLException e) { //System.out.println(e); }finally{ closedb(); } return flag;//成功註冊回傳1 } public int selectTable(){ String selectSQL = "select * from User "; int flag = 0; try { statement = connection.createStatement(); resultSet = statement.executeQuery(selectSQL); while (resultSet.next()) { if (resultSet.getString("name").equals(name)) flag = 1; } } catch (SQLException e) { //System.out.println("selectTable:"+e); }finally{ closedb(); } return flag;//有重複使用者回傳1 } public void closedb(){ try { if (resultSet!=null){ resultSet.close(); resultSet = null; } if (statement != null) { statement.close(); statement = null; } if (pStatement != null) { pStatement.close(); pStatement = null; } } catch (SQLException e) { //System.out.println(e); } } } |
Login.java ,要使用時先new 一個Login object ,再呼叫此object的selectTable method即可
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
| import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class Login implements IPaddress{ private Connection connection = null; private Statement statement = null; private ResultSet resultSet = null; private PreparedStatement pStatement = null; private String name; private String passwd; public Login(String name,String passwd){ this.name = name; this.passwd = passwd; try { Class.forName("com.mysql.jdbc.Driver"); connection = DriverManager.getConnection("jdbc:mysql://"+ip+"/"+dbName+"?useUnicode=true&characterEncoding=Big5", sqldbaccount,sqldbpass); } catch (ClassNotFoundException e) { //System.out.println(e); }catch (SQLException e) { //System.out.println(e); } } public int selectTable(){ String selectSQL = "select * from User "; int flag = 0; try { statement = connection.createStatement(); resultSet = statement.executeQuery(selectSQL); while (resultSet.next()) {//如果使用者名稱和密碼都正確 if (resultSet.getString("name").equals(name)&&resultSet.getString("passwd").equals(passwd)){ flag = 1; } } } catch (SQLException e) { //System.out.println("selectTable:"+e); }finally{ closedb(); } return flag; } public void closedb(){ try { if (resultSet!=null){ resultSet.close(); resultSet = null; } if (statement != null) { statement.close(); statement = null; } if (pStatement != null) { pStatement.close(); pStatement = null; } } catch (SQLException e) { //System.out.println(e); } } } |