forked from biblelamp/JavaExercises
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCRUD.java
More file actions
134 lines (122 loc) · 3.99 KB
/
CRUD.java
File metadata and controls
134 lines (122 loc) · 3.99 KB
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/**
* Java. Level 2. Lesson 8
* CRUD — Create, Read, Update, Delete
*
* @author Sergey Iryupin
* @version 0.2 dated Jan 19, 2018
*/
import java.util.*;
import java.sql.*;
class CRUD implements IConstants {
final String NAME_TABLE = "users";
final String SQL_CREATE_TABLE =
"DROP TABLE IF EXISTS " + NAME_TABLE + ";" +
"CREATE TABLE " + NAME_TABLE +
"(login CHAR(6) PRIMARY KEY NOT NULL," +
" passwd CHAR(6) NOT NULL);";
final String SQL_SELECT = "SELECT * FROM " + NAME_TABLE + ";";
final String DB_CREATED = "Darabase created.";
final String RECORD_ADDED = "Record added.";
final String RECORD_DELETED = "Record deleted.";
final String RECORD_UPDATED = "Record updated.";
final String UNKNOWN_COMMAND = "Unknown command, use [-c,-a,-r,-u,-d] only.";
final String LOGIN_COL = "login";
Connection connect;
Statement stmt;
ResultSet rs;
String sql;
public static void main(String[] args) {
new CRUD(args);
}
CRUD(String[] args) {
if (args.length == 0) {
Scanner sc = new Scanner(System.in);
System.out.print("> ");
String line = sc.nextLine();
args = line.split(" ");
}
switch (args[0]) {
case "-c":
openDBFile(SQLITE_DB)
.createTable(SQL_CREATE_TABLE);
System.out.println(DB_CREATED);
break;
case "-a":
openDBFile(SQLITE_DB)
.add(args[1], args[2]);
System.out.println(RECORD_ADDED);
break;
case "-r":
openDBFile(SQLITE_DB)
.list();
break;
case "-u":
openDBFile(SQLITE_DB)
.update(args[1], args[2]);
System.out.println(RECORD_UPDATED);
break;
case "-d":
openDBFile(SQLITE_DB)
.delete(args[1]);
System.out.println(RECORD_DELETED);
break;
default:
System.out.println(UNKNOWN_COMMAND);
}
}
private CRUD openDBFile(String dbName) { // open/create database
try {
Class.forName(DRIVER_NAME);
connect = DriverManager.getConnection(dbName);
stmt = connect.createStatement();
} catch (Exception e) {
e.printStackTrace();
}
return this;
}
private void createTable(String sqlCreateTable) { // create table
try {
stmt.executeUpdate(sqlCreateTable);
} catch (Exception e) {
e.printStackTrace();
}
}
private void add(String login, String passwd) { // add record
try {
stmt.executeUpdate("INSERT INTO " + NAME_TABLE +
" (login, passwd) " +
"VALUES ('" + login + "', '" + passwd + "');");
} catch (Exception e) {
e.printStackTrace();
}
}
private void update(String login, String passwd) { // update passwd by login
try {
stmt.executeUpdate("UPDATE " + NAME_TABLE +
" set PASSWD='" + passwd +
"' where LOGIN='" + login + "';");
} catch (Exception e) {
e.printStackTrace();
}
}
private void delete(String login) { // delete record by login
try {
stmt.executeUpdate("DELETE from " + NAME_TABLE +
" where LOGIN='" + login + "';");
} catch (Exception e) {
e.printStackTrace();
}
}
private void list() { // show all records
try {
System.out.println("LOGIN\t\tPASSWD");
rs = stmt.executeQuery(SQL_SELECT);
while (rs.next())
System.out.println(
rs.getString(LOGIN_COL) + "\t\t" +
rs.getString(PASSWD_COL));
} catch (Exception e) {
e.printStackTrace();
}
}
}