NOT NULL
은 무조건 값을 할당해줘야하고, DEFAULT NULL
은 선택 사항
FOREIGN KEY
을 이용해서 테이블을 연결할 수 있음
CONSTRAINT 제약조건명 FOREIGN KEY (필드이름) REFERENCES 테이블이름 (필드이름)
주석을 달 때는 '--' 입력후 띄어쓰기 필수
CREATE TABLE Account(
aid BIGINT PRIMARY KEY AUTO_INCREMENT,
accountNum VARCHAR(11) NOT NULL, -- 111-11-1111
balance DOUBLE NOT NULL DEFAULT 0.0,
interestRate DOUBLE NOT NULL DEFAULT 0.0,
overdraft DOUBLE NOT NULL DEFAULT 0.0,
accountType CHAR(1) NOT NULL DEFAULT 'S',
customerId BIGINT NOT NULL,
regDate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT Account_customerId_FK FOREIGN KEY (customerId) REFERENCES Customer(cid)
// 전에 만들었던 Customer의 cid 값을 필수로 요구한다는 의미
)AUTO_INCREMENT = 3001;
INSERT INTO Account (accountNum, balance, interestRate, overdraft, accountType, customerId) VALUES ('111-11-1111', '100', '1', '1000', 'A', '1001');
INSERT INTO Account (accountNum, balance, interestRate, overdraft, accountType, customerId) VALUES ('222-22-2222', '200', '2', '2000', 'B', '1002');
INSERT INTO Account (accountNum, balance, interestRate, overdraft, accountType, customerId) VALUES ('333-33-3333', '300', '3', '3000', 'C', '1003');
SELECT * FROM Account;
이클립스를 통해 데이터베이스와 자바를 연동하는 방법
여러개의 예외를 하나로 통일하고 싶다면 Exception
으로 변경하면 됨
문자열로 SQL에 전달함
package com.varxyz.jv250.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class JDBCExample {
public static void main(String[] args) {
String driver = "com.mysql.cj.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/jv250?serverTimezone=Asia/Seoul";
String id = "jv250";
String passwd = "jv250";
try {
Class.forName(driver); // 드라이버 연결
System.out.println("LOADED DRIVER --->" + driver);
Connection con = DriverManager.getConnection(url, id, passwd); // DB와 연결
System.out.println("CONNECTED TO --->" + url);
String sql = "SELECT * FROM Customer WHERE name='유비'"; // 해당 문자열을 DB에 전달할 SQL메소드
Statement stmt = con.createStatement(); //
ResultSet rs = stmt.executeQuery(sql); // rs에 저장
while (rs.next()) { // 해당 테이블에서 데이터를 찾으면 true, 없으면 false
long cid = rs.getLong("cid");
String customerId = rs.getString("customerId"); // 테이블에 해당 값을 받아옴
String name = rs.getString("name");
String phone = rs.getString("phone");
System.out.println(cid);
System.out.println(customerId);
System.out.println(name);
System.out.println(phone);
System.out.println("-------------------");
}
rs.close(); // 열었다면 반드시 닫아줘야함 (반대순서로)
stmt.close();
con.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}