JDBC(2)

来源:互联网 发布:java字符流读取视频 编辑:程序博客网 时间:2024/04/29 12:10

Connection

Jdbc程序中的Connection,它用于代表数据库的链接,Connection是数据库编程中最重要的一个对象.
常用的api

Statement createStatement()throws SQLException //获得操作sql的Statement对象CallableStatement prepareCall(String sql)throws SQLException//获取执行存储过程的CallableStatementPreparedStatement prepareStatement(String sql)throws SQLException//获取预处理对象void close() throws SQLException//释放资源操作事务void setAutoCommit(boolean autoCommit) throws SQLException//开启事物void setReadOnly(boolean readOnly) throws SQLException//设置数据库为只读模式Savepoint setSavepoint(String name)throws SQLException//设置保存点void rollback() throws SQLException//事物回滚void commit() throws SQLException//提交事务

Statement

1.执行sql             ResultSet executeQuery(String sql) throws SQLException int executeUpdate(String sql)throws SQLException2.批处理操作           void addBatch(String sql)throws SQLException//添加批处理int[] executeBatch()throws SQLException     //执行批处理            void clearBatch()throws SQLException        //清空批处理指令   void close()throws SQLException  //关闭资源             

ResultSet

表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。

next()getInt()getString()getDate()                       getDouble() 参数有两种1.getInt(int columnIndex);  //列游标从1开始                   2.getInt(String columnName);//列名称如果列的类型不知道,可以通过下面的方法来操作getObject(int columnIndex);getObject(String columnName);
public class Demo {    public static void main(String[] args) throws SQLException {        // 注册驱动        try {            Class.forName("com.mysql.jdbc.Driver");        } catch (ClassNotFoundException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        // 连接数据库        Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/springdemo", "root", "admin");        Statement statement = con.createStatement();        ResultSet resultSet = statement.executeQuery("select * from test");        while(resultSet.next()){            int id = resultSet.getInt(1);            String name = resultSet.getString(2);            String password = resultSet.getString(3);            System.out.println(id+".."+name+".."+password);        }    }}

这里写图片描述

关闭资源

Jdbc程序运行完后,切记要释放程序在运行过程中,创建的那些与数据库进行交互的对象,这些对象通常是ResultSet, Statement和Connection对象。特别是Connection对象,它是非常稀有的资源,用完后必须马上释放,如果Connection不能及时、正确的关闭,极易导致系统宕机。Connection的使用原则是尽量晚创建,尽量早的释放。为确保资源释放代码能运行,资源释放代码也一定要放在finally语句中。

滚动结果集

默认得到的ResultSet它只能向下遍历(next()),对于ResultSet它可以设置成是滚动的,可以向上遍历或者直接定位到一个指定的物理行号.
怎样得到一个滚动结果集?
api

Statement createStatement(int resultSetType,                          int resultSetConcurrency)                          throws SQLExceptionnext():移动到下一行previous():移动到前一行absolute(int row):移动到指定行beforeFirst():移动resultSet的最前面afterLast() :移动到resultSet的最后面updateRow() :更新行数据                          

resultSetType - 结果集类型,它是 ResultSet.TYPE_FORWARD_ONLY、ResultSet.TYPE_SCROLL_INSENSITIVE 或 ResultSet.TYPE_SCROLL_SENSITIVE 之一
resultSetConcurrency - 并发类型;它是 ResultSet.CONCUR_READ_ONLY 或 ResultSet.CONCUR_UPDATABLE 之一
以上五个值,可以有三种搭配方式
ResultSet.TYPE_FORWARD_ONLY ResultSet.CONCUR_READ_ONLY 默认
ResultSet.TYPE_SCROLL_INSENSITIVE ResultSet.CONCUR_READ_ONLY
ResultSet.TYPE_SCROLL_SENSITIVE ResultSet.CONCUR_UPDATABLE

 //滚动结果集    Statement createStatement = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,                ResultSet.CONCUR_UPDATABLE);
0 0
原创粉丝点击