반응형
이클립스에서 한번 해봤습니다.
미리 jdbc 드라이버를 설치해주고 이런 데이터베이스 연동을 실습해줘야 됩니다.
아래의 예제에 맞는 데이터베이스와 테이블이 있어야 하므로
흐름만 파악하시는데 사용하시면 될듯합니다.
package dbmanagement;
public class App {
public static void main(String[] args) {
DBManager manager = new DBManager();
manager.initDBConnect();
User[] userList = manager.allFecth();
for (int i = 0; i< userList.length; i++) {
System.out.println(userList[i].getUserId());
System.out.println(userList[i].getUserName());
System.out.println(userList[i].getHeight());
}
}
}
package dbmanagement;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBManager {
// 이것도 하는 방식을 외우자
private String driver = "com.mysql.cj.jdbc.Driver";
private String url = "jdbc:mysql://127.0.0.1:3306/cookdb?serverTimeZone=UTC";
private String id = "root";
private String pw = "1234";
// 이 변수의 객체를 사용하기 위해서는 예외처리를 반드시 하게 jdbc가 정했다.
private Connection conn = null;
private Statement stmt = null;
public DBManager() {
}
// db 연결의 초기작업을 담당한다.
public void initDBConnect() {
try {
// 클래스 이름 가져오고
Class.forName(driver);
// 연결객체를 만들어준다.
this.conn = DriverManager.getConnection(this.url, this.id, this.pw);
// 연결객체를 통해서 명령객체를 만든다
this.stmt = conn.createStatement();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
public User[] allFecth() {
int recount = this.recordCount();
User[] userList = new User[recount];
//userList의 인덱스를 조정할 변수이다.
int userCount = 0;
// 이 문자열을 쿼리로 날려준다.
String sql = "select * from usertbl";
try {
// stmt로 받아오는 결과 객체(테이블)를 rs에 저장해주고 그런 클래스가 ResultSet
ResultSet rs = stmt.executeQuery(sql);
// 테이블의 레코드 하나를 가져와 저장하고
while (rs.next()) {
// 가져온 레코드에서 get---으로 값을 하나씩 가져온다
String id = rs.getString("userid");
String username = rs.getString("username");
String birthYear = rs.getString("birthyear");
String addr = rs.getString("addr");
String mobile1 = rs.getString("mobile1");
String mobile2 = rs.getString("mobile2");
int height = rs.getInt("height");
Date mdate = rs.getDate("mdate");
userList[userCount++] = new User(id, username,birthYear, addr, mobile1, mobile2, height, mdate);
}
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
return userList;
}
public int recordCount() {
String sql = "select count(*) as cnt from usertbl";
int recount = 0;
try {
ResultSet rs = stmt.executeQuery(sql);
if (rs.next()) {
recount = rs.getInt("cnt");
}
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
return recount;
}
}
package dbmanagement;
import java.sql.Date;
import java.sql.Time;
import java.sql.Timestamp;
public class User {
private String userId;
private String userName;
private String birthYear;
private String addr;
private String mobile1;
private String mobile2;
private int height;
private Date mdate;
public User(String puserid, String puserName, String pbirthYear, String paddr, String pmobile1, String pmobile2,
int pheight, Date pmdate) {
this.userId = puserid;
this.userName = puserName;
this.birthYear = pbirthYear;
this.addr = paddr;
this.mobile1 = pmobile1;
this.mobile1 = pmobile2;
this.height = pheight;
this.mdate = pmdate;
}
public String getUserName() {
return userName;
}
public String getBirthYear() {
return birthYear;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
public String getMobile1() {
return mobile1;
}
public void setMobile1(String mobile1) {
this.mobile1 = mobile1;
}
public String getMobile2() {
return mobile2;
}
public void setMobile2(String mobile2) {
this.mobile2 = mobile2;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public Date getMdate() {
return mdate;
}
public void setMdate(Date mdate) {
this.mdate = mdate;
}
public String getUserId() {
return userId;
}
}반응형
'Study > 프로그래밍 공부' 카테고리의 다른 글
| 팀프로젝트 연습 코드(주소록) (12) | 2024.10.01 |
|---|---|
| 서블릿 구구단 연습 예제 (0) | 2024.10.01 |
| mySQL 종합실습 (기본키, 외래키 컨트롤) (3) | 2024.09.27 |
| mySQL 프로시저 함수 예제 (0) | 2024.09.25 |
| 서블릿을 활용해 구구단 출력( 단 수가 한개인 경우) (4) | 2024.09.25 |