Java连接数据库

来源:互联网 发布:三分屏录制软件 编辑:程序博客网 时间:2024/05/29 03:08
  •   先介绍下连接数据库的几个步骤:
  •                步骤一:根据应用程序所用的的数据库,选择JDBC的驱动程序类型。
  •          步骤二:连接到数据库,得到Connection对象。
  •          步骤三:通过Connection对象创建Statement对象。
  •          步骤四:使用Statement对象提交SQL语句。
  •          步骤五:操作结果集。
  •          步骤六:回收数据库资源。    
  •     1.加载JDBC驱动程序:         通过java.lang.Class类的静态方法forName(String className)实现。       Class.forName(com.mysql.jdbc.Driver);(异常自动添加或异常抛出都ok)
  •                    成功加载后,会将Driver类的实例注册到DriverManager类中
  •                     2.提供JDBC连接的URL:
  •                                       连接的URL定义了连接数据时的协议,子协议,数据源标识。
  •                                      书写形式:协议:子协议:数据源标识。
  •                                      协议:在JDBC中总是以jbbc开始
  •                                      子协议:是桥连接的驱动程序或是数据库管理系统名称
  •                                      数据源标识:标记找到数据库来源的地址与连接端口。
  •                              
    • 例如:(MySql的连接URL)(?问号后面是传的参数)  
    •    jdbc:mysql:   
    •         //localhost:3306/test?useUnicode=true&characterEncoding=gbk ;   
    •    useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为   
    •    gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。  
          
  •       3.创建数据库连接。
  •      连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,该对象就代表一个数据库连接。
  •      使用DriverManager的getConnection(String url,String username,String password)方法传入指定想要连接的数据库的路径,数据库的用户名
  •     和密码来获的。

                DriverManager.getConnection(jdbc:mysql://localhost:3306/testroot, 123) ; 

         4创建一个Statement

                 要执行Sql语句,必须获得java.aql.Statement实例,

                PreparedStatement pstmt = con.prepareStatement(sql) ;
  •    5.执行SQL语句。
  •       Statement接口提供了3种执行sql语句的方法:executeQuery ,executeUpdate , execute 。
    • 1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句   
    • ,返回一个结果集(ResultSet)对象。   
    • 2int executeUpdate(String sqlString):用于执行INSERT、UPDATE或   
    • DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等   
    • 3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的   
    • 语句。   
    •    具体实现的代码:   
    •           ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;   
    •     int rows = stmt.executeUpdate("INSERT INTO ...") ;   
    •     boolean flag = stmt.execute(String sql) ;  

       6处理结果集:(两种情况)

              1执行更新返回的是本次操作影响到的记录数。

              2执行查询返回的结果是一个ResultSet对象

    • • ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些   
    •  行中数据的访问。   
    •  • 使用结果集(ResultSet)对象的访问方法获取数据:   
    •      while(rs.next()){   
    •          String name = rs.getString("name") ;   
    •     String pass = rs.getString(1) ; // 此方法比较高效   
    •      }   
    •     (列是从左到右编号的,并且从列1开始)  

    7关闭JDBC对象:


     

    •  操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声   
    •      明顺序相反:   
    •      1、关闭记录集   
    •      2、关闭声明   
    •      3、关闭连接对象   
    •           if(rs != null){   // 关闭记录集   
    •         try{   
    •             rs.close() ;   
    •         }catch(SQLException e){   
    •             e.printStackTrace() ;   
    •         }   
    •           }   
    •           if(stmt != null){   // 关闭声明   
    •         try{   
    •             stmt.close() ;   
    •         }catch(SQLException e){   
    •             e.printStackTrace() ;   
    •         }   
    •           }   
    •           if(conn != null){  // 关闭连接对象   
    •          try{   
    •             conn.close() ;   

             }catch(SQLException e){               e.printStackTrace() ;            }             }




     



0 0