java-JDBC-Oracle数据库连接

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



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

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

3、在JDBC应用中,如果你已经是稍有水平开发者,你就应该始终以PreparedStatement代替 Statement.也就是说,在任何时候都不要使用Statement.

import java.awt.Color;
import java.awt.Container;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class JavaJdbc extends JFrame {
    Connection connection=null;//驱动连接接口
    Statement statement=null;//得到接口实现对象
    ResultSet rs=null;//结果集接口
    ResultSetMetaData rsmd=null;
    public JavaJdbc(){
        try{
            Class.forName("oracle.jdbc.driver.OracleDriver"); //加载驱动
            String dbUrl="jdbc:oracle:thin:@localhost:1521:orcl"; //连接oracle数据库
            String username="admin"; //数据库的登录帐号和密码
            String password="admin";
            connection=DriverManager.getConnection(dbUrl,username,password);
            statement=connection.createStatement();
            rs=statement.executeQuery("select * from student");//sql查询语句
            rsmd=rs.getMetaData();
            int length=rsmd.getColumnCount();
            for(int i=1;i<=length;i++)
                System.out.print(rsmd.getColumnName(i)+" ");
            System.out.println();
            while(rs.next()){
                for(int i=1;i<=length;i++)
                    System.out.print(rs.getString(i)+" ");
                System.out.println();
            }

        }catch(ClassNotFoundException e){
            //System.out.println("数据库驱动加载失败..."+e.getStackTrace());
            e.printStackTrace();
        }catch(SQLException e){
            System.out.println("数据库连接失败..."+e.getStackTrace());
        }finally{
            try{
                if(rs!=null){
                    rs.close();
                }
                if(connection!=null){
                    connection.close();
                }
            }catch(SQLException e){
                e.getStackTrace();
            }
        }
    }
    public static void main(String args[]){
        new JavaJdbc();
    }
}

preparedStatement

import java.awt.Color;
import java.awt.Container;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class JavaJdbc extends JFrame {
    Connection connection=null;//驱动连接接口
    PreparedStatement preparedstatement=null;//得到接口实现对象
    ResultSet rs=null;//结果集接口
    ResultSetMetaData rsmd=null;
    public JavaJdbc(){
        try{
            Class.forName("oracle.jdbc.driver.OracleDriver"); //加载驱动
            String dbUrl="jdbc:oracle:thin:@localhost:1521:orcl"; //连接oracle数据库
            String username="admin"; //数据库的登录帐号和密码
            String password="admin";
            connection=DriverManager.getConnection(dbUrl,username,password);
            String sql="select * from student";
            //创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库。
            preparedstatement=connection.prepareStatement(sql);
            rs=preparedstatement.executeQuery();//获得结果集
            rsmd=rs.getMetaData();
            int length=rsmd.getColumnCount();
            for(int i=1;i<=length;i++)
                System.out.print(rsmd.getColumnName(i)+" ");
            System.out.println();
            while(rs.next()){
                for(int i=1;i<=length;i++)
                    System.out.print(rs.getString(i)+" ");
                System.out.println();
            }

        }catch(ClassNotFoundException e){
            //System.out.println("数据库驱动加载失败..."+e.getStackTrace());
            e.printStackTrace();
        }catch(SQLException e){
            System.out.println("数据库连接失败..."+e.getStackTrace());
        }finally{
            try{
                if(rs!=null){
                    rs.close();
                }
                if(connection!=null){
                    connection.close();
                }
            }catch(SQLException e){
                e.getStackTrace();
            }
        }
    }
    public static void main(String args[]){
        new JavaJdbc();
    }
}
时间: 2024-12-07 20:02:09

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

Java通用oracle数据库连接

Java中oracle数据库连接写一个通用类UBUtil(){} import java.io.InputStream; import java.sql.*; import java.util.Properties; public class DBUtil { private static Connection con; private static String url; private static String user; private static String pwd; public

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

今天写了个java类连接oracle,抛出了这个问题 java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@127.0.0.1:1521:orcl: 很显然是URL错误,以前碰到过类似的问题,故一起总结一下. 以前是No suitable driver found for jdbc.oracle.thin:@127.0.0.1:1521:orcl; 其实就是符号写错了,第一个是没有切换中英文,第二个是" : &

JAVA jdbc获取数据库连接

JDBC获取数据库连接的帮助类 1 import java.io.InputStream; 2 import java.sql.Connection; 3 import java.sql.DriverManager; 4 import java.sql.ResultSet; 5 import java.sql.Statement; 6 import java.util.Properties; 7 8 public class jdbcUtil { 9 10 private static Stri

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

JDBC数据库连接池的必要性 在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤: 在主程序(如servlet.beans)中建立数据库连接. 进行sql操作 断开数据库连接. 这种模式开发,存在的问题: 普通的JDBC数据库连接使用 DriverManager 来获取,每次向数据库建立连接的时候都要将 Connection 加载到内存中,再验证用户名和密码(得花费0.05s-1s的时间).需要数据库连接的时候,就向数据库要求一个,执行完成后再断开连接.这样的方式将会消耗大量的资源和

关于初次使用java jdbc遇到数据库连接不上的问题java.sql.SQLException: No suitable driver found for jdbc:mysql://127.0.0.1:3306/test

首先我们写java有很大一部分的程序员使用的是神器ecplise 那我晒晒我写的ecplise有错误的代码(其实并不是代码错误了) 就类似这样的代码,首先你需要安装mysql在你的电脑上root就是用户名,密码当然就是你设置的密码 然后我们就会出现这样的错误信息 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 

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

在操作SQL中存在In的数量如果超过1000条会提示   ORA-01795: 列表中的最大表达式数为 1000 归纳有几种方式出现的: 第一种是:我在上一个 [jdbc 同时执行 查询和删除操]作中提到 在一个事务中在了in操作超出了 1000条,修改代码如下: Connection conn = null;        try {            // 创建连接实例            conn = JdbcUtility.GetFactory().CreateConn();   

Java培训-Oracle学习【1】数据库连接

1.连接ORACLE数据库: 连接放在同一个类的主方法中 package com.softeem.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCTest {          public static void 

JAVA JDBC连接oracle 测试代码

package com.ist.common.util; import java.sql.*; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; public class JdbcOracleTest {     //orcl为oracle数据库中的数据库名,localhost表示连接本机的oracle数据库          //1521为连

JDBC 获取 Oracle 数据库连接(使用 Driver)

获取数据库连接的方法: 1. Driver 接口: ?Java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口.这个接口是提供给数据库厂商使用的,不同数据库厂商提供不同的实现 ?在程序中不需要直接去访问实现了 Driver 接口的类,而是由驱动程序管理器类(java.sql.DriverManager)去调用这些Driver实现 2. 加载与注册JDBC 驱动: ?加载 JDBC 驱动需调用 Class 类的静态方法 forName(),向其传递要加载的 JDBC 驱动的类名

JAVA JDBC 数据库连接池

1.1 JDBC数据库连接池的必要性 在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤: 在主程序(如servlet.beans)中建立数据库连接 进行sql操作 断开数据库连接 这种模式开发,存在的问题: 普通的JDBC数据库连接使用 DriverManager 来获取,每次向数据库建立连接的时候都要将 Connection 加载到内存中,再验证用户名和密码(得花费0.05s-1s的时间).需要数据库连接的时候,就向数据库要求一个,执行完成后再断开连接.这样的方式将会消耗大量的资