JDBC의 실행[기초]

33166 단어 JavaMySQLjdbctech
MySQL 및 Eclipse를 사용하여 데이터베이스 연결 처리를 수행합니다.

SQL


데이터베이스 데이터에는 다음과 같은 SQL이 사용됩니다.
이 함모의 정보를 좋아하니까.
create database if not exists demo;

use demo;

drop table if exists kanmusu;

CREATE TABLE `kanmusu` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(64) DEFAULT NULL,
`ship_classification` varchar(64) DEFAULT NULL,
`abbreviations` varchar(64) DEFAULT NULL,
`sister` varchar(64) DEFAULT NULL,
`level` INT(3) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

INSERT INTO `kanmusu` (`id`, `name`, `ship_classification`, `abbreviations`, `sister`, `level`) VALUES (1, 'Hamakaze', 'Destroyer', 'DD', 'Urakaze', 153);
INSERT INTO `kanmusu` (`id`, `name`, `ship_classification`, `abbreviations`, `sister`, `level`) VALUES (2, 'Kitakami', 'Light Cruiser', 'CL', 'Oi', 133);
INSERT INTO `kanmusu` (`id`, `name`, `ship_classification`, `abbreviations`, `sister`, `level`) VALUES (3, 'Abukuma', 'Light Cruiser', 'CL', 'Nagara', 133);

INSERT INTO `kanmusu` (`id`, `name`, `ship_classification`, `abbreviations`, `sister`, `level`) VALUES (4, 'Shimakaze', 'Destroyer', 'DD', NULL, 131);
INSERT INTO `kanmusu` (`id`, `name`, `ship_classification`, `abbreviations`, `sister`, `level`) VALUES (5, 'Zuikaku', 'Aircraft Carrier', 'CV', 'Shoukaku', 130);
INSERT INTO `kanmusu` (`id`, `name`, `ship_classification`, `abbreviations`, `sister`, `level`) VALUES (6, 'Shoukaku', 'Aircraft Carrier', 'CV', 'Zuikaku', 129);

INSERT INTO `kanmusu` (`id`, `name`, `ship_classification`, `abbreviations`, `sister`, `level`) VALUES (7, 'Tone', 'Flying-Deck Cruiser', 'CF', 'Chikuma', 127);
INSERT INTO `kanmusu` (`id`, `name`, `ship_classification`, `abbreviations`, `sister`, `level`) VALUES (8, 'Maya', 'Heavy Cruise', 'CA', 'Choukai', 125);
INSERT INTO `kanmusu` (`id`, `name`, `ship_classification`, `abbreviations`, `sister`, `level`) VALUES (9, 'Husou', 'Battleship', 'BB', 'Yamashiro', 122);

INSERT INTO `kanmusu` (`id`, `name`, `ship_classification`, `abbreviations`, `sister`, `level`) VALUES (10, 'Musashi', 'Battleship', 'BB', 'Yamato', 122);
INSERT INTO `kanmusu` (`id`, `name`, `ship_classification`, `abbreviations`, `sister`, `level`) VALUES (11, 'Ise', 'Battleship', 'BB', 'Hyuga', 121);
INSERT INTO `kanmusu` (`id`, `name`, `ship_classification`, `abbreviations`, `sister`, `level`) VALUES (12, 'Saratoga', 'Aircraft Carrier', 'CV', 'Lexington', 121);
MySQL Workbench를 사용하여 새 사용자를 만들고 ↑의 SQL을 읽습니다.
그런 다음 다음 다음 SQL을 실행하여 제대로 표시되는지 확인합니다.
SELECT * FROM demo.kanmusu
이렇게 되면 오케이.

Eclipse에서 데이터베이스로 연결


Eclipse에서 JDBC를 사용하기 위해 MySQL 연결기를 Eclipse에 불러옵니다.
단계는 다음과 같다.
  • 페이지https://www.mysql.com/jp/products/connector/에서 JDBC Driverfor MySQL(Connector/J) 다운로드 선택
  • Select Operating System에서 Plateform Independent
  • 선택
  • Plateform Independent(Archiitecture Independent), ZIP Archeive 다운로드
  • 를 클릭한다.
  • 다음 페이지에는 로그인하지 않아도 되므로 아래 Nothanks, just start my download.
  • 다운로드 후 zip 해제
  • 파일 내의 mysoql-connector-java-XXX
  • 복사
  • Eclipse가 제작한 프로젝트에 복사본을 붙여넣기
  • Add JARs에서 이전 JAR 파일을 프로젝트에 추가

  • 이것으로 끝낼 준비를 하다.

    Java 코드


    import java.sql.*;
    
    public class JdbcTest {
    
    	public static void main(String[] args) throws SQLException {
    
    		Connection myConn = null;
    		Statement myStmt = null;
    		ResultSet myRs = null;
    
    		String dbUrl = "jdbc:mysql://localhost:3306/demo";
    		String user = "student";
    		String pass = "studentpassword";
    
    		try {
    			// 1. データベースに接続する
    			myConn = DriverManager.getConnection(dbUrl, user, pass);
    
    			// 2. ステートメントを作る
    			myStmt = myConn.createStatement();
    
    			// 3. SQLクエリを実行する
    			myRs = myStmt.executeQuery("select * from kanmusu");
    
    			// 4. リザルトセットを処理する
    			while (myRs.next()) {
    				System.out.println(myRs.getString("name") + " is Lv. " + myRs.getString("level")); // 行からデータを取得
    			}
    		} catch (Exception exc) {
    			exc.printStackTrace();
    		} finally {
    			if (myRs != null) {
    				myRs.close(); // 利用しなくなったデータベースへの接続を切断する
    			}
    
    			if (myStmt != null) {
    				myStmt.close();
    			}
    
    			if (myConn != null) {
    				myConn.close();
    			}
    		}
    	}
    
    }
    
    집행 후 이렇게 됩니다.
    Hamakaze is Lv. 153
    Kitakami is Lv. 133
    Abukuma is Lv. 133
    Shimakaze is Lv. 131
    Zuikaku is Lv. 130
    Shoukaku is Lv. 129
    Tone is Lv. 127
    Maya is Lv. 125
    Husou is Lv. 122
    Musashi is Lv. 122
    Ise is Lv. 121
    Saratoga is Lv. 121
    

    참고 자료

  • next() 방법
    https://www.atmarkit.co.jp/ait/articles/0107/11/news001.html
  • printStackTrace 정보
    https://itsakura.com/java_printstacktrace
  • 좋은 웹페이지 즐겨찾기