mysql simple db ํ๋ก์ ํธ
MySQL์์ ์์ฑํ DB๋ฅผ ์ดํด๋ฆฝ์ค์ ์ฐ๊ฒฐํ์ฌ
์ง์์ ๋ณด๋ฅผ ์กฐํํ๋ ํ๋ก๊ทธ๋จ ์์ฑ
MySQL ํ ์ด๋ธ ์์ฑ ๋ฐ ์ ๋ณด insert(์ฝ์ )

insert into employee(name,dob,department) values("๊น๊ธธ๋","1991-12-12","๋ง์ผํ
");
insert into employee(name,dob,department) values("๋๋ฆฌ","1992-05-12","ํ๊ณ๋ถ");
insert into employee(name,dob,department) values("๋ผ์ด์ธ","1988-07-21","๊ฐ๋ฐ๋ถ");
insert into employee(name,dob,department) values("์ธ๋ฒ๋ฆฐ","1989-06-24","์ง์๋ถ");
select * from employee;
์ดํด๋ฆฝ์ค ์ฐ๊ฒฐ ํ ์คํธ
package webapp.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConn {
static Connection conn =null;
public static Connection getConnection(){
String url= "jdbc:mysql://localhost:3306/simpledb?useSSL=false";
String user = "root";//์ ์ ์ ์
String password = "1234";//๋น๋ฐ ๋ฒํธ
try {
conn = DriverManager.getConnection(url,user,password);
System.out.println("DB ์ฐ๊ฒฐ ์๋ฃ!");
} catch (SQLException e) {
System.out.println("DB์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.");
}
try {
conn.close();
} catch (SQLException e) {
}
return conn;
}
}
์ง์DAO ์ธํฐํ์ด์ค(์ถ์๋ฉ์๋)
package webapp.dao;
import java.util.List;
import webapp.model.Employee;
public interface EmployeeDAO {
//๋ชจ๋ ์ง์ ๋ฆฌ์คํธ ๊ฐ์ ธ์ค๊ธฐ (select)
List<Employee> get();
//id๋ก ํ๋ช
์ง์ ๊ฒ์ํด ๊ฐ์ ธ์ค๊ธฐ(select)
Employee get(int id);
//์ ์ง์์ ๋ณด ์ ์ฅํ๊ธฐ(์ ์ฅ ์ฑ๊ณต ์ true ๋ฆฌํด)
boolean save(Employee employee);
//id๋ก ํด๋น ์ง์ ์ญ์ ํ๊ธฐ(์ญ์ ์ฑ๊ณต ์ true ๋ฆฌํด)
boolean delete(int id);
//id๋ก ์ง์์
๋ฐ์ดํธ
boolean update(Employee employee);
}
์ธํฐํ์ด์ค ๊ตฌํ์ EmployeeDAOImple ํด๋์ค์์ ํ๋ค.
1) List<Employee> get()
public class EmployeeDAOImple implements EmployeeDAO{
//add un implements ํด๋ฆญ
Connection connection = null;
Statement statement = null; //์ฟผ๋ฆฌ๋ฌธ์ ์ฌ์ฉ ๊ฐ์ฒด (๋ณ์์์) // ์์ฒญ
PreparedStatement preparedStatement = null;//์ฟผ๋ฆฌ๋ฌธ์ ์ฌ์ฉ ๊ฐ์ฒด (๋ณ์๊ฐ๋ฅ)// ์์ฒญ
ResultSet resultSet = null; //DB์์ ๋์จ ๋ฐ์ดํฐ ๊ฒฐ๊ณผ ์ ์ฅ ๊ฐ์ฒด( SELECT๋ฌธ ๊ฒฐ๊ณผ)
@Override
//๋ชจ๋ ์ง์ ๋ฆฌ์คํธ ๊ฐ์ ธ์ค๊ธฐ
public List<Employee> get() {
List<Employee> list = null;//์ง์๋ฆฌ์คํธ
try {
list= new ArrayList<Employee>();
String sql = "SELECT * FROM employee";//์คํํ sql SELECT๋ฌธ
connection = DBConn.getConnection();//DB์ฐ๊ฒฐ
//statement์ connection์ด ์์ด์ผ ์ธ ์ ์์.
statement = connection.createStatement();//์ฐ๊ฒฐํ DB๊ฐ์ฒด๋ก SQL๊ฐ์ฒด ๋ง๋ค๊ธฐ
resultSet = statement.executeQuery(sql);//SQL๋ฌธ ์คํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ rsultSet์ ๋ฐ๊ธฐ
//๋ค์์ค(ํ)์ด ์์ผ๋ฉด ๊ณ์๋๋ค. ๋ค์์ค์ด ์์ผ๋ฉด(null) false๋ฐํ ํด์ ๋ฐ๋ณต๋ฌธ ์ข
๋ฃ
while(resultSet.next()) { //๋ฐ์ดํฐ๊ฐ ์ฌ๋ฌ ์ค ์ด๊ธฐ ๋๋ฌธ์ ํ์ค์ฉ ์คํํจ.
Employee emp = new Employee();//์ง์ ๊ฐ์ฒด ์์ฑ
emp.setId(resultSet.getInt("id")); //์ด์ด id์ธ ๋ฐ์ดํฐ ๊ฐ์ ์
๋ ฅ
emp.setName(resultSet.getString("name"));//์ด์ด name์ธ ๋ฐ์ดํฐ ๊ฐ ์
๋ ฅ
emp.setDepartment(resultSet.getString("department"));////์ด์ด department์ธ ๋ฐ์ดํฐ ๊ฐ ์
๋ ฅ
emp.setDob(resultSet.getString("dob"));//์ด์ด dob์ธ ๋ฐ์ดํฐ ๊ฐ ์
๋ ฅ
list.add(emp); //list์ emp์ ๊ฐ๋ค์ ๋ชจ๋ ์ถ๊ฐํ๋ค.
}
} catch (SQLException e) {
e.printStackTrace();
}
return list; //๋ชจ๋ ํ์ ์
๋ ฅํ ์ง์๋ฆฌ์คํธ ๋ฆฌํดํ๋ค.
//๋น์ฅ ํ
์คํธ ํด๋ณผ๋ ค๋ฉด ์ฝ์ํ์ฉ=> ํ
์คํธ ํจํค์ง ๋ง๋ค๊ธฐ
}
test ํด๋์ค ๋ง๋ค์ด์ List<Employee> get() ํ ์คํธํด๋ณด๊ธฐ
package test;
import java.util.List;
import webapp.model.Employee;
import webapp.model.EmployeeDAOImple;
public class TestDB {
public static void main(String[] args) {
//EmployeeDAOImple get() test
EmployeeDAOImple dao = new EmployeeDAOImple();
List<Employee> list = dao.get();
for(Employee e :list) {
System.out.println(e); //java aplication ์ผ๋ก f11์คํ
}
}
}

2) Employee get(int id)
@Override
//ํ๋ช
์ ์ง์ ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ
public Employee get(int id) {
Employee emp = null; //get() ์์ try catch ๋ณต์ฌ
try {
String sql = "SELECT * FROM employee WHERE id="+id;//์คํํ sql SELECT๋ฌธ + WHERE ์กฐ๊ฑด๋ฌธ (์ง์)
connection = DBConn.getConnection();//DB์ฐ๊ฒฐ
//statement์ connection์ด ์์ด์ผ ์ธ ์ ์์.
statement = connection.createStatement();//์ฐ๊ฒฐํ DB๊ฐ์ฒด๋ก SQL๊ฐ์ฒด ๋ง๋ค๊ธฐ
resultSet = statement.executeQuery(sql);//SQL๋ฌธ ์คํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ rsultSet์ ๋ฐ๊ธฐ
//๋ค์์ค(ํ)์ด ์์ผ๋ฉด ๊ณ์๋๋ค. ๋ค์์ค์ด ์์ผ๋ฉด(null) false๋ฐํ ํด์ ๋ฐ๋ณต๋ฌธ ์ข
๋ฃ
while(resultSet.next()) {
emp = new Employee();//์ง์ ๊ฐ์ฒด ์์ฑ
emp.setId(resultSet.getInt("id")); //์ด์ด id์ธ ๋ฐ์ดํฐ ๊ฐ์ ์
๋ ฅ
emp.setName(resultSet.getString("name"));//์ด์ด name์ธ ๋ฐ์ดํฐ ๊ฐ ์
๋ ฅ
emp.setDepartment(resultSet.getString("department"));////์ด์ด department์ธ ๋ฐ์ดํฐ ๊ฐ ์
๋ ฅ
emp.setDob(resultSet.getString("dob"));//์ด์ด dob์ธ ๋ฐ์ดํฐ ๊ฐ ์
๋ ฅ
}
} catch (SQLException e) {
e.printStackTrace();
}
return emp;
}
test


์๋ก์ด ์ง์ ์ถ๊ฐํ๊ธฐ(์ ์ฅํ๊ธฐ)
3) save(Employee emp)
@Override
//์ง์ ์ ๋ณด ์ ์ฅํ๊ธฐ
public boolean save(Employee emp) {
boolean flag = false; // ์ ์ฅ์ฑ๊ณต์ด ์๋๋ฉด ์คํจ
try {
String sql = "INSERT INTO employee(name, department, dob) VALUES(?,?,?)";
connection = DBConn.getConnection();
preparedStatement = connection.prepareStatement(sql);
//๋ณ์ ๊ฐ์ ์
๋ ฅํ ๋๋ preparedStatement ์ฌ์ฉํด์ ๋ณ์์
๋ ฅํจ.
preparedStatement.setString(1, emp.getName());//์ฒซ๋ฒ์งธ ? ์
๋ ฅ
preparedStatement.setString(2, emp.getDepartment());//๋๋ฒ์งธ ? ์
๋ ฅ
preparedStatement.setString(3, emp.getDob());//์ธ๋ฒ์งธ ? ์
๋ ฅ
preparedStatement.executeUpdate();//์
๋ ฅ,์ญ์ ,์
๋ฐ์ดํธ์ executeUpdate()๋ฆฌํด์์
flag= true;// ์
๋ ฅ์๋ฃ. ์ฑ๊ณตํจ
} catch (SQLException ex) {
ex.printStackTrace();
}
return flag;
}
test
Employee emp = new Employee();
emp.setName("๋ฌด์ง");
emp.setDepartment("๋ง์ผํ
");
emp.setDob("1998-10-21");
dao.save(emp);


์ง์ ์ญ์ ํ๊ธฐ
3) delete(int id)
@Override
//์ง์ ์ญ์ ํ๊ธฐ
public boolean delete(int id) {
boolean flag = false; // ์ญ์ ์ฑ๊ณต์ด ์๋๋ฉด ์คํจ
try {
String sql = "DELETE FROM employee WHERE id=?";
connection = DBConn.getConnection();
preparedStatement = connection.prepareStatement(sql);
//๋ณ์ ๊ฐ์ ์
๋ ฅํ ๋๋ preparedStatement ์ฌ์ฉํด์ ๋ณ์์
๋ ฅํจ.
preparedStatement.setInt(1, id);//์ฒซ๋ฒ์งธ ? ์
๋ ฅ
preparedStatement.executeUpdate();//์
๋ ฅ,์ญ์ ,์
๋ฐ์ดํธ์ executeUpdate()๋ฆฌํด์์
flag= true;// ์ญ์ ์๋ฃ.
} catch (SQLException ex) {
ex.printStackTrace();
}
return flag;
}
test
System.out.println("์ญ์ ํ๊ธฐ");
dao.delete(7);

์ง์ ์ ๋ณด ์์ ํ๊ธฐ(update)
4) update(Employee emp)
@Override
//์ง์ ์
๋ฐ์ดํธ(์์ )ํ๊ธฐ
public boolean update(Employee emp) {
boolean flag = false; // ์
๋ฐ์ดํธ ์ฑ๊ณต์ด ์๋๋ฉด ์คํจ
try {
String sql = "UPDATE employee SET name=?, department=?, dob=? WHERE id=?";
connection = DBConn.getConnection();
preparedStatement = connection.prepareStatement(sql);
//๋ณ์ ๊ฐ์ ์
๋ ฅํ ๋๋ preparedStatement ์ฌ์ฉํด์ ๋ณ์์
๋ ฅํจ.
preparedStatement.setString(1, emp.getName());//์ฒซ๋ฒ์งธ ? ์
๋ ฅ
preparedStatement.setString(2, emp.getDepartment());//๋๋ฒ์งธ ? ์
๋ ฅ
preparedStatement.setString(3, emp.getDob());//์ธ๋ฒ์งธ ? ์
๋ ฅ
preparedStatement.setInt(4, emp.getId());//๋ค๋ฒ์งธ ? ์
๋ ฅ
preparedStatement.executeUpdate();//์
๋ ฅ,์ญ์ ,์
๋ฐ์ดํธ์ executeUpdate()๋ฆฌํด์์
flag= true;// ์
๋ฐ์ดํธ ์๋ฃ.
} catch (SQLException ex) {
ex.printStackTrace();
}
return flag;
}
test
Employee emp = new Employee();
emp.setId(4);
emp.setName("์ธ๋ฒ ๋ฆฐ");
emp.setDepartment("๊ฐ๋ฐ๋ถ");
emp.setDob("1978-01-21");
dao.update(emp);

<์ ๋ฆฌ>
Connection : DB์ฐ๊ฒฐํจ
Statement : ์ฟผ๋ฆฌ๋ฌธ์ ์ฌ์ฉ ๊ฐ์ฒด (๋ณ์์์) // ์์ฒญ
PreparedStatement : ์ฟผ๋ฆฌ๋ฌธ์ ์ฌ์ฉ ๊ฐ์ฒด (๋ณ์๊ฐ๋ฅ)// ์์ฒญ -> ' ? '์ ๊ฐ ์
๋ ฅ๊ฐ๋ฅํจ.
ResultSet // DB์์ ์์ฒญํ ๋ฐ์ดํฐ ๊ฒฐ๊ณผ ์ ์ฅ ๊ฐ์ฒด( SELECT๋ฌธ์๋ง ์ฌ์ฉํ๊ณ ๋๋จธ์ง ์ฟผ๋ฆฌ๋ฌธ์๋ ์ฌ์ฉ์ํจ)
Connection -> Statement OR PreparedStatement ->ResultSet
'DB > MySQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ๋ฐ์ดํฐ๋ฒ ์ด์ค (์คํค๋ง) ํ ํ์ผ๋ก ๋ฌถ์ด ๋ด๋ณด๋ด๊ธฐ export (0) | 2023.09.27 |
|---|---|
| Simple DB ํ๋ก์ ํธ-3 (1) | 2023.09.21 |
| Simple DB ํ๋ก์ ํธ-2 (0) | 2023.09.21 |