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);
- Java JDBC(2)JDBC
- 解析JDBC(2)
- JDBC详解(2)
- JDBC简介(2)
- JDBC初探(2)
- JDBC 笔记(2)
- JDBC(2)
- JDBC(2)
- JDBC(2)SUN的JDBC教程学习体会
- JDBC高级开发(2)---编写自己的JDBC框架
- JDBC学习(2)jdbc的初实现
- 【JDBC】(2) 创建JDBC连接对象Connection
- jdbc 公共类(2)
- Hibernate学习(2)---JDBC
- JDBC知识概括(2)
- JDBC了解(2)-DAO
- JDBC(2)—Statement
- JDBC 2
- Matlab数字图像处理基础【3】
- 使一个任务进入就绪态,OSEventTaskRdy()
- JAVA集合的运用
- FastJson
- Java字符串String:equals方法和==的区别
- JDBC(2)
- gcc选项含义:CFLAGS、CXXFLAGS、LDFLAGS与LIBS
- CAPL常见问题
- 内部类和外部类
- jquery easyui datagrid的getSelections问题
- Spring Boot 快速入门
- TensorFlow笔记2:Ubuntu系统+Tensorflow-gpu环境搭建
- Ubuntu elasticsearch max virtual memory areas vm.max_map_count [65530] is too low, increase to at le
- node.js的项目