AccoutBook UML ๋ค์ด์ด๊ทธ๋จ
MainClass
package main;
import java.util.Scanner;
import cls.DeleteCls;
import cls.InsertCls;
import cls.SelectCls;
import cls.UpdateCls;
import dao.AccountDao;
public class MainClass {
public static void main(String[] args) {
/*
์ถ๊ฐํ๊ธฐ
์ญ์ ํ๊ธฐ
๋ ์ง๋ก ๊ฒ์ํ๊ธฐ
์ ๋ชฉ์ผ๋ก ๊ฒ์ํ๊ธฐ
์์ ํ๊ธฐ
๋ชจ๋ ์ถ๋ ฅ
-----------
ํฉ๊ณ ์ถ๋ ฅ
*/
Scanner sc = new Scanner(System.in);
InsertCls ic = new InsertCls();
DeleteCls dc = new DeleteCls();
UpdateCls uc = new UpdateCls();
SelectCls scs = new SelectCls();
out: while(true) {
System.out.println("---------๋ฉ๋ด---------");
System.out.println("1. ์ถ๊ฐ");
System.out.println("2. ์ญ์ ");
System.out.println("3. ๋ ์ง๋ก ๊ฒ์");
System.out.println("4. ์ฉ๋๋ก ๊ฒ์");
System.out.println("5. ์์ ");
System.out.println("6. ๋ชจ๋ ์ถ๋ ฅ");
System.out.println("7. ํฉ๊ณ ์ถ๋ ฅ");
System.out.println("8. ์ข
๋ฃ");
int count = sc.nextInt();
switch(count) {
case 1 :
ic.insertData();
break;
case 2 :
dc.deleteData();
break;
case 3 :
scs.selectDate();
break;
case 4 :
scs.selectUse();
break;
case 5 :
uc.updateData();
break;
case 6 :
scs.selectAll();
break;
case 7 :
scs.selectSum();
break;
case 8 :
break out;
}
}
}
}
InsertCls
package cls;
import java.util.Scanner;
import dao.AccountDao;
import dto.AccountDto;
public class InsertCls {
Scanner sc = new Scanner(System.in);
public void insertData() {
System.out.print("์ฉ๋ = ");
String use = sc.next();
System.out.print("๋ถ๋ฅ(์์
/์ง์ถ) = ");
String classify = sc.next();
System.out.print("๊ธ์ก = ");
int money = sc.nextInt();
System.out.print("๋ด์ฉ = ");
String memo = sc.next();
AccountDao dao = AccountDao.getInstance();
boolean b = dao.insert(new AccountDto(null, use, classify, money, memo));
if(b) {
System.out.println("๋ฐ์ดํฐ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.");
return;
} else {
System.out.println("๋ฐ์ดํฐ๊ฐ ์ถ๊ฐ๋์ง ์์์ต๋๋ค.");
}
}
}
DeleteCls
package cls;
import java.util.Scanner;
import dao.AccountDao;
import dto.AccountDto;
public class DeleteCls {
Scanner sc = new Scanner(System.in);
public void deleteData() {
System.out.print("์ญ์ ๋ ์ง (XX/XX/XX) = ");
String date = sc.next();
AccountDao dao = AccountDao.getInstance();
boolean b = dao.delete(new AccountDto(date));
if(b) {
System.out.println("๋ฐ์ดํฐ๊ฐ ์ญ์ ๋์์ต๋๋ค.");
return;
} else {
System.out.println("๋ฐ์ดํฐ๊ฐ ์ญ์ ๋์ง ์์์ต๋๋ค.");
}
}
}
UpdateCls
package cls;
import java.util.Scanner;
import dao.AccountDao;
import dto.AccountDto;
public class UpdateCls {
Scanner sc = new Scanner(System.in);
public void updateData() {
System.out.print("์์ ํ ๋ฐ์ดํฐ ์ฉ๋ = ");
String use = sc.next();
System.out.print("์์ ๊ธ์ก = ");
int money = sc.nextInt();
AccountDao dao = AccountDao.getInstance();
boolean b = dao.update(new AccountDto(money, use));
if(b) {
System.out.println("๋ฐ์ดํฐ๊ฐ ์์ ๋์์ต๋๋ค.");
return;
} else {
System.out.println("๋ฐ์ดํฐ๊ฐ ์์ ๋์ง ์์์ต๋๋ค.");
}
}
}
SelectCls
package cls;
import java.util.List;
import java.util.Scanner;
import dao.AccountDao;
import dto.AccountDto;
public class SelectCls {
Scanner sc = new Scanner(System.in);
public void selectDate() {
System.out.print("๊ฒ์ ๋ ์ง (XX/XX/XX) = ");
String search = sc.next();
AccountDao dao = AccountDao.getInstance();
List<AccountDto> list = dao.selectDate(search);
for (int i = 0; i < list.size(); i++) {
AccountDto dto = list.get(i);
System.out.println(dto.toString());
}
}
public void selectUse() {
System.out.print("์ฌ์ฉ ์ฉ๋ = ");
String search = sc.next();
AccountDao dao = AccountDao.getInstance();
List<AccountDto> list = dao.selectUse(search);
for (int i = 0; i < list.size(); i++) {
AccountDto dto = list.get(i);
System.out.println(dto.toString());
}
}
public void selectAll() {
System.out.print("๋ชจ๋ ์ฌ์ฉ์ฒ ์ถ๋ ฅ -------------");
AccountDao dao = AccountDao.getInstance();
List<AccountDto> list = dao.selectAll();
for (int i = 0; i < list.size(); i++) {
AccountDto dto = list.get(i);
System.out.println(dto.toString());
}
}
public void selectSum() {
System.out.print("์์
/์ง์ถ๋ณ ํฉ๊ณ -------");
AccountDao dao = AccountDao.getInstance();
List<AccountDto> list = dao.selectSum();
for (int i = 0; i < list.size(); i++) {
AccountDto dto = list.get(i);
System.out.println(dto.sumToString());
}
}
}
AccountDao
package dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import db.DBClose;
import db.DBConnection;
import dto.AccountDto;
// singleton
public class AccountDao {
Scanner sc = new Scanner(System.in);
private static AccountDao dao = null;
private AccountDao() {
}
public static AccountDao getInstance() {
if(dao == null) {
dao = new AccountDao();
}
return dao;
}
public boolean insert(AccountDto dto) {
String sql = " INSERT INTO ACCOUNTBOOK(DATE_TIME, USE, CLASSIFY, MONEY, MEMO) " // ๋ ์ง, ์ฉ๋, ๋ถ๋ฅ(์์
/์ง์ถ), ๊ธ์ก, ๋ด์ฉ
+ " VALUES(SYSDATE, ?, ?, ?, ?) ";
System.out.println(sql);
Connection conn = DBConnection.getConnection();
PreparedStatement psmt = null;
int count = 0;
try {
psmt = conn.prepareStatement(sql);
psmt.setString(1, dto.getUse()); //setString(sql๋ฌธ์ ?์์น, value๊ฐ)
psmt.setString(2, dto.getClassify());
psmt.setInt(3, dto.getMoney());
psmt.setString(4, dto.getMemo());
count = psmt.executeUpdate(); // insert๋ฌธ์์๋ ๋ฐ์๋ ๋ ์ฝ๋์ ๊ฐ์๋ฅผ ๋ฐํ
System.out.println("์ถ๊ฐ ์๋ฃ");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("์ถ๊ฐ ์คํจ");
} finally {
try {
if(psmt != null) {
psmt.close();
}
if(conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return count>0?true:false;
}
public boolean delete(AccountDto dto) {
String sql = " DELETE FROM ACCOUNTBOOK " // ๋ ์ง, ์ฉ๋, ๋ถ๋ฅ(์์
/์ง์ถ), ๊ธ์ก, ๋ด์ฉ
+ " WHERE TO_CHAR(DATE_TIME, 'YY/MM/DD') = ? ";
System.out.println(sql);
Connection conn = DBConnection.getConnection();
PreparedStatement psmt = null;
int count = 0;
try {
psmt = conn.prepareStatement(sql);
psmt.setString(1, dto.getDate_time());
count = psmt.executeUpdate();
System.out.println("์ญ์ ์๋ฃ");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("์ญ์ ์คํจ");
} finally {
try {
if(psmt != null) {
psmt.close();
}
if(conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return count>0?true:false;
}
public boolean update(AccountDto dto) {
String sql = " UPDATE ACCOUNTBOOK "
+ " SET MONEY = ? " // ๋ ์ง, ์ฉ๋, ๋ถ๋ฅ(์์
/์ง์ถ), ๊ธ์ก, ๋ด์ฉ
+ " WHERE USE = ? ";
System.out.println(sql);
Connection conn = DBConnection.getConnection();
PreparedStatement psmt = null;
int count = 0;
try {
psmt = conn.prepareStatement(sql);
psmt.setInt(1, dto.getMoney());
psmt.setString(2, dto.getUse());
count = psmt.executeUpdate();
System.out.println("์์ ์๋ฃ");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("์์ ์คํจ");
} finally {
try {
if(psmt != null) {
psmt.close();
}
if(conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return count>0?true:false;
}
public List<AccountDto> selectDate(String date) {
String sql = " SELECT DATE_TIME, USE, CLASSIFY, MONEY, MEMO "
+ " FROM ACCOUNTBOOK "
+ " WHERE TO_CHAR(DATE_TIME, 'YY/MM/DD') = ? ";
System.out.println(sql);
Connection conn = DBConnection.getConnection();
PreparedStatement psmt = null;
ResultSet rs = null;
List<AccountDto> list = new ArrayList<AccountDto>();
try {
psmt = conn.prepareStatement(sql);
psmt.setString(1, date);
rs = psmt.executeQuery();
while(rs.next()) {
String date_time = rs.getString("DATE_TIME");
String use = rs.getString("USE");
String classify = rs.getString("CLASSIFY");
int money = rs.getInt("MONEY");
String memo = rs.getString("MEMO");
AccountDto dto = new AccountDto(date_time, use, classify, money, memo);
list.add(dto);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
DBClose.close(conn, psmt, rs);
}
return list;
}
public List<AccountDto> selectUse(String u) {
String sql = " SELECT DATE_TIME, USE, CLASSIFY, MONEY, MEMO "
+ " FROM ACCOUNTBOOK "
+ " WHERE USE = ? ";
System.out.println(sql);
Connection conn = DBConnection.getConnection();
PreparedStatement psmt = null;
ResultSet rs = null;
List<AccountDto> list = new ArrayList<AccountDto>();
try {
psmt = conn.prepareStatement(sql);
psmt.setString(1, u);
rs = psmt.executeQuery();
while(rs.next()) {
String date_time = rs.getString("DATE_TIME");
String use = rs.getString("USE");
String classify = rs.getString("CLASSIFY");
int money = rs.getInt("MONEY");
String memo = rs.getString("MEMO");
AccountDto dto = new AccountDto(date_time, use, classify, money, memo);
list.add(dto);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
DBClose.close(conn, psmt, rs);
}
return list;
}
public List<AccountDto> selectAll() {
String sql = " SELECT DATE_TIME, USE, CLASSIFY, MONEY, MEMO "
+ " FROM ACCOUNTBOOK ";
System.out.println(sql);
Connection conn = DBConnection.getConnection();
PreparedStatement psmt = null;
ResultSet rs = null;
List<AccountDto> list = new ArrayList<AccountDto>();
try {
psmt = conn.prepareStatement(sql);
rs = psmt.executeQuery();
while(rs.next()) {
String date_time = rs.getString("DATE_TIME");
String use = rs.getString("USE");
String classify = rs.getString("CLASSIFY");
int money = rs.getInt("MONEY");
String memo = rs.getString("MEMO");
AccountDto dto = new AccountDto(date_time, use, classify, money, memo);
list.add(dto);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
DBClose.close(conn, psmt, rs);
}
return list;
}
public List<AccountDto> selectSum() {
String sql = " SELECT CLASSIFY, SUM(MONEY) "
+ " FROM ACCOUNTBOOK "
+ " GROUP BY CLASSIFY ";
System.out.println(sql);
Connection conn = DBConnection.getConnection();
PreparedStatement psmt = null;
ResultSet rs = null;
List<AccountDto> list = new ArrayList<AccountDto>();
try {
psmt = conn.prepareStatement(sql);
rs = psmt.executeQuery();
while(rs.next()) {
String classify = rs.getString("CLASSIFY");
int money = rs.getInt("SUM(MONEY)");
AccountDto dto = new AccountDto(classify, money);
list.add(dto);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
DBClose.close(conn, psmt, rs);
}
return list;
}
}
AccountDto
package dto;
public class AccountDto {
private String date_time;
private String use;
private String classify;
private int money;
private String memo;
private int sumMoney;
public AccountDto(String date_time, String use, String classify, int money, String memo) {
super();
this.date_time = date_time;
this.use = use;
this.classify = classify;
this.money = money;
this.memo = memo;
}
public AccountDto(int money, String use) {
this.money = money;
this.use = use;
}
public AccountDto(String classify, int sumMoney) {
this.classify = classify;
this.sumMoney = sumMoney;
}
public AccountDto(String date_time) {
this.date_time = date_time;
}
public String getDate_time() {
return date_time;
}
public void setDate_time(String date_time) {
this.date_time = date_time;
}
public String getUse() {
return use;
}
public void setUse(String use) {
this.use = use;
}
public String getClassify() {
return classify;
}
public void setClassify(String classify) {
this.classify = classify;
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
public String getMemo() {
return memo;
}
public void setMemo(String memo) {
this.memo = memo;
}
@Override
public String toString() {
return "AccountDto [date_time=" + date_time + ", use=" + use + ", classify=" + classify + ", money=" + money
+ ", memo=" + memo + "]";
}
public String sumToString() {
return classify + " : sum = " + sumMoney;
}
}
DBConnection
package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConnection {
public static void initConnection() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("Driver Loading Success");
} catch (ClassNotFoundException e) {
System.out.println("Driver๊ฐ ์์ต๋๋ค");
}
}
public static Connection getConnection() {
Connection conn = null;
try {
conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.231:1521:xe", "hr", "hr");
System.out.println("Oracle Connection Success");
} catch (SQLException e) {
System.out.println("DB๋ฅผ ์ฐ๊ฒฐํ์ง ๋ชปํ์ต๋๋ค");
}
return conn;
}
}
DBClose
package db;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBClose {
public static void close(Connection conn, Statement stmt, ResultSet rs) {
try {
if(conn != null) {
conn.close();
}
if(stmt != null) {
stmt.close();
}
if(rs != null) {
rs.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
'๐ป ๊ฐ๋ฐ > ๐ TIL (Today I Learned)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
21.03.03 TIL(D+35 JavaScript) (0) | 2021.03.03 |
---|---|
21.03.02 TIL(D+34 JavaScript) (0) | 2021.03.02 |
21.02.19 TIL(D+28 JDBC์ ํตํ DML ๊ตฌํ) (0) | 2021.02.19 |
21.02.18 TIL (D+27 ORACLE PL/SQL) (0) | 2021.02.18 |
21.02.16 TIL (ORACLE SUB QUERY, JOIN, TABLE, DDL, DML, ๋ฌด๊ฒฐ์ฑ) (0) | 2021.02.16 |