꾸준히 안타치기
JDBC 본문
반응형
JDBC란? 자바에서 DB를 연결해 사용하기 위해서 필요함
Java Database Connectivity의 약자로써 Java에서 데이터베이스를 접속할 수 있게 해주는 Java API입니다.
JDBC 프로그래밍 코딩 순서
1. JDBC드라이브 로드
2.DB연결
3DB에 데이터를 읽거나 쓰기(SQL문)
4.DB 연결종료
JDBC 드라이버
- DBMS와 통신을 담당하는 자바 클래스
- DMBS 별로 알맞은 JDBC 드라이버 필요 (jar)
- 로딩코드 : Class.forName(“JDBC드라이버 이름”);
• MySQL : com.mysql.jdbc.Driver
• 오라클 : oracle.jdbc.driver.OracleDriver
• MSSQL : com.microsoft.sqlserver.jdbc.SQLServerDriver
JDBC URL
- DBMS와의 연결을 위한 식별 값
- JDBC 드라이버에 따라 형식이 다름
- 구성 : jdbc:[DBMS]:[데이터베이스식별자]
• MySQL : jdbc:mysql://HOST[:PORT]/DBNAME[?param=value¶m1=value2&..]
• Oracle: jdbc:oracle:thin:@HOST:PORT:SID
• MS SQL : jdbc:sqlserver://HOST[:PORT];databaseName=DB
DB 연결 생성
설치 연동하는 법
https://whitepaek.tistory.com/18
JDBC 사용법
insert
import com.mysql.cj.xdevapi.PreparableStatement;
import java.sql.*;
// insert
public class Program2 {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
Connection con = null;
String server = "X.XX.XX.XX"; // MySQL 서버 주소
String database = "testDB"; // MySQL DATABASE 이름
String user_name = ""; // MySQL 서버 아이디
String password = ""; // MySQL 서버 비밀번호
// 입력하는 값
String userID = "JAVASOCKET";
String postIdx = "11111";
// insert문
String sql = " INSERT INTO bookMark(userID, postIdx) VALUES(?,?)";
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://" + server + "/" + database + "?useSSL=false", user_name, password);
System.out.println("정상적으로 연결되었습니다.");
//Statement st = con.createStatement();
// select
// select에만 resultset 이고, insert,update,deletesms에는 executeUpdate()를 사용한다.
// st.close();
PreparedStatement st = con.prepareStatement(sql);
st.setString(1,userID);
st.setString(2,postIdx);
int result = st.executeUpdate();
System.out.println(result);
}
}
select
import java.sql.*;
// select
public class Program {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
Connection con = null;
String server = "X.X.XX.XX"; // MySQL 서버 주소
String database = "DB"; // MySQL DATABASE 이름
String user_name = ""; // MySQL 서버 아이디
String password = ""; // MySQL 서버 비밀번호
// 북마크 테이블 조회하기
String sql = "SELECT* FROM bookMark";
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://" + server + "/" + database + "?useSSL=false", user_name, password);
System.out.println("정상적으로 연결되었습니다.");
Statement st = con.createStatement();
// select
// select에만 resultset 이고, insert,update,deletesms Update
ResultSet rs = st.executeQuery(sql);
// 다음 내용이 있으면, 모두 조회 반복
while(rs.next()) {
String bookIdx = rs.getString("bookIdx");
String userID =rs.getString("userID");
String postIdx =rs.getString("postIdx");
String date = rs.getString("date");
System.out.printf("bookIdx:%s \n,userID:%s \n,postIdx:%s \n,date:%s \n",bookIdx,userID,postIdx,date);
}
rs.close();
st.close();
}
}
참조자료
뉴렉처
소켓 + JDBC
반응형
'Android _ 서버연동_채팅 > Android - study' 카테고리의 다른 글
Service (0) | 2021.09.29 |
---|---|
채팅방 구조 참고 / 당근마켓, ERD 설계 (0) | 2021.09.27 |
소켓 통신을 이용한 안드로이드 채팅 애플리케이션 / (0) | 2021.09.22 |
TCP/IP 채팅예제 / Android / 채팅방법 (0) | 2021.09.20 |
레트로핏 사용법 (0) | 2021.08.30 |
Comments