자바 데이터베이스 연결 JDBC 기초 지식 상세 설명(조작 데이터베이스:첨삭 검사)

1.JDBC 안내
JDBC 는 자바 애플 리 케 이 션 과 데이터 베 이 스 를 연결 하 는 다리 다.
JDBC 가 뭐 예요?
자바 언어 가 데이터베이스 에 접근 하 는 규범 은 API 입 니 다.
JDBC(Java Database Connectivity)API,즉 자바 데이터베이스 프로 그래 밍 인 터 페 이 스 는 표준 자바 언어 중의 인터페이스 와 클래스 로 이러한 인터페이스 와 클래스 를 사용 하면 자바 클 라 이언 트 프로그램 은 다양한 유형의 데이터 베 이 스 를 방문 할 수 있다.예 를 들 어 데이터베이스 연결 을 구축 하고 SQL 문 구 를 실행 하여 데이터 액세스 작업 을 한다.

JDBC 는 자바 데이터베이스 연결 을 대표 합 니 다.
JDBC 라 이브 러 리 에 포 함 된 API 작업 은 보통 데이터베이스 와 사 용 됩 니 다.
  • 데이터베이스
  • 에 연결
  • SQL 또는 MySQL 문 구 를 만 듭 니 다
  • 데이터베이스 에서 SQL 또는 MySQL 조 회 를 실행 합 니 다
  • 조회 및 수정 기록
  • 예 를 들 면:

    2.JDBC 사용 에 대한 상세 한 설명
    1.데이터베이스 연결


    먼저 자바 프로젝트 를 새로 만 들 고 jar 패 키 지 를 가 져 옵 니 다:

    그리고 해당 데이터베이스 와 표를 새로 만 듭 니 다.
    DBUtil.java 작성
    
    package com.study.db;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    public class DBUtil {
    
     private static final String URL="jdbc:mysql://localhost:3306/demo_jdbc";
     private static final String NAME="root";
     private static final String PASSWORD="root";
    
     public static void main(String[] args) throws Exception{
    
     //1.      
     Class.forName("com.mysql.jdbc.Driver");
     //2.        
     Connection conn = DriverManager.getConnection(URL, NAME, PASSWORD);
     //3.             ,      
     Statement stmt = conn.createStatement();
     ResultSet rs = stmt.executeQuery("select user_name,age from imooc_goddess");//  import java.sql.ResultSet;
     while(rs.next()){//        ,        
      System.out.println(rs.getString("user_name")+","+rs.getInt("age"));
     }
     }
    }
    2.모델 층 구축

    MVC 3 층 구 조 를 사용 합 니 다.아래 에서 위로 개발 하 는 것 을 권장 합 니 다(DB->view,필요 한 것 을 읽 은 후에 데이터 베 이 스 를 설계 한 다음 에 데이터 베이스 맵 모델 에 따라 제어 층 을 쓰 고 그림 을 쓰 는 것 을 권장 합 니 다).
  • 보기 층―전시 데이터,피드백 사용자 행위
  • Control 제어 층―데이터 유통 과정 을 제어 하고 보기 층 과 데이터 층
  • 을 조율 합 니 다.
  • 모델 모델 모델 층―데이터 베이스 와 맵 을 구축 하고 데이터 와 상호작용(DB 데이터 베이스)

  • 먼저 대응 하 는 model 층 을 추가 합 니 다:데이터베이스 시트 에 대응 하 는 필드 에 따라 실체 류 를 작성 합 니 다.
    
    package com.study.model;
    
    import java.util.Date;
    
    public class Goddess {
     private Integer id;
     private String userName;
     private Integer sex;
     private Integer age;
     private Date birthday;
     private String email;
     private String mobile;
     private String createUser;
     private Date createDate;
     private String updateUser;
     private Date updateDate;
     private Integer isDel;
     public Integer getId() {
     return id;
     }
     public void setId(Integer id) {
     this.id = id;
     }
     public String getUserName() {
     return userName;
     }
     public void setUserName(String userName) {
     this.userName = userName;
     }
     public Integer getSex() {
     return sex;
     }
     public void setSex(Integer sex) {
     this.sex = sex;
     }
     public Integer getAge() {
     return age;
     }
     public void setAge(Integer age) {
     this.age = age;
     }
     public Date getBirthday() {
     return birthday;
     }
     public void setBirthday(Date birthday) {
     this.birthday = birthday;
     }
     public String getEmail() {
     return email;
     }
     public void setEmail(String email) {
     this.email = email;
     }
     public String getMobile() {
     return mobile;
     }
     public void setMobile(String mobile) {
     this.mobile = mobile;
     }
     public String getCreateUser() {
     return createUser;
     }
     public void setCreateUser(String createUser) {
     this.createUser = createUser;
     }
     public Date getCreateDate() {
     return createDate;
     }
     public void setCreateDate(Date createDate) {
     this.createDate = createDate;
     }
     public String getUpdateUser() {
     return updateUser;
     }
     public void setUpdateUser(String updateUser) {
     this.updateUser = updateUser;
     }
     public Date getUpdateDate() {
     return updateDate;
     }
     public void setUpdateDate(Date updateDate) {
     this.updateDate = updateDate;
     }
     public Integer getIsDel() {
     return isDel;
     }
     public void setIsDel(Integer isDel) {
     this.isDel = isDel;
     }
    
    }
    그리고 Dao 층 을 새로 추가 하고 DBUtil.java 를 수정 합 니 다.
    DBUtil.java 코드 는 다음 과 같 습 니 다.
    
    package com.study.db;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class DBUtil {
    
     private static final String URL="jdbc:mysql://localhost:3306/demo_jdbc";
     private static final String NAME="root";
     private static final String PASSWORD="root";
    
     private static Connection conn=null;
     //     (     、           )
     static{
     try {
      //1.      
      Class.forName("com.mysql.jdbc.Driver");
      //2.        
      conn = DriverManager.getConnection(URL, NAME, PASSWORD);
     } catch (ClassNotFoundException e) {
      e.printStackTrace();
     } catch (SQLException e) {
      e.printStackTrace();
     }
     }
     //                
     public static Connection getConnection(){
     return conn;
     }
    
     public static void main(String[] args) throws Exception{
    
     //3.             ,      
     Statement stmt = conn.createStatement();
     ResultSet rs = stmt.executeQuery("select user_name,age from imooc_goddess");//  import java.sql.ResultSet;
     while(rs.next()){//        ,        
      System.out.println(rs.getString("user_name")+","+rs.getInt("age"));
     }
     }
    }
    goddessDao.java 코드 는 다음 과 같 습 니 다:
    
    package com.study.dao;
    
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;
    
    import com.study.db.DBUtil;
    import com.study.model.Goddess;
    
    public class GoddessDao {
    
     public void addGoddess(){
    
     }
    
     public void updateGoddess(){
    
     }
     public void delGoddess(){
    
     }
    
     public List<Goddess> query() throws Exception{
     Connection con=DBUtil.getConnection();
     Statement stmt=con.createStatement();
     ResultSet rs=stmt.executeQuery("select user_name,age from imooc_goddess");
     List<Goddess> gs=new ArrayList<Goddess>();
     Goddess g=null;
     while(rs.next()){//        ,        
      g=new Goddess();
      g.setUserName(rs.getString("user_name"));
      g.setAge(rs.getInt("age"));
      gs.add(g);
     }
     return gs;
     }
    
     //      
     public Goddess get(){
     return null;
     }
    }
    컨트롤 러 층 추가:GoddessAction.java
    
    package com.study.controller;
    
    import java.util.List;
    
    import com.study.dao.GoddessDao;
    import com.study.model.Goddess;
    
    public class GoddessAction {
    
     public static void main(String[] args) throws Exception {
     GoddessDao gd=new GoddessDao();
     List<Goddess> gs=gd.query();
     for (Goddess goddess : gs) {
      System.out.println(goddess.getUserName()+","+goddess.getAge());
     }
    
     }
    
    }
    PS:CRUD:추가(Create),읽 기(Retrieve)(데이터 다시 얻 기->고급 응용 프로그램:보고서,페이지),업데이트(Update),삭제(Delete)
    3.모델 층 구축―CRUD 조작
    새로 추 가 된 create 작업:
    
    //    
     public void addGoddess(Goddess g) throws Exception{
     Connection con=DBUtil.getConnection();//          
     String sql="" +
      "insert into imooc_goddess"+
      "(user_name,sex,age,birthday,email,mobile,"+
      "create_user,create_date,update_user,update_date,isdel) "+
      "values("+
      "?,?,?,?,?,?,?,current_date(),?,current_date(),?)";//   ?  ,      ; mysql     current_date()       
     //   sql  
     PreparedStatement psmt = con.prepareStatement(sql);
     //   SQL  , SQL      
     psmt.setString(1, g.getUserName());
     psmt.setInt(2, g.getSex());
     psmt.setInt(3, g.getAge());
     //  :setDate()           java.sql.Date  ,       java.util.Date,    ,       
     psmt.setDate(4, new Date(g.getBirthday().getTime()));
     psmt.setString(5, g.getEmail());
     psmt.setString(6, g.getMobile());
     psmt.setString(7, g.getCreateUser());
     psmt.setString(8, g.getUpdateUser());
     psmt.setInt(9, g.getIsDel());
     //  SQL  
     psmt.execute();
     /**
      * prepareStatement      SQL         conn     ,        
      *       execute()          ;
      *
      *   SQL     ?  ,      ,          。
      *       ,        SQL   , SQL          。
      *              
      */
     }
    테스트:
    
    package com.study.controller;
    
    import java.util.Date;
    import java.util.List;
    
    import com.study.dao.GoddessDao;
    import com.study.model.Goddess;
    
    public class GoddessAction {
    
     public static void main(String[] args) throws Exception {
     GoddessDao gd=new GoddessDao();
     Goddess g1=new Goddess();
     g1.setUserName("  ");
     g1.setAge(22);
     g1.setSex(1);
     g1.setBirthday(new Date());
     g1.setEmail("[email protected]");
     g1.setMobile("123456789");
     g1.setCreateUser("admin");
     g1.setUpdateUser("admin");
     g1.setIsDel(1);
     //    
     gd.addGoddess(g1);
     }
    
    }
    수정,삭제,조회(id 에 따라)작업:
    
    //    
     public void updateGoddess(Goddess g) throws SQLException{
     Connection con=DBUtil.getConnection();//          
     String sql="" +
      "update imooc_goddess "+
      "set user_name=?,sex=?,age=?,birthday=?,email=?,mobile=?,"+
      "update_user=?,update_date=current_date(),isdel=?) "+
      "where id=?";//   ?  ,      ; mysql     current_date()       
     //   sql  
     PreparedStatement psmt = con.prepareStatement(sql);
     //   SQL  , SQL      
     psmt.setString(1, g.getUserName());
     psmt.setInt(2, g.getSex());
     psmt.setInt(3, g.getAge());
     //  :setDate()           java.sql.Date  ,       java.util.Date,    ,       
     psmt.setDate(4, new Date(g.getBirthday().getTime()));
     psmt.setString(5, g.getEmail());
     psmt.setString(6, g.getMobile());
     psmt.setString(7, g.getUpdateUser());
     psmt.setInt(8, g.getIsDel());
     psmt.setInt(9, g.getId());
     //  SQL  
     psmt.execute();
     }
    
    //    
     public void delGoddess(Integer id) throws SQLException{
     Connection con=DBUtil.getConnection();//          
     String sql="" +
      "delete from imooc_goddess "+
      "where id=?";//   ?  ,      ; mysql     current_date()       
     //   sql  
     PreparedStatement psmt = con.prepareStatement(sql);
     //   SQL  , SQL      
     psmt.setInt(1, id);
     //  SQL  
     psmt.execute();
     }
    
    //      (  id   )
     public Goddess get(Integer id) throws SQLException{
     Goddess g=null;
     Connection con=DBUtil.getConnection();//          
     String sql="" +
      "select * from imooc_goddess "+
      "where id=?";//   ?  ,      ; mysql     current_date()       
     //   sql  
     PreparedStatement psmt = con.prepareStatement(sql);
     //   SQL  , SQL      
     psmt.setInt(1, id);
     //  SQL  
     /*psmt.execute();*///execute()            (    、  、  );executeQuery()       
     ResultSet rs = psmt.executeQuery();//       
     //     
     while(rs.next()){
      g=new Goddess();
      g.setId(rs.getInt("id"));
      g.setUserName(rs.getString("user_name"));
      g.setAge(rs.getInt("age"));
      g.setSex(rs.getInt("sex"));
      //rs.getDate("birthday")    java.sql.Date  。  :java.sql.Date   java.util.Date     ,            。
      g.setBirthday(rs.getDate("birthday"));
      g.setEmail(rs.getString("email"));
      g.setMobile(rs.getString("mobile"));
      g.setCreateUser(rs.getString("create_user"));
      g.setCreateDate(rs.getDate("create_date"));
      g.setUpdateUser(rs.getString("update_user"));
      g.setUpdateDate(rs.getDate("update_date"));
      g.setIsDel(rs.getInt("isdel"));
     }
     return g;
     }
    검색(name\mobile 등에 따라)동작
    
    //      (          )
     public List<Goddess> get(String name,String mobile) throws SQLException{
      List<Goddess> result=new ArrayList<Goddess>();
      Connection con=DBUtil.getConnection();//          
      StringBuffer sb=new StringBuffer();
      sb.append("select * from imooc_goddess ");
      sb.append("where user_name like ? and mobile like ?");
      //   sql  
      PreparedStatement psmt = con.prepareStatement(sb.toString());
      //   SQL  , SQL      
      psmt.setString(1, "%"+name+"%");
      psmt.setString(2, "%"+mobile+"%");
      System.out.println(sb.toString());
      //  SQL  
      /*psmt.execute();*///execute()            (    、  、  );executeQuery()       
      ResultSet rs = psmt.executeQuery();//       
      Goddess g=null;
      //     
      while(rs.next()){
      g=new Goddess();
      g.setId(rs.getInt("id"));
      g.setUserName(rs.getString("user_name"));
      g.setAge(rs.getInt("age"));
      g.setSex(rs.getInt("sex"));
      //rs.getDate("birthday")    java.sql.Date  。  :java.sql.Date   java.util.Date     ,            。
      g.setBirthday(rs.getDate("birthday"));
      g.setEmail(rs.getString("email"));
      g.setMobile(rs.getString("mobile"));
      g.setCreateUser(rs.getString("create_user"));
      g.setCreateDate(rs.getDate("create_date"));
      g.setUpdateUser(rs.getString("update_user"));
      g.setUpdateDate(rs.getDate("update_date"));
      g.setIsDel(rs.getInt("isdel"));
    
      result.add(g);//         
      }
      return result;
     }
    테스트:
    
    package com.study.controller;
    
    import java.util.Date;
    import java.util.List;
    
    import com.study.dao.GoddessDao;
    import com.study.model.Goddess;
    
    public class GoddessAction {
    
     public static void main(String[] args) throws Exception {
     GoddessDao gd=new GoddessDao();
     /*//      
     List<Goddess> gs=gd.query();
     for (Goddess goddess : gs) {
      System.out.println(goddess.getUserName()+","+goddess.getAge());
     }*/
    
     Goddess g1=new Goddess();
     g1.setUserName("  ");
     g1.setAge(22);
     g1.setSex(1);
     g1.setBirthday(new Date());
     g1.setEmail("[email protected]");
     g1.setMobile("123456789");
     g1.setCreateUser("admin");
     g1.setUpdateUser("admin");
     g1.setIsDel(1);
     //    
    // gd.addGoddess(g1);
    
     //      (  id)
     /*Goddess g2 = gd.get(4);
     System.out.println(g2.toString());*/
    
     //      (       )
     List<Goddess> list = gd.get("  ", "139");
     //     
     for(int i=0;i<list.size();i++){
      System.out.println(list.get(i).toString());
     }
     }
    
    }
    실행 결과:
    select * from imooc_goddess where user_name like ? and mobile like ?
    Goddess[id=1,userName=개울,섹스=1,age=22,birthday=2000-12-12,[email protected],mobile=13911111111,createUser=ADMIN,createDate=2015-01-08,updateUser=ADMIN,updateDate=2015-01-08,isDel=0
    조회 작업 의 진일보 한 보완:
    
    //      (          )----->  Map      ;          where 1=1
      public List<Goddess> get(List<Map<String, Object>> params) throws SQLException{
       List<Goddess> result=new ArrayList<Goddess>();
       Connection con=DBUtil.getConnection();//          
       StringBuffer sb=new StringBuffer();
       sb.append("select * from imooc_goddess where 1=1 ");//  where 1=1     
       if(params !=null && params.size()>0){//         
       //    
       for(int i=0;i<params.size();i++){
        Map<String, Object> map=params.get(i);
        sb.append("and "+map.get("name")+" " +map.get("rela")+" "+map.get("value")+" ");//    ?     ?      ,            。
       }
    
       }
       //   sql  
       PreparedStatement psmt = con.prepareStatement(sb.toString());
       System.out.println(sb.toString());
       //  SQL  
       /*psmt.execute();*///execute()            (    、  、  );executeQuery()       
       ResultSet rs = psmt.executeQuery();//       
       Goddess g=null;
       //     
       while(rs.next()){
       g=new Goddess();
       g.setId(rs.getInt("id"));
       g.setUserName(rs.getString("user_name"));
       g.setAge(rs.getInt("age"));
       g.setSex(rs.getInt("sex"));
       //rs.getDate("birthday")    java.sql.Date  。  :java.sql.Date   java.util.Date     ,            。
       g.setBirthday(rs.getDate("birthday"));
       g.setEmail(rs.getString("email"));
       g.setMobile(rs.getString("mobile"));
       g.setCreateUser(rs.getString("create_user"));
       g.setCreateDate(rs.getDate("create_date"));
       g.setUpdateUser(rs.getString("update_user"));
       g.setUpdateDate(rs.getDate("update_date"));
       g.setIsDel(rs.getInt("isdel"));
    
       result.add(g);//         
       }
       return result;
      }
    테스트:
    
    //      (          )----->  Map      
     List<Map<String, Object>> params=new ArrayList<Map<String,Object>>();
     Map<String, Object> param=new HashMap<String, Object>();
     param.put("name", "user_name");
    // param.put("rela", "=");
    // param.put("value", "'  '");//       ,             
     param.put("rela", "like");
     param.put("value", "'%  %'");//       ,             
     params.add(param);
     param=new HashMap<String, Object>();
     param.put("name", "mobile");
     param.put("rela", "like");
     param.put("value", "'%139%'");
     params.add(param);
     List<Goddess> list1 = gd.get(params);
     //     
     for(int i=0;i<list1.size();i++){
      System.out.println(list1.get(i).toString());
     }
    실행 결과:
    select * from imooc_goddess where 1=1 and user_name like'%개울%'and mobile like'%139%'
    Goddess[id=1,userName=개울,섹스=1,age=22,birthday=2000-12-12,[email protected],mobile=13911111111,createUser=ADMIN,createDate=2015-01-08,updateUser=ADMIN,updateDate=2015-01-08,isDel=0
    이 검색 의 하 이 라 이 트 는 get(Listparams)과 where 1=1 을 사용 하 는 것 입 니 다.
    jdbc 전송 매개 변수 가 너무 많 을 때:Listparams 쌍 범 형 을 매개 변수 로 합 니 다.
    우리 가 조회 하 는 모든 조건 은 하나의 키 값 이다.키 가 맞 는 데이터 구 조 는 맵 입 니 다.
    그 다음 에 조회 조건 이 여러 개 일 수 있 고 수량 이 확실 하지 않 기 때문에 List 를 사용 하 는 것 이 좋 기 때문에 List와 같은 데이터 구조 가 될 것 입 니 다.
    위 에서 where 1=1 을 사용 하 는 이 유 는 주로 아래 의 문장 이 바로 하나의 and 를 따 르 기 때문이다.SQL 문 뒤에 where 를 따라 가 야 하지만 where 뒤에 문구 가 있 는 지 확인 되 지 않 으 면 1=1 을 더 해서 문법 이 틀 리 지 않도록 해 야 합 니 다.
    일반적으로 동적 SQL 문 구 를 구성 하 는 데 사용 되 며,"SELECT...FROM...WHERE 1=1"+동적 구조 조건 자구.
    4.제어 층 구축
    제어 층 은 교량 의 역할 을 하여 모형 층 과 시각 층 을 연결한다.
    
    package com.study.controller;
    
    import java.util.List;
    import java.util.Map;
    
    import com.study.dao.GoddessDao;
    import com.study.model.Goddess;
    
    public class GoddessAction1 {
    
     //    
     public void add(Goddess goddess) throws Exception{
     GoddessDao dao=new GoddessDao();
     goddess.setSex(1);
     goddess.setIsDel(0);
     dao.addGoddess(goddess);
     }
    
     //    
     public void edit(Goddess goddess) throws Exception{
     GoddessDao dao=new GoddessDao();
     dao.updateGoddess(goddess);
     }
    
     //    
     public void del(Integer id) throws Exception{
     GoddessDao dao=new GoddessDao();
     dao.delGoddess(id);
     }
    
     //        
     public List<Goddess> query() throws Exception{
     GoddessDao dao=new GoddessDao();
     return dao.query();
     }
    
     //        (  id)
     public Goddess get(Integer id) throws Exception{
     GoddessDao dao=new GoddessDao();
     return dao.get(id);
     }
    
     //        (       )
     public List<Goddess> get(List<Map<String, Object>> params) throws Exception{
     GoddessDao dao=new GoddessDao();
     return dao.get(params);
     }
    }
    5.시각 층 구축

    코드 인 스 턴 스:
    
    package com.study.view;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.List;
    import java.util.Scanner;
    
    import com.study.controller.GoddessAction1;
    import com.study.model.Goddess;
    
    public class View {
    
     //   
     private static final String CONTEXT="        :
    " + " :
    " + "[MAIN/M]:
    " + "[QUERY/Q]:
    " + "[GET/G]:
    " + "[ADD/A]:
    " + "[UPDATE/U]:
    " + "[DELETE/D]:
    " + "[SEARCH/S]: ( 、 )
    " + "[EXIT/E]:
    " + "[BREAK/B]: , "; // private static final String OPERATION_MAIN="MAIN"; private static final String OPERATION_QUERY="QUERY"; private static final String OPERATION_GET="GET"; private static final String OPERATION_ADD="ADD"; private static final String OPERATION_UPDATE="UPDATE"; private static final String OPERATION_DELETE="DELETE"; private static final String OPERATION_SEARCH="SEARCH"; private static final String OPERATION_EXIT="EXIT"; private static final String OPERATION_BREAK="BREAK"; public static void main(String[] args) { // System.out.println(CONTEXT); // :while(true){} Scanner scanner=new Scanner(System.in);// Goddess goddess=new Goddess(); GoddessAction1 action=new GoddessAction1(); String prenious=null;// , Integer step=1;// while(scanner.hasNext()){//scanner.hasNext() , String in=scanner.next().toString(); if(OPERATION_EXIT.equals(in.toUpperCase()) || OPERATION_EXIT.substring(0, 1).equals(in.toUpperCase())){ System.out.println(" 。"); break;// while }else if(OPERATION_QUERY.equals(in.toUpperCase()) ||OPERATION_QUERY.substring(0, 1).equals(in.toUpperCase())){ try { List<Goddess> list=action.query(); for (Goddess go : list) { System.out.println(go.getId()+", :"+go.getUserName()); } } catch (Exception e) { e.printStackTrace(); } }else if(OPERATION_ADD.equals(in.toUpperCase()) || OPERATION_ADD.substring(0, 1).equals(in.toUpperCase()) || OPERATION_ADD.equals(prenious)){ prenious=OPERATION_ADD; // if(1==step){// System.out.println(" [ ]"); }else if(2==step){ goddess.setUserName(in); System.out.println(" [ ]"); }else if(3==step){ goddess.setAge(Integer.valueOf(in));//string int System.out.println(" [ ], :yyyy-MM-dd"); }else if(4==step){ SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd"); Date birthday=null; try { birthday = sf.parse(in); goddess.setBirthday(birthday); System.out.println(" [ ]"); } catch (ParseException e) { e.printStackTrace(); System.out.println(" , "); step=3; } }else if(5==step){ goddess.setEmail(in); System.out.println(" [ ]"); }else if(6==step){ goddess.setMobile(in); try { action.add(goddess); System.out.println(" "); } catch (Exception e) { e.printStackTrace(); System.out.println(" "); } } if(OPERATION_ADD.equals(prenious)){ step++; } }else{ System.out.println(" :"+in); } } } }
    실행 결과:

    3.JDBC 총화
    1.JDBC 의 기본 개념:JDBC 는 데이터 베 이 스 를 연결 하 는 다리 이다.
    자바 언어 로 작 성 된 클래스 와 인터페이스 로 구성 되 어 있 으 며 다양한 데이터 베 이 스 를 통일 적 으로 접근 할 수 있 습 니 다.
    2.MVC 3 층 구 조 를 사용한다.
    DB(데이터베이스),Model(모델 층),Control(제어 층),View(보기 층)
    모형 층(DB+DAO):구현 클래스 를 봉 인 했 습 니 다.
    제어 층:모델 층 호출 담당
    보기 층 호출 제어 층
    3.JDBC 의 각종 연결 방식 에 대한 비교:
    1.JDBC+ODBC 브리지 방식.특징:데이터베이스 가 필요 한 ODBC 드라이브,마이크로소프트 시스템 에 만 적용
    이 방식 으로 JDBC 는 ODBC 에 전 달 된 후 ODBC 는 로 컬 데이터베이스 드라이버 를 호출 합 니 다.
    2.JDBC+제조 업 체 API 의 형식.특징:제조 업 체 API 는 일반적으로 C 로 작 성 됩 니 다.
    이 방식 으로 JDBC 는 제조 업 체 API 에 직접 전달 되 는 서 비 스 를 호출 한 후 로 컬 데이터베이스 구동 을 호출 합 니 다.
    3.JDBC+제조 업 체 Database Connection Server+DataBase 의 형식.
    특징:JAVA 와 DATABASE 사이 에 데이터베이스 연결 을 위 한 서버 를 설치 하 였 습 니 다(일반적으로 데이터베이스 업 체 가 제공 합 니 다)
    이런 방식 으로 JDBC 는 호출 을 중간 서버 에 전달 하고 중간 서버 는 호출 을 데이터베이스 가 호출 될 수 있 는 형식 으로 변환 하여 데이터베이스 서버 를 호출 한다.중간 에 데이터베이스 서버 를 증설 하면 효율 을 높 일 수 있 지만 데이터 베 이 스 를 직접 조작 하 는 것 이 편리 하 다.
    4.JDBC+DATABASE 의 연결 방식.
    특징:이 로 인해 응용 프로그램 과 데이터 베 이 스 를 분리 시 키 고 개발 자 는 내부 논리의 실현 에 만 관심 을 가 져 야 하 며 데이터 베이스 연결 의 구체 적 인 실현 을 중시 하지 않 아 도 된다.중간 코너 없 이 추천 방식!)
    자바 데이터 베 이 스 를 JDBC 에 연결 하 는 데 관 한 기초 지식(조작 데이터베이스:추가 삭제 및 검사)에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 자바 데이터 베 이 스 를 JDBC 에 연결 하 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 우 리 를 많이 지지 해 주시 기 바 랍 니 다!

    좋은 웹페이지 즐겨찾기