java-JDBC连接oracle数据库,StateMent和PreparedStatement对比(查询query)


1、 PreparedStatement接口继承Statement, PreparedStatement 实例包含已编译的 SQL 语句,所以其执行速度要快于 Statement 对象。

2、作为 Statement 的子类,PreparedStatement 继承了 Statement 的所有功能。三种方法 execute、 executeQuery 和 executeUpdate 已被更改以使之不再需要参数

3、在JDBC应用中,如果你已经是稍有水平开发者,你就应该始终以PreparedStatement代替 Statement.也就是说,在任何时候都不要使用Statement.
 
 
  1. import java.awt.Color;
  2. import java.awt.Container;
  3. import java.awt.event.MouseEvent;
  4. import java.awt.event.MouseListener;
  5. import java.awt.event.MouseMotionListener;
  6. import java.sql.Connection;
  7. import java.sql.DriverManager;
  8. import java.sql.ResultSet;
  9. import java.sql.ResultSetMetaData;
  10. import java.sql.SQLException;
  11. import java.sql.Statement;
  12. import javax.swing.JFrame;
  13. import javax.swing.JLabel;
  14. import javax.swing.JPanel;
  15.  
  16. public class JavaJdbc extends JFrame {
  17. Connection connection=null;//驱动连接接口
  18. Statement statement=null;//得到接口实现对象
  19. ResultSet rs=null;//结果集接口
  20. ResultSetMetaData rsmd=null;
  21. public JavaJdbc(){
  22. try{
  23. Class.forName("oracle.jdbc.driver.OracleDriver"); //加载驱动
  24. String dbUrl="jdbc:oracle:thin:@localhost:1521:orcl"; //连接oracle数据库
  25. String username="admin"; //数据库的登录帐号和密码
  26. String password="admin";
  27. connection=DriverManager.getConnection(dbUrl,username,password);
  28. statement=connection.createStatement();
  29. rs=statement.executeQuery("select * from student");//sql查询语句
  30. rsmd=rs.getMetaData();
  31. int length=rsmd.getColumnCount();
  32. for(int i=1;i<=length;i++)
  33. System.out.print(rsmd.getColumnName(i)+" ");
  34. System.out.println();
  35. while(rs.next()){
  36. for(int i=1;i<=length;i++)
  37. System.out.print(rs.getString(i)+" ");
  38. System.out.println();
  39. }
  40.  
  41. }catch(ClassNotFoundException e){
  42. //System.out.println("数据库驱动加载失败..."+e.getStackTrace());
  43. e.printStackTrace();
  44. }catch(SQLException e){
  45. System.out.println("数据库连接失败..."+e.getStackTrace());
  46. }finally{
  47. try{
  48. if(rs!=null){
  49. rs.close();
  50. }
  51. if(connection!=null){
  52. connection.close();
  53. }
  54. }catch(SQLException e){
  55. e.getStackTrace();
  56. }
  57. }
  58. }
  59. public static void main(String args[]){
  60. new JavaJdbc();
  61. }
  62. }

preparedStatement

  1. import java.awt.Color;
  2. import java.awt.Container;
  3. import java.awt.event.MouseEvent;
  4. import java.awt.event.MouseListener;
  5. import java.awt.event.MouseMotionListener;
  6. import java.sql.Connection;
  7. import java.sql.DriverManager;
  8. import java.sql.PreparedStatement;
  9. import java.sql.ResultSet;
  10. import java.sql.ResultSetMetaData;
  11. import java.sql.SQLException;
  12. import java.sql.Statement;
  13. import javax.swing.JFrame;
  14. import javax.swing.JLabel;
  15. import javax.swing.JPanel;
  16.  
  17. public class JavaJdbc extends JFrame {
  18. Connection connection=null;//驱动连接接口
  19. PreparedStatement preparedstatement=null;//得到接口实现对象
  20. ResultSet rs=null;//结果集接口
  21. ResultSetMetaData rsmd=null;
  22. public JavaJdbc(){
  23. try{
  24. Class.forName("oracle.jdbc.driver.OracleDriver"); //加载驱动
  25. String dbUrl="jdbc:oracle:thin:@localhost:1521:orcl"; //连接oracle数据库
  26. String username="admin"; //数据库的登录帐号和密码
  27. String password="admin";
  28. connection=DriverManager.getConnection(dbUrl,username,password);
  29. String sql="select * from student";
  30. //创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库。
  31. preparedstatement=connection.prepareStatement(sql);
  32. rs=preparedstatement.executeQuery();//获得结果集
  33. rsmd=rs.getMetaData();
  34. int length=rsmd.getColumnCount();
  35. for(int i=1;i<=length;i++)
  36. System.out.print(rsmd.getColumnName(i)+" ");
  37. System.out.println();
  38. while(rs.next()){
  39. for(int i=1;i<=length;i++)
  40. System.out.print(rs.getString(i)+" ");
  41. System.out.println();
  42. }
  43.  
  44. }catch(ClassNotFoundException e){
  45. //System.out.println("数据库驱动加载失败..."+e.getStackTrace());
  46. e.printStackTrace();
  47. }catch(SQLException e){
  48. System.out.println("数据库连接失败..."+e.getStackTrace());
  49. }finally{
  50. try{
  51. if(rs!=null){
  52. rs.close();
  53. }
  54. if(connection!=null){
  55. connection.close();
  56. }
  57. }catch(SQLException e){
  58. e.getStackTrace();
  59. }
  60. }
  61. }
  62. public static void main(String args[]){
  63. new JavaJdbc();
  64. }
  65. }

java-JDBC-Oracle数据库连接的更多相关文章

  1. JAVA jdbc获取数据库连接

    JDBC获取数据库连接的帮助类 import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManage ...

  2. 关于jdbc Oracle数据库连接的URL错误

    今天写了个java类连接oracle,抛出了这个问题 java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@127 ...

  3. Java -- JDBC 学习--数据库连接池

    JDBC数据库连接池的必要性 在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤: 在主程序(如servlet.beans)中建立数据库连接. 进行sql操作 断开数据库连接. 这种模式开 ...

  4. java jdbc oracle ORA-01795: 列表中的最大表达式数为 1000

    在操作SQL中存在In的数量如果超过1000条会提示   ORA-01795: 列表中的最大表达式数为 1000 归纳有几种方式出现的: 第一种是:我在上一个 [jdbc 同时执行 查询和删除操]作中 ...

  5. Java通用oracle和mysql数据库连接

    Java中oracle数据库连接写一个通用类UBUtil(){} import java.io.InputStream; import java.sql.*; import java.util.Pro ...

  6. Java jdbc数据库连接池总结!(转)

    1. 引言 近年来,随着Internet/Intranet建网技术的飞速发展和在世界范围内的迅速普及,计算机 应用程序已从传统的桌面应用转到Web应用.基于B/S(Browser/Server)架构的 ...

  7. Java Web(九) JDBC及数据库连接池及DBCP,c3p0,dbutils的使用

    DBCP.C3P0.DBUtils的jar包和配置文件(百度云盘):点我下载 JDBC JDBC(Java 数据库连接,Java Database Connectify)是标准的Java访问数据库的A ...

  8. Java JDBC连接Oracle

    1. 安装Oracle数据库,我这里使用的是Oracle 12c 2. 创建Java工程 connection-oracle 注意:使用的JavaSE-1.8 3. 在Oracle的安装目录里,将dj ...

  9. java JDBC链接sqlserver/mysql/oracle

    今天初学数据库的一些简单创建数据库和表,并进行简单的查询,插入. 接下学习的就是java工程中怎么链接数据库呢.主要的方法和用到的类如下. 切记,mysql需要的jar包 mysql-connecto ...

  10. Java JDBC Thin Driver 连接 Oracle 三种方法说明(转载)

    一.JDBC 连接Oracle 说明 JDBC 的应用连接Oracle 遇到问题,错误如下: ORA-12505,TNS:listener does not currently know of SID ...

随机推荐

  1. P1018 乘积最大

    开始定义状态f[i][j][k]为[i,j)区间插入k个括号,使用记忆化搜索,但是成功爆栈,得到4个mle #include <bits/stdc++.h> using namespace ...

  2. 三种查看SqlServer中数据物理pge页的方法

    1.根据数据记录查看当前记录所在的文件编号.page页.以及在页中的插槽. 示例如下: SELECT top %%physloc%%, sys.fn_physlocFormatter (%%physl ...

  3. sell- 获取邮箱的后缀

    1. public static void main(String[] args) { System.out.println(getEmailSuffix("jim_chen28270@16 ...

  4. JS操作cookie以及本地存储(sessionStorage 和 localStorage )

    JS操作cookie cookie的操作用两种方式 1.substring //创建cookie function setCookie(name,value,expires,path,domain,s ...

  5. iOS工程如何支持64-bit

    苹果在2014年10月20号发布了一条消息:从明年的二月一号开始,提交到App Store的应用必须支持64-bit.详细消息地址为:https://developer.apple.com/news/ ...

  6. POJ1326问题描述

    Description Mileage program of ACM (Airline of Charming Merlion) is really nice for the travelers fl ...

  7. linux web服务器静态资源的处理 unison+inotify双向同步

    linux web服务器静态资源的处理 unison+inotify双向同步 http://monkeyzhu.blog.51cto.com/5764358/1324391 简介 unison可以使两 ...

  8. [BS-06] 设置release发布时NSLog不打印设置

    设置release发布时NSLog不打印设置 前提:在XCode做开发调试时往往需要打印一些调试信息做debug用,大家知道当打印信息的地方多了之后在模拟器上跑可能不会有什么问题,因为模拟器用的是电脑 ...

  9. python_如何建立包

    步骤: (1)包的名称为drawing (2)drawing中建立模块color和shape 视图: 备注: (1) E:/python_script/已经加入到系统变量path中 (2) 建立包时, ...

  10. 3D Modeling using GDI+

    https://code.msdn.microsoft.com/3D-Modeling-using-GDI-b93937b9 Introduction Most of us use OpenGL/ D ...