`
shihuan830619
  • 浏览: 582812 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java用JDBC实现对Oracle数据库操作

    博客分类:
  • J2SE
阅读更多
import java.sql.Connection;
import java.sql.DriverManager;

public class UtilDbForOracle {
	public static Connection getConnection(){
		try{
			Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
			String url = "jdbc:oracle:thin:@192.168.0.10:1521:ora920";
			String username = "shihuan";
			String password = "zznode";
			Connection conn = DriverManager.getConnection(url, username, password);
//			System.out.println(conn + "------return conn");
			return conn;
		}
		catch (Exception e){
			System.out.println(e.getMessage());
			return null;
		}
	}
}


----------------------------------------------------------------------

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class DBOperaRule {
	private Connection conn = null;
//	private Statement stmt = null;
    private PreparedStatement pstmt = null;
    private ResultSet rs = null;
    private boolean hadErrors = false;
    
    //创建数据库连接
    public void createConnection(){
        conn = UtilDbForOracle.getConnection();
    }
    
    //发起事务
	public void beginTransaction(){
		try {
			conn.setAutoCommit(false);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	//执行事务
	public void commitTransaction() throws SQLException{
		if(!hadErrors){
			conn.commit();
		}else{
			conn.rollback();
			hadErrors = false ;
		}
		hadErrors = false ;
		conn.setAutoCommit(true);
	}
	
	//标记出错
	public void errorOccur(){
		hadErrors = true ;
	}

	//执行插入、删除和更新操作
	synchronized public void execute(String sql) throws SQLException {
		this.pstmt = conn.prepareStatement(sql);
		if(pstmt != null){
			pstmt.executeUpdate(sql);
		}else{
			Log log = LogFactory.getLog("mylog");
			log.error("数据库插入数据出错");
		}
	}
	
	//执行查询操作
	synchronized public ResultSet read(String sql) throws SQLException {
		this.pstmt = conn.prepareStatement(sql);
//		Statement stmt = conn.createStatement();
		if(pstmt != null){
//		if(stmt != null){
			ResultSet tmp = null ;
			tmp = pstmt.executeQuery(sql);
//			tmp = stmt.executeQuery(sql);
			
			//下面为打印数据表中的字段名称
//			ResultSetMetaData md = tmp.getMetaData();
//			for(int i=1; i<=md.getColumnCount(); i++){ 
//                System.out.println(md.getColumnName(i)); 
//            }
			
			//循环打印数据库中的值
//			while(tmp.next()){
//				System.out.println("tmp是否在最后一行:" + tmp.isLast());
//				System.out.println("row: " + tmp.getRow());
//				System.out.println(tmp.getString(1) + " --> " + tmp.getString(2));
//			}
			
			return tmp;
		}else{
			return null;
		}
	}
	
	//执行查询个数操作
	synchronized public int readCount(String sql) throws SQLException {
		this.pstmt = conn.prepareStatement(sql);
		int nCount = 0;
		try{
			if(pstmt != null){
				ResultSet tmp = null;
				tmp = pstmt.executeQuery(sql);
				if(tmp != null && tmp.next()){
					nCount = tmp.getInt(1);
				}else{
					nCount = 0;
				}
			}
		}catch(SQLException e){
			nCount = 0;
		}
		return nCount;
	}
	
	//创建数据库连接
	/*
    public boolean createConnection(){
        try{
        	conn = UtilDbForOracle.getConnection();
            conn.setAutoCommit(false);
        }catch(SQLException e){
            System.out.println("createConnectionError!");
            System.out.println(e.getMessage());
            return false;
        }
        return true;
    }
	*/
    //进行数据库增,删除,更新操作
	/*
    public boolean executeUpdate(String sql){
        if(conn == null){ 
        	createConnection();
        }
        
        try{
            stmt = con.createStatement();
            int iCount = stmt.executeUpdate(sql);
            System.out.println("操作成功,操作影响的记录数:" + String.valueOf(iCount));
        }catch(SQLException e){
            System.out.println("executeUpdateError!");
            System.out.println(e.getMessage());
            return false;
        }
        return true;
    }
	*/
	/*
    public boolean executeUpdateBatch(List list){
        if(conn == null) createConnection();
        try{
            stmt = conn.createStatement();
            for(int i = 0; i < list.size(); ++i)
                stmt.addBatch((String) list.get(i));
            int i[] = stmt.executeBatch();
            System.out.println("操作成功,操作影响的记录数:" + i.length);
        }catch(SQLException e){
            System.out.println("executeUpdateBatchError!");
            System.out.println(e.getMessage());
            return false;
        }
        return true;
    }
	*/
    //进行数据库查询操作
	/*
    public ResultSet executeQuery(String sql){
    	if(conn == null) createConnection();
        try{
            stmt = conn.createStatement();
            rs = stmt.executeQuery(sql);
        }catch(SQLException e){
            System.out.println("executeQueryError!");
            System.out.println(e.getMessage());
            return null;
        }
        return rs;
    }
	*/
	/*
    public List executeQueryForList(String s) throws SQLException{
        ResultSet rs = this.executeQuery(s);
        List list = new ArrayList();
        HashMap hash;
        String tmp = null;
        int cols = rs.getMetaData().getColumnCount();
        while(rs.next()){
            hash = new HashMap();
            for(int i = 1; i <= cols; i++){
                tmp = rs.getString(i);
                if(tmp == null)
                    tmp = "";
                hash.put(rs.getMetaData().getColumnName(i).toLowerCase(), tmp);
            }
            list.add(hash);
            hash = null;
        }
        return list;
    }
	*/
	/*
    public HashMap executeQueryForMap(String s) throws SQLException{
        ResultSet rs = this.executeQuery(s);
        HashMap hash = new HashMap();
        String tmp = null;
        int cols = rs.getMetaData().getColumnCount();
        while(rs.next()){
            hash = new HashMap();
            for(int i = 1; i <= cols; i++){
                tmp = rs.getString(i);
                if(tmp == null)
                    tmp = "";
                hash.put(rs.getMetaData().getColumnName(i).toLowerCase(), tmp);
            }
        }
        return hash;
    }
	*/
	/*
    public ResultSet executeQueryForPage(String sql){
    	if(conn == null) createConnection();
        try{
            stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
            rs = stmt.executeQuery(sql);
        }catch(SQLException e){
            System.out.println("executeQueryError!");
            System.out.println(e.getMessage());
            return null;
        }
        return rs;
    }
	*/
    //对数据库操作进行提交
	/*
    public boolean commit(){
        try{
            conn.commit();
        }catch(SQLException e){
            System.out.println("commitError!");
            System.out.println(e.getMessage());
            return false;
        }
        return true;
    }
	*/
    //关闭数据库连接
    public void closeDBConnection(){
        if(conn != null){
            try{
//                stmt.close();
                pstmt.close();
                conn.close();
            }catch(SQLException e){
                System.out.println("closeDBConnectionError!");
                e.printStackTrace();
            }finally{
                try{
//                    stmt.close();
                    pstmt.close();
                }catch(SQLException e){
                    e.printStackTrace();
                }
                conn = null;
            }
        }
    }
分享到:
评论

相关推荐

    JDBC实现Oracle数据库的增删改查

    本教程将深入探讨如何使用JDBC实现对Oracle数据库的增、删、改、查操作。 首先,我们需要理解JDBC的基本组件和工作流程。JDBC提供了一组接口和类,使得Java应用程序能够连接到数据库,执行SQL语句并处理结果。核心...

    java使用jdbc连接oracle数据库

    Java使用JDBC(Java Database Connectivity)来连接Oracle数据库是一个常见的任务,它允许Java应用程序与各种数据库进行交互。在本场景中,`ojdbc6.jar`是Oracle提供的JDBC驱动程序,用于建立Java应用程序与Oracle...

    java使用JDBC和ODBC连接oracle数据库

    Java通过JDBC(Java Database Connectivity)和ODBC(Open Database Connectivity)来连接Oracle数据库是两种常见的数据访问方式。本文将详细介绍这两种方法,并提供相关的技术知识。 首先,JDBC是Java平台的标准...

    java采用jdbc的连接oracle数据库

    Oracle JDBC驱动则是Oracle公司提供的用于连接Oracle数据库的Java驱动程序,它实现了JDBC规范,使得Java开发者能方便地操作Oracle数据库。 在Java中连接Oracle数据库,主要涉及以下几个步骤: 1. 导入必要的JDBC库...

    Java使用Jdbc连接Oracle执行简单查询操作示例

    本文将通过实例形式详细分析Java基于Jdbc实现Oracle数据库的连接与查询相关操作技巧。 一、Java中Jdbc连接Oracle数据库的基本步骤 1. 导入Jdbc驱动包:在Java程序中需要引入Oracle的Jdbc驱动包,通常是oracle.jdbc...

    Jdbc连接oracle远程数据库中文乱码解决

    Oracle数据库作为一款广泛应用的关系型数据库系统,其与Java应用程序的集成常常会遇到各种问题,其中之一就是字符编码导致的中文乱码问题。本文将深入探讨如何通过JDBC(Java Database Connectivity)连接Oracle远程...

    java连接oracle数据库jar包

    在Java中实现Oracle数据库连接,我们需要用到特定的JAR包,这些JAR包通常包含在Oracle的数据库客户端或者Oracle JDBC驱动程序中。 首先,Oracle JDBC驱动分为两种类型: Thin驱动和 Thick驱动。Thin驱动是一种纯...

    Java连接Oracle数据库的各种方法

    Java连接Oracle数据库主要依赖于两种方法:JDBC和SQLJ。这两种方法都是Oracle8i及其后续版本中为Java开发者提供的数据库交互方式。 JDBC(Java Database Connectivity)是一种标准的Java API,它允许Java应用程序...

    JAVA Oracle_JDBC

    JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。

    java编程访问oracle数据库

    Java编程访问Oracle数据库是软件开发中的常见任务,它涉及到Java的JDBC(Java Database Connectivity)技术,Oracle数据库的使用以及数据库连接管理等多个方面。在这个场景中,`testODBC`可能是一个包含Java源代码...

    利用Java程序实现Oracle数据库中大对象的存取.pdf

    "利用Java程序实现Oracle数据库中大对象的存取" ...使用Java程序实现Oracle数据库中大对象的存取可以通过jdbc驱动程序连接Oracle数据库,并使用PreparedStatement对象执行SQL语句,实现对大对象的存储和读取。

    java中的JDBC纯驱动方式连接Oracle数据库.docx

    ### Java中的JDBC纯驱动方式连接Oracle数据库 ...通过上述步骤,我们可以成功地使用Java的JDBC纯驱动方式连接到Oracle数据库,并执行基本的查询操作。这种连接方式简单且易于理解,非常适合初学者学习和实践。

    Java代码备份(windows和Linux)服务器oracle数据库

    本篇文章将详细介绍如何通过Java编程语言在Windows和Linux操作系统上实现对Oracle数据库的备份。 首先,理解Oracle数据库备份的基本概念是必要的。Oracle提供多种备份方式,包括物理备份(如数据文件、控制文件、...

    java通过jdbc连接oracle数据库.doc

    Java通过JDBC连接Oracle数据库是开发中常见的任务,它允许我们与Oracle数据库进行交互,执行SQL语句,处理结果集等。以下是一个详细的步骤指南,以及相关知识点的介绍。 1. **下载Oracle数据库驱动**: Oracle ...

    jdbc连接oracle数据库

    本主题将围绕“jdbc连接Oracle数据库”这一核心知识点展开,探讨如何使用Java通过JDBC驱动连接Oracle数据库,并关注与之相关的ojdbc5和ojdbc6版本。 首先,ojdbc5和ojdbc6是Oracle公司提供的JDBC驱动程序,用于Java...

    Java连接Oracle数据库驱动包(JDBC)

    总之,Java通过Oracle JDBC驱动可以高效、安全地访问Oracle数据库,实现数据的读取、插入、更新和删除等一系列操作。这个驱动包为Java开发者提供了与Oracle数据库无缝集成的工具,大大简化了开发流程。

    JDBC连接Oracle数据库常见问题及解决方法

    "JDBC连接Oracle数据库常见问题及解决方法" 本文将对 JDBC 连接 Oracle 数据库常见问题进行总结和解决方法的介绍。以下是针对不同问题的解决方案: 1. Jbuilder 正确连接 Oracle 数据库需要注意的几个问题 在使用...

Global site tag (gtag.js) - Google Analytics