Advertisement
Guest User

Untitled

a guest
Feb 4th, 2016
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.58 KB | None | 0 0
  1. //package rit756;
  2.  
  3. import java.sql.DriverManager;
  4. import java.sql.Connection;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8.  
  9. import java.net.*;
  10. import java.util.Properties;
  11. import java.io.*;
  12.  
  13. import org.json.simple.JSONObject;
  14. import org.json.simple.JSONValue;
  15.  
  16. //Object class:
  17. public class Contact {
  18.  
  19. public int getId() {
  20. return Id;
  21. }
  22.  
  23. public void setId(int id) {
  24. Id = id;
  25. }
  26.  
  27. public String getFirstName() {
  28. return FirstName;
  29. }
  30.  
  31. public void setFirstName(String firstName) {
  32. FirstName = firstName;
  33. }
  34.  
  35. public String getMiddleInitial() {
  36. return MiddleInitial;
  37. }
  38.  
  39. public void setMiddleInitial(String middleInitial) {
  40. MiddleInitial = middleInitial;
  41. }
  42.  
  43. public String getLastName() {
  44. return LastName;
  45. }
  46.  
  47. public void setLastName(String lastName) {
  48. LastName = lastName;
  49. }
  50.  
  51. public String getStreet() {
  52. return Street;
  53. }
  54.  
  55. public void setStreet(String street) {
  56. Street = street;
  57. }
  58.  
  59. public String getCity() {
  60. return City;
  61. }
  62.  
  63. public void setCity(String city) {
  64. City = city;
  65. }
  66.  
  67. public String getState() {
  68. return State;
  69. }
  70.  
  71. public void setState(String state) {
  72. State = state;
  73. }
  74.  
  75. public String getZip() {
  76. return Zip;
  77. }
  78.  
  79. public void setZip(String zip) {
  80. Zip = zip;
  81. }
  82.  
  83. public String getPhone() {
  84. return Phone;
  85. }
  86.  
  87. public void setPhone(String phone) {
  88. Phone = phone;
  89. }
  90.  
  91. public String getEmail() {
  92. return Email;
  93. }
  94.  
  95. public void setEmail(String email) {
  96. Email = email;
  97. }
  98.  
  99. public String getCardtype() {
  100. return Cardtype;
  101. }
  102.  
  103. public void setCardtype(String cardtype) {
  104. Cardtype = cardtype;
  105. }
  106.  
  107. public String getCardNumber() {
  108. return CardNumber;
  109. }
  110.  
  111. public void setCardNumber(String cardNumber) {
  112. CardNumber = cardNumber;
  113. }
  114.  
  115. private int Id;
  116. private String FirstName;
  117. private String MiddleInitial;
  118. private String LastName;
  119. private String Street;
  120. private String City;
  121. private String State;
  122. private String Zip;
  123. private String Phone;
  124. private String Email;
  125. private String Cardtype;
  126. private String CardNumber;
  127.  
  128. }
  129.  
  130. //JDBC Method Class:
  131. public class JDBMethods implements JDBMethodsInterface {
  132. private Connection connection = null;
  133.  
  134. public void setupDb(String ip, String port, String uname, String pwd,
  135. String Db) {
  136.  
  137. try {
  138. Class.forName("com.mysql.jdbc.Driver");
  139.  
  140. String constring = "jdbc:mysql://" + ip + ":" + port + "/" + Db;
  141.  
  142. connection = DriverManager.getConnection(constring, uname, pwd);
  143.  
  144. } catch (ClassNotFoundException | SQLException e) {
  145. // TODO Auto-generated catch block
  146. e.printStackTrace();
  147. }
  148. }
  149.  
  150. public boolean selectOnId(Contact contact) {
  151.  
  152. Boolean result=false;
  153. try {
  154.  
  155. PreparedStatement ps = connection
  156. .prepareStatement("SELECT * FROM person WHERE Id=?");
  157.  
  158. ps.setInt(1, contact.getId());
  159.  
  160. ResultSet rs = ps.executeQuery();
  161.  
  162. while (rs.next()) {
  163.  
  164. contact.setId(rs.getInt("Id"));
  165. contact.setCardNumber(rs.getString("CardNumber"));
  166. contact.setCity(rs.getString("City"));
  167. contact.setFirstName(rs.getString("FirstName"));
  168. contact.setLastName(rs.getString("LastName"));
  169. contact.setEmail(rs.getString("Email"));
  170. contact.setMiddleInitial(rs.getString("MiddleInitial"));
  171. contact.setState(rs.getString("State"));
  172. contact.setZip(rs.getString("Zip"));
  173. contact.setPhone(rs.getString("Phone"));
  174. contact.setCardtype(rs.getString("CreditCardType"));
  175. contact.setStreet(rs.getString("Street"));
  176. result=true;
  177.  
  178. }
  179.  
  180.  
  181. } catch (SQLException e) {
  182.  
  183. e.printStackTrace();
  184.  
  185. }
  186.  
  187. return result;
  188. }
  189.  
  190. public JDBMethods(String Ip, String Port, String uname, String pwd,
  191. String Db) {
  192.  
  193. setupDb(Ip, Port, uname, pwd, Db);
  194.  
  195. }
  196.  
  197. @Override
  198. public boolean selectOnLastName(Contact contact) {
  199. Boolean result=false;
  200.  
  201. try {
  202.  
  203. PreparedStatement ps = connection
  204. .prepareStatement("SELECT * FROM person WHERE LastName=?");
  205.  
  206. ps.setString(1, contact.getLastName());
  207. ResultSet rs = ps.executeQuery();
  208.  
  209.  
  210. while (rs.next()) {
  211. result=true;
  212.  
  213. contact.setId(rs.getInt("Id"));
  214. contact.setCardNumber(rs.getString("CardNumber"));
  215. contact.setCity(rs.getString("City"));
  216. contact.setFirstName(rs.getString("FirstName"));
  217. contact.setLastName(rs.getString("LastName"));
  218. contact.setEmail(rs.getString("Email"));
  219. contact.setMiddleInitial(rs.getString("MiddleInitial"));
  220. contact.setState(rs.getString("State"));
  221. contact.setZip(rs.getString("Zip"));
  222. contact.setPhone(rs.getString("Phone"));
  223. contact.setCardtype(rs.getString("CreditCardType"));
  224. contact.setStreet(rs.getString("Street"));
  225.  
  226. }
  227.  
  228. } catch (SQLException e) {
  229.  
  230. e.printStackTrace();
  231.  
  232. }
  233.  
  234. return result;
  235. }
  236.  
  237. @Override
  238. public boolean update(Contact contact) {
  239. //
  240.  
  241. String sql="UPDATE person SET
  242.  
  243. Id=?,FirstName=?,LastName=?,MiddleInitial=?,Street=?,City=?,State=?,Zip=?,Phone=?,Email=?,CreditCardType=?,CardNumber=?WHERE Id=?";
  244. PreparedStatement preparedStatement;
  245. try {
  246. preparedStatement = connection.prepareStatement(sql);
  247. preparedStatement.setInt(1, contact.getId());
  248. preparedStatement.setString(2, contact.getFirstName());
  249. preparedStatement.setString(3, contact.getLastName());
  250. preparedStatement.setString(4, contact.getMiddleInitial());
  251. preparedStatement.setString(5, contact.getStreet());
  252. preparedStatement.setString(6, contact.getCity());
  253. preparedStatement.setString(7, contact.getState());
  254. preparedStatement.setString(8, contact.getZip());
  255. preparedStatement.setString(9, contact.getPhone());
  256. preparedStatement.setString(10, contact.getEmail());
  257. preparedStatement.setString(11, contact.getCardtype());
  258. preparedStatement.setString(12, contact.getCardNumber());
  259. preparedStatement.setInt(13, contact.getId());
  260. preparedStatement.executeUpdate();
  261.  
  262. } catch (SQLException e) {
  263.  
  264. e.printStackTrace();
  265. }
  266.  
  267.  
  268.  
  269. return true;
  270. }
  271.  
  272. @Override
  273. public boolean insert(Contact contact) {
  274. String sql = "INSERT INTO person"
  275. + "(Id, FirstName, LastName,MiddleInitial,Street,City,State,Zip,Phone,Email,CreditCardType,CardNumber) VALUES"
  276. + "(?,?,?,?,?,?,?,?,?,?,?,?)";
  277. PreparedStatement preparedStatement;
  278. try {
  279. preparedStatement = connection.prepareStatement(sql);
  280. preparedStatement.setInt(1, contact.getId());
  281. preparedStatement.setString(2, contact.getFirstName());
  282. preparedStatement.setString(3, contact.getLastName());
  283. preparedStatement.setString(4, contact.getMiddleInitial());
  284. preparedStatement.setString(5, contact.getStreet());
  285. preparedStatement.setString(6, contact.getCity());
  286. preparedStatement.setString(7, contact.getState());
  287. preparedStatement.setString(8, contact.getZip());
  288. preparedStatement.setString(9, contact.getPhone());
  289. preparedStatement.setString(10, contact.getEmail());
  290. preparedStatement.setString(11, contact.getCardtype());
  291. preparedStatement.setString(12, contact.getCardNumber());
  292. preparedStatement.executeUpdate();
  293.  
  294. } catch (SQLException e) {
  295.  
  296. e.printStackTrace();
  297. }
  298.  
  299. return true;
  300. }
  301.  
  302. @Override
  303. public boolean delete(Contact contact) {
  304.  
  305. PreparedStatement preparedStatement = null;
  306.  
  307. String deleteSQL = "DELETE FROM person WHERE Id = ?";
  308.  
  309. try {
  310.  
  311. preparedStatement = connection.prepareStatement(deleteSQL);
  312. preparedStatement.setInt(1,contact.getId());
  313. preparedStatement.executeUpdate();
  314. System.out.println("Record is deleted!");
  315.  
  316. } catch (SQLException e) {
  317.  
  318. System.out.println(e.getMessage());
  319.  
  320. }
  321. return true;
  322. }
  323.  
  324. }
  325.  
  326. //JDBC Interface Class:
  327. interface JDBMethodsInterface {
  328.  
  329. public boolean selectOnId(Contact contact);
  330.  
  331. public boolean selectOnLastName(Contact contact);
  332.  
  333. public boolean update(Contact contact);
  334.  
  335. public boolean insert(Contact contact);
  336.  
  337. public boolean delete(Contact contact);
  338. }
  339.  
  340. //JDBC Server Class:
  341. public class Server {
  342. public static void main(String[] args) {
  343. new Server();
  344. }
  345.  
  346. public Server() {
  347. Properties prop = new Properties();
  348. InputStream input = null;
  349. try {
  350. input = new FileInputStream("config.properties");
  351. } catch (FileNotFoundException e) {
  352.  
  353. e.printStackTrace();
  354. }
  355.  
  356.  
  357. try {
  358. prop.load(input);
  359. } catch (IOException e) {
  360.  
  361. e.printStackTrace();
  362. }
  363.  
  364.  
  365. ServerSocket ss = null;
  366. int port=Integer.parseInt(prop.getProperty("port"));
  367.  
  368. try {
  369.  
  370. ss = new ServerSocket(port);
  371. Socket cs = null;
  372. while (true) {
  373. cs = ss.accept();
  374. ThreadedServer ths = new ThreadedServer(cs,prop);
  375. ths.start();
  376. }
  377. } catch (BindException be) {
  378. System.out
  379. .println("Server already running on this computer, stopping.");
  380. } catch (IOException ioe) {
  381. System.out.println("IO Error");
  382. ioe.printStackTrace();
  383. }
  384.  
  385. }
  386. }
  387.  
  388. class ThreadedServer extends Thread {
  389. Socket cs;
  390. Properties properties;
  391.  
  392. public ThreadedServer(Socket cs,Properties prop) {
  393. this.cs = cs;
  394. this.properties=prop;
  395. }
  396.  
  397. @SuppressWarnings("unchecked")
  398. public void run() {
  399.  
  400. try {
  401. BufferedReader br;
  402. PrintWriter opw;
  403. System.out.println("New connection");
  404. br = new BufferedReader(new InputStreamReader(cs.getInputStream()));
  405. opw = new PrintWriter(new OutputStreamWriter(cs.getOutputStream()));
  406. boolean status = false;
  407. Contact contact = new Contact();
  408.  
  409.  
  410. JDBMethods jdbmethods = new JDBMethods(properties.getProperty("dbhost"), properties.getProperty("dbport"),
  411.  
  412. properties.getProperty("dbuser"),
  413. properties.getProperty("dbpassword"), properties.getProperty("dbname"));
  414.  
  415. //JDBMethods jdbmethods = new JDBMethods("localhost", "3306","root", "root", "RIT");
  416.  
  417. String json = br.readLine();
  418.  
  419. Object o = JSONValue.parse(json);
  420. JSONObject jo = (JSONObject) o;
  421. String method = (String) jo.get("method");
  422.  
  423. if (method.equals("selectOnId")) {
  424.  
  425. JSONObject obj = new JSONObject();
  426. contact.setId(Integer.parseInt((String) jo.get("data")));
  427. status=jdbmethods.selectOnId(contact);
  428. obj.put("FirstName", contact.getFirstName());
  429. obj.put("Id", contact.getId());
  430. obj.put("LastName", contact.getLastName());
  431. obj.put("CardNumber", contact.getCardNumber());
  432. obj.put("City", contact.getCity());
  433. obj.put("Email", contact.getEmail());
  434. obj.put("MiddleInitial", contact.getMiddleInitial());
  435. obj.put("State", contact.getState());
  436. obj.put("Zip", contact.getZip());
  437. obj.put("Phone", contact.getPhone());
  438. obj.put("CreditCardType", contact.getCardtype());
  439. obj.put("Street", contact.getStreet());
  440. StringWriter out = new StringWriter();
  441.  
  442. obj.writeJSONString(out);
  443. String jsonText = out.toString();
  444. String response="{\"data\":"+jsonText+",\"status\":\"" + status + "\"}";
  445. System.out.println(response);
  446. opw.write(response);
  447.  
  448. } else if (method.equals("insert")) {
  449.  
  450. JSONObject jsondata = (JSONObject) jo.get("data");
  451. contact.setCardNumber((String) jsondata.get("CardNumber"));
  452. contact.setCity((String) jsondata.get("City"));
  453. contact.setFirstName((String) jsondata.get("FirstName"));
  454. contact.setLastName((String) jsondata.get("LastName"));
  455. contact.setId(Integer.parseInt((String) jsondata.get("Id")));
  456. contact.setEmail((String) jsondata.get("Email"));
  457. contact.setMiddleInitial((String) jsondata.get("MiddleInitial"));
  458. contact.setState((String) jsondata.get("State"));
  459. contact.setZip((String) jsondata.get("Zip"));
  460. contact.setPhone((String) jsondata.get("Phone"));
  461. contact.setCardtype((String) jsondata.get("CreditCardType"));
  462. contact.setStreet((String) jsondata.get("Street"));
  463. status = jdbmethods.insert(contact);
  464. opw.write("{'status':'" + status + "'}");
  465. }
  466.  
  467. else if (method.equals("update")) {
  468. JSONObject jsondata = (JSONObject) jo.get("data");
  469. contact.setCardNumber((String) jsondata.get("CardNumber"));
  470. contact.setCity((String) jsondata.get("City"));
  471. contact.setFirstName((String) jsondata.get("FirstName"));
  472. contact.setLastName((String) jsondata.get("LastName"));
  473. contact.setId(Integer.parseInt((String) jsondata.get("Id")));
  474. contact.setEmail((String) jsondata.get("Email"));
  475. contact.setMiddleInitial((String) jsondata.get("MiddleInitial"));
  476. contact.setState((String) jsondata.get("State"));
  477. contact.setZip((String) jsondata.get("Zip"));
  478. contact.setPhone((String) jsondata.get("Phone"));
  479. contact.setCardtype((String) jsondata.get("CreditCardType"));
  480. contact.setStreet((String) jsondata.get("Street"));
  481. status = jdbmethods.update(contact);
  482. opw.write("{'status':'" + status + "'}");
  483.  
  484. } else if (method.equals("selectOnLastName")) {
  485.  
  486.  
  487. JSONObject obj = new JSONObject();
  488. System.out.println((String)jo.get("data"));
  489. contact.setLastName((String) jo.get("data"));
  490. status=jdbmethods.selectOnLastName(contact);
  491. obj.put("FirstName", contact.getFirstName());
  492. obj.put("Id", contact.getId());
  493. obj.put("LastName", contact.getLastName());
  494. obj.put("CardNumber", contact.getCardNumber());
  495. obj.put("City", contact.getCity());
  496. obj.put("Email", contact.getEmail());
  497. obj.put("MiddleInitial", contact.getMiddleInitial());
  498. obj.put("State", contact.getState());
  499. obj.put("Zip", contact.getZip());
  500. obj.put("Phone", contact.getPhone());
  501. obj.put("CreditCardType", contact.getCardtype());
  502. obj.put("Street", contact.getStreet());
  503. StringWriter out = new StringWriter();
  504.  
  505. obj.writeJSONString(out);
  506. String jsonText = out.toString();
  507. //System.out.print(jsonText);
  508. String response="{\"data\":"+jsonText+",\"status\":\"" + status + "\"}";
  509. System.out.println(response);
  510. opw.write(response);
  511.  
  512.  
  513.  
  514.  
  515.  
  516. } else if (method.equals("delete")) {
  517. contact.setId(Integer.parseInt((String) jo.get("data")));
  518. status=jdbmethods.delete(contact);
  519. opw.write("{'status':'" + status + "'}");
  520. }
  521.  
  522. opw.flush();
  523. cs.close();
  524. System.out.println("connection closed");
  525.  
  526. } catch (IOException e) {
  527. System.out.println("Something went wrong.");
  528. e.printStackTrace();
  529. }
  530. }
  531.  
  532. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement