• java_第一年_JDBC(1)


      JDBC(Java Data Base Connectivity),用于实现java语言编程与数据库连接的API。

    数据库驱动:应用程序并不能直接使用数据库,而需要通过相应的数据库驱动程序后再操作数据库;而JDBC就是实现应用程序去加载具体的驱动;

    应用程序---JDBC--->驱动程序-->数据库

    建立JDBC连接:

    • 导入JDBC包:
    import java.sql.*
    • 注册JDBC驱动程序并创建连接对象conn:
    Class.forName("com.mysql.jdbc.Driver");//加载驱动
    Connection conn = null;
    conn = DriverManager.getConnection("jdbc:mysql://hostname:port/db_name","db_username","db_password");//获取链接
    conn.close();

    这样,我们的JDBC连接即已建好。

    交互

    连接建立后,通常通过JDBC Statement、CallableStatement和PrepareStatement这3个接口进行交互。

    而创建这3种接口的方法分别是Connection类中的createStatement()、prepareStatement(sql)、prepareCall(sql)方法;除了这3种方法外,Connection类还提供了

    setAutoCommit(boolean autoCommit)方法:是否事务自动提交;

    commit()方法:提交事务;

    roolback()方法:回滚事务

    • Statement:用于使用静态SQL语句,不能接受参数;

    创建Statement对象:

    Statement stmt = null;
    try{
        stmt = conn.createStatement();               
    }catch(SQLException e){
         ...
    }finally{
         ...    
    }    

    该对象常用的方法:

    boolean execute(String SQL ):检索SQL运行后结果是否存在,有则返回true,没有则返回false;

    int executeUpdate(String SQL):检索SQL语句所影响的行数,常用于会影响多行改动的SQL语句,如INSERT、UPDATE、DELETE;

    ResultSet executeQuery(String SQL):返回运行后的结果集合,常用于SELECT;

    addBatch(String sql):把多条sql语句放到一个批处理中;

    executeBatch():批量处理一批sql语句;

    关闭Statement对象:

    finally{
        stmt.close();     
    }
    • PreparedStatement:扩展了Statement接口,可支持动态,可接受参数,参数类型只使用IN;

    创建PreparedStatement对象:

    PreparedStatement pstmt = null;
    try{
        String SQL = "Update employees SET age = ? WHERE id = ?";
        pstmt = conn.prepareStatement(SQL);
        ...        
    }catch{
        ...
    }finally{
        pstmt.close();
    }

    其中?即表示要输入的参数。通过stmt.setXXX(number,value);输入参数,其中XXX表示参数数值类型,number表示?在程序出现的位置,从1开始计数;value表示输入参数的值;

    Statement对象可用的方法都可以使用。

    • CallableStatement:相比于PreparedStatement对象,其参数类型有IN、OUT、INOUT三种;

    创建CallableStatement对象:

    CallableStatement cstmt = null;
    try{
        String strSQL = "{call getEmpName(?,?)}";
        cstmte = conn.prepareCall(SQL);
        ...
    }catch(SQLException e){
         ...  
    }finally{
         cstmt.close();
    }

    对比前面的3种方法,CallcbleStatement多了一种方法:registerOutParameter(),该方法将JDBC数据类型绑定到存储过程并返回预期数据类型。

    当调用存储过程,可以使用适当的getXXX()方法从OUT参数中检索该值。 此方法将检索到的SQL类型的值转换为对应的Java数据类型。

    Jdbc程序运行完后,切记要释放程序在运行过程中,创建的那些与数据库进行交互的对象,这些对象通常是ResultSet, Statement和Connection对象,特别是Connection对象,它是非常稀有的资源,用完后必须马上释放,如果Connection不能及时、正确的关闭,极易导致系统宕机。Connection的使用原则是尽量晚创建,尽量早的释放。
  • 相关阅读:
    7
    go http请求库HttpRequest
    Golang设计模式
    深挖 go 之 for-range 排坑指南
    go在并发情况下使用map
    Redis知识点总结
    go 条件与循环结构
    数据分析的数据源
    go 生产者消费者模型与发布订阅模型
    go 文件与目录操作
  • 原文地址:https://www.cnblogs.com/lzj-learn/p/11584487.html
Copyright © 2020-2023  润新知