java中使用oracle数据库

首先需要将oracle的jar包导入到项目中,将E:\oracle\product\10.2.0\db_1\jdbc\lib路径下的classes12.jar包都导入项目。


一、最简单的使用方法:


package blog;

import java.sql.*;
import java.util.Properties;

public class AddStudentDao implements IAddStudentDao {

    @Override
    public boolean addStudent(AddStudentForm studentForm) {
        //使用JDBC操作数据
        Connection conn = null;
        PreparedStatement  pstmt = null;
        //1、首先注册具体数据库的驱动包
        
        try {
            Driver myDriver = (Driver) Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
            
            
        //2、利用DriverManager获取数据库连接对象Connection
            Properties properties = new Properties();
            properties.put("user", "xzf");
            properties.put("password", "1234");
            conn = myDriver.connect("jdbc:oracle:thin:@127.0.0.1:1521:orcl",properties);

            String sql = " insert into students values(?   ,?  ,?  ,?)";
           
            System.out.println("major: " + studentForm.getMajor());
            pstmt = conn.prepareStatement(sql);
            pstmt.setInt(1,studentForm.getsId());
            pstmt.setString(2, studentForm.getsName());
            pstmt.setString(3, studentForm.getMajor());
            pstmt.setInt(4, studentForm.getScore());           
            
            int count =  pstmt.executeUpdate();
            System.out.println("影响行数:" + count);

            
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            try {
                if(pstmt!=null)pstmt.close();
                if(conn!=null)conn.close();
            } catch (SQLException e) {    
                e.printStackTrace();
            }
        }
        return true;
    }

}

二、使用连接池DBUtil:

1、先创建DBUtil类:

package blog.util;

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

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

import cn.itcast.exception.DBException;


public class DBUtil {
    
    private static DataSource ds = null;

    /**
     * 从数据库连接池获得一个数据库连接
     * @return 数据库连接
     * @throws DBException
     */
    public static Connection getConnection() throws DBException {
        
        //用数据库连接池的方式实现,JNDI
        try {
            if(ds == null){            
                Context context = new InitialContext();
                ds = (DataSource) context.lookup("java:comp/env/jdbc/orcl");            
            }
            
            return ds.getConnection();
        } catch (NamingException e) {            
            throw new DBException("数据库连接池查找失败", e);
        } catch (SQLException e) {            
            throw new DBException("获取数据库连接异常", e);
        }
      
    }
    
    public static PreparedStatement getPreparedStatement(Connection conn, String sql) throws DBException {
        PreparedStatement pstmt = null;
        try {
            if (conn != null) {
                pstmt = conn.prepareStatement(sql);
            }
        } catch (SQLException e) {
            throw new DBException("创建执行语句失败", e);
        }
        return pstmt;
    }

    public static PreparedStatement getPreparedStatement(Connection conn, String sql, int autoGenereatedKeys) throws DBException {
        PreparedStatement pstmt = null;
        try {
            if (conn != null) {
                pstmt = conn.prepareStatement(sql, autoGenereatedKeys);
            }
        } catch (SQLException e) {
            throw new DBException("创建执行语句失败", e);
        }
        return pstmt;
    }

    public static Statement getStatement(Connection conn) throws DBException {
        Statement stmt = null;
        try {
            if (conn != null) {
                stmt = conn.createStatement();
            }
        } catch (SQLException e) {
            throw new DBException("创建执行语句失败", e);
        }
        return stmt;
    }

    public static ResultSet getResultSet(Statement stmt, String sql) throws DBException {
        ResultSet rs = null;
        try {
            if (stmt != null) {
                rs = stmt.executeQuery(sql);
            }
        } catch (SQLException e) {
            throw new DBException("获得查询结果集失败:" + sql, e);
        }
        return rs;
    }

    public static void executeUpdate(Statement stmt, String sql) throws DBException {
        try {
            if (stmt != null) {
                stmt.executeUpdate(sql);
            }
        } catch (SQLException e) {
            throw new DBException("更新失败:" + sql, e);
        }
    }

    /**
     * 归还数据库连接
     * @param conn 数据库连接实例
     * @throws DBException
     */
    public static void close(Connection conn) throws DBException {
        try {
            if (conn != null) {
                conn.close(); //把数据库连接归还到数据库连接池,并不是真正的断开数据库的连接
            }
        } catch (SQLException e) {
            throw new DBException("关闭数据库连接异常", e);
        }
    }

    public static void close(Statement stmt) throws DBException {
        try {
            if (stmt != null) {
                stmt.close();
                stmt = null;
            }
        } catch (SQLException e) {
            throw new DBException("关闭数据库语句异常", e);
        }
    }

    public static void close(ResultSet rs) throws DBException {
        try {
            if (rs != null) {
                rs.close();
                rs = null;
            }
        } catch (SQLException e) {
            throw new DBException("关闭数据库结果集异常", e);
        }
    }
}


2、在META-INF下创建一个Context.xml文件,内容如下:

<Context reloadable="true">
    <Resource name="jdbc/orcl" auth="Container" type="javax.sql.DataSource"
    maxActive="100" maxIdle="30" maxWait="10000"
    username="xzf" password="1234"
    driverClassName="oracle.jdbc.OracleDriver"
    url="jdbc:oracle:thin:@127.0.0.1:1521:orcl">
    </Resource>
</Context>


3、在web.xml中加入如下内容:

<resource-ref>
  <res-ref-name>jdbc/orcl</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
 </resource-ref>



4、将oracle的classes12.jar包加入tomcat的lib目录下。


这样就可以使用DBUtil了:Connection conn =DBUtil.getConnection();




转载于:https://www.cnblogs.com/xzf007/archive/2012/07/06/2873913.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java可以使用JDBC(Java数据库连接)技术来连接和操作Oracle数据库。JDBC是Java提供的用于访问数据库的API。在使用JDBC连接Oracle数据库时,需要选择合适的驱动程序。根据Oracle版本和JDK版本的不同,可以选择不同的jar包来连接Oracle数据库。以下是一些常用的jar包选择建议: - 对于Oracle 8i和JDK 1.1.x版本,可以选择使用classes111.zip或classes12.zip。 - 对于Oracle 9i和JDK 1.1.x版本,可以选择使用classes111.jar或classes111.zip。 - 对于Oracle 9i和JDK 1.2、1.3版本,可以选择使用classes12.jar或classes12.zip。 - 对于Oracle 9i和JDK 1.4版本,可以选择使用ojdbc14.jar。 - 对于Oracle 9i和JDK 1.5版本,可以选择使用ojdbc5.jar。 - 对于Oracle 9i和JDK 1.6版本,可以选择使用ojdbc6.jar。 - 对于Oracle 10g和JDK 1.2、1.3版本,可以选择使用classes12.jar。 - 对于Oracle 10g和JDK 1.4、5.0版本,可以选择使用ojdbc14.jar。 - 对于Oracle 11g和JDK 5版本,可以选择使用ojdbc5.jar。 - 对于Oracle 11g和JDK 6版本,可以选择使用ojdbc6.jar。 使用这些驱动程序和JDBC API,可以在Java程序连接到Oracle数据库,并执行SQL语句以操作数据库。例如,可以使用java.sql包的Connection、Statement和ResultSet等类来进行数据库连接、SQL语句执行和结果集的处理。具体的代码实现可以参考相关的Java JDBC教程和文档。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Java连接Oracle数据库(详细!快速上手)](https://blog.csdn.net/weixin_43894577/article/details/106161106)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [java连接Oracle数据库](https://blog.csdn.net/he__xu/article/details/83410966)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值