Java JDBC 연결 및 사용
JDBC
수입 운전자
// JAR은 패키지 클래스 파일 세트이며 다른 프로젝트를 참조 할 수 있습니다.
// 빌드 경로에서 외부 항아리를 가져옵니다
JDBC에 연결하십시오
1. 드라이버를로드하십시오
class.from ( "com.mysql.jdbc.driver");
연결을 만듭니다
// 가이드 패키지는 java.sql.*를 사용합니다. 문자열 jdbc = "jdbc : mysql : // localhost : 3306/student? user = root & password = & charac
2. 데이터베이스가 열린 후에는 데이터베이스를 닫아야합니다.
conn.close ();
1. SQL 문을 실행합니다 (테이블 작성, 삽입, 삭제, 업데이트)
정상 사용
statemant st = conn.createstatemant (); int row = st.ExecuteUpdate (SQL 문); // 쿼리 작업을 수행 할 수 없습니다.
준비 사용
사용할 수 있습니까? 자리 표시자는 전달 해야하는 매개 변수를 교체 할 수 있습니다
문자열 sql = "" + tablemename + "(이름, 주제, 점수) 값 (?,?,?)에 삽입"; reparestatement pt = conn.preparestatement (sql); // 각 자리 표시 자의 값을 설정하고 첨자는 1 Pt.SetString (1, score.getName ())에서 시작합니다. Pt.SetString (2.score.getSubject ()); pt.setDouble (3, score.getScore ()); // 매개 변수가없는 메소드를 사용하여 pt.executeUpdate ();
1. 쿼리 작업
정적 목록 <Score> QueryScore (Connection PCONN, SCORE PSCORE) SQLEXCEPTION 던지기 {ArrayList <Score> MLIST = New ArrayList <> (); 문자열 sql = "select * from" + tablemename + "where name =?"; preparedstatement ps = pconn.preparestatement (SQL); ps.SetString (1, pscore.getName ()); resultSet rs = ps.ExecuteQuery (); while (rs.next ()) {// 여기에서 rs 문자열 주제 = rs.getString ( "subject")을 통해 모든 결과를 얻을 수 있습니다. int id = rs.getint ( "id"); 이중 점수 = rs.getDouble ( "점수"); mlist.add (new score (id, pscore.getname (), 주제, 점수)); } 반환 mlist; }여기 작은 프로그램이 있습니다
// 데이터베이스 연결 클래스 만들기 공개 클래스 DAO {// 데이터베이스 링크 주소 주소 정적 문자열 jdbc = "jdbc : mysql : // localhost : 3306/student? user = root & password = & characterEncoding = utf-8"; // 링크를 엽니 다 public static connection connection () {// jdbc를 사용하는 단계 // 1. jdbc 드라이버를로드하십시오 {// 클래스 클래스 이름 클래스의 전체 이름 + 클래스 이름 class.forname ( "com.mysql.jdbc.driver"); // 2. 데이터베이스 연결에 연결 Conn = DriverManager.getConnection (JDBC); CONN을 반환; } catch (예외 e) {System.out.println ( "드라이버로드 실패"); 널 리턴; }}} // 스코어 클래스 공개 클래스 점수 {문자열 이름; 문자열 ID; 문자열 주제; 이중 점수; 공개 점수 (문자열 이름, 문자열 주제, 이중 점수) {super (); this.name = 이름; this.subject = 주제; this.score = score; } @override public String toString () {return "score [name =" + name + ", id =" + id + ", gourde =" + aversity + ", score =" + score + "]"; } public score (문자열 이름, 문자열 ID, 문자열 주제, 이중 점수) {super (); this.name = 이름; this.id = id; this.subject = 주제; this.score = score; } public String getName () {return name; } public void setName (문자열 이름) {this.name = 이름; } public String getId () {return id; } public void setId (String id) {this.id = id; } public string getSubject () {return subject; } public void setSubject (문자열 주제) {this.subject = subject; } public double getScore () {반환 점수; } public void setScore (이중 점수) {this.score = score; }} // 구현 클래스 공개 클래스 테스트 {public static string tabename = "score"; public static void main (String [] args) {try {Connection Conn = dao.connection (); if (conn! = null) {System.out.println ( "Linked"); // CreateTable (Conn); // 레코드 삽입 // 점수 점수 = 새로운 점수 ( "li si", "Android", 98); // system.out.println (addScore2 (conn, score)); // deletescore (conn, score); // 업데이트 코어 (Conn, Score); List <Score> list = QueryScorebyName (Conn, "Wang Wu"); // QueryAllScore (Conn); for (점수 점수 : list) {system.out.println (score); } conn.close (); } else {system.out.println ( "링크 실패"); }} catch (sqlexception e) {e.printstacktrace (); }} // 테이블 만들기 공개 정적 부울 createTable (Connection Conn) {// SQL 문 문자열 실행 시작 SQL = "테이블 작성" + tableName + "(ID 정수 기본 키 AUTO_INCREMENT, NAME VARCHAR (3) NULL, VARCHAR (20)가 NULL, 점수를 두 배로 늘립니다." // 명령문을 실행하려면 실행 된 클래스가 실행해야합니다. 명령문 시도 {station st = conn.createstatement (); int result = st.ExecuteUpdate (SQL); System.out.println (결과); if (result! = -1) true를 반환합니다. } catch (sqlexception e) {e.printstacktrace (); } false를 반환합니다. } // 레코드 추가 공개 정적 부울 AddScore (Connection Conn, Score 점수)는 sqlexception {String sql = "insert에" + tablename + "(이름, 제목, 점수) 값 ( '" + score.getName () + "', 'insert in in instrows in insert in in insert에 삽입합니다.' + score.getSubject () +" ', " + score.getScore () +"; System.out.println (SQL); Statement st = conn.createstatement (); int row = st.ExecuteUpdate (SQL); if (row> 0) true를 반환합니다. 거짓을 반환합니다. } // 레코드 추가 2 public static boolean addscore2 (연결, 점수 점수) sqlexception {// 자리 표시 자? string이 필요한 매개 변수를 교체하려면 string sql = "삽입" + tablemename + "(이름, 주제, 점수) 값 (?,?,?)"; preparedstatement ps = conn.preparestatement (SQL); // 주어져야합니까? ps.SetString (1, score.getName ())로 표시되는 값; ps.SetString (2, score.getSubject ()); ps.setdouble (3, score.getScore ()); // 매개 변수없이 메소드를 호출 int row = ps.ExecuteUpdate (); if (row> 0) true를 반환합니다. 거짓을 반환합니다. } public static boolean deletescore (Connection Conn, Score 점수) sqlexception {string sql = "from" + tablemename + "where name =? and giver =?"; // 준비 제조 준비를 생성 PS = Conn.preparestatement (SQL); ps.SetString (1, score.getName ()); ps.SetString (2, score.getSubject ()); // ps.setDouble (3, score.getScore ()); // int row = ps.ExecuteUpdate (); System.out.println (행); if (row> 0) true를 반환합니다. 거짓을 반환합니다. } public static boolean updatescore (연결, 점수 점수) sqlexception 던지기 {// 그의 주제에 대한 점수를 수정하십시오 string string string sql = "update" + tablemename + "set score =? preparedstatement ps = conn.preparestatement (SQL); ps.setdouble (1, score.getScore ()); ps.SetString (2, score.getName ()); ps.SetString (3, score.getSubject ()); int row = ps.ExecuteUpdate (); System.out.println (행); if (row> 0) true를 반환합니다. 거짓을 반환합니다. } public static list <Score> QueryAllScore (Connection Conn)는 sqlexception {String sql = "select * from" + tableName; // 시작 쿼리 문 st = conn.createstatement (); resultSet rs = st.ExecuteQuery (SQL); List <Score> List = New ArrayList <Score> (); while (rs.next ()) {// 여기에서 rs string id = rs.getstring ( "id")을 통해 모든 결과를 얻을 수 있습니다. 문자열 이름 = rs.getString ( "name"); 문자열 주제 = rs.getString ( "주제"); 이중 점수 = rs.getDouble ( "점수"); list.add (새 점수 (이름, id, 주제, 스코어)); } // 끝 리턴 목록; } public static list <Score> QueryScoreByName (Connection Conn, String Name)은 sqlexception {string sql = "select * from" + tableName + "where name =?"; preparedstatement pt = conn.preparestatement (SQL); Pt.SetString (1, name); resultet rs = pt.executeQuery (); List <Score> List = New ArrayList <> (); while (rs.next ()) {문자열 주제 = rs.getString ( "subject"); 문자열 id = rs.getString ( "id"); 이중 점수 = rs.getDouble ( "점수"); list.add (새 점수 (이름, id, 주제, 스코어)); } 반환 목록; }