JAVA连接oracle数据库的三种方式

来源:互联网 发布:域名注册必须实名吗 编辑:程序博客网 时间:2024/06/06 00:58

1 传统方式连接数据库(效率较低)

     此方法连接数据库,其性能、可靠性与稳定性随着用户访问量的增加逐渐下降,跟踪测试表明,其根本问题与Connection对象的创建有关。不过在这里还是讲一下此方法的实现:添加记录到数据库表中

     import java.sql.Connection;
     import java.sql.DriverManager;
     import java.sql.PreparedStatement;

     String driver = "oracle.jdbc.driver.OracleDriver";
     String url = "jdbc:oracle:thin:@192.168.1.3:1521:ora92";
     String username = "scott";
     String password = "tiger";
     String sql = "insert into users(username,password) values (?,?)";

     try {

     Class.forName(driver);        //oracle.jdbc.driver.OracleDriver();
    Connection conn = DriverManager.getConnection(url, username,password);
     PreparedStatement ps = conn.prepareStatement(sql);    //Statement stat=conn.createStatement();

     ps.setString(1, "张三");
     ps.setString(2, "lisi");
      ps.executeUpdate();
     ps.close();
     conn.close();

   } catch (ClassNotFoundException e) {
     e.printStackTrace();
    } catch (SQLException e) {
     e.printStackTrace();
    }

   2 使用JDBC数据源连接池方式连接数据库(效率高)

     用这种方式连接数据库之前,首先需要配置TOMCAT服务器目录下的文件\tomcat5\conf\context.xml文件:

    <Context reloadable="true">

     <WatchedResource>WEB-INF/web.xml</WatchedResource>

    <Resource name="jdbc/oracle" auth="Container" type="javax.sql.DataSource"
    maxActive="100" maxIdle="30" maxWait="10000" username="scott"   password="tiger"    

     driverClassName="oracle.jdbc.OracleDriver"
     url="jdbc:oracle:thin:@192.168.1.3:1521:ora92"/>

    </Context>

配置完后将oracle驱动程序类classes12.jar拷贝到\tomcat5\common\lib目录下即可。在这里强调一下这个问题,我就是遇到这种问题的,最后就是这样给解决的。之前我用了ojdbc5.jar驱动类文件总是不能够建立连接的,而且出现这样的问题:Cannot create JDBC oracle driver of class '' for connect URL 'jdbc:oracle:thin:@192.168.1.3:1521:ora92'"。希望这篇文章给读者有点启发。我的QQ号码:89262840

   

    import javax.naming.Context;
    import javax.naming.InitialContext;

    import javax.sql.DataSource;

     String sql = "insert into users(username,password) values(?,?)";

    String username = request.getParameter("username");

    try {

   Context context=new InitialContext();
     DataSource ds=(DataSource)context.lookup("java:/comp/env/jdbc/oracle");
     Connection conn=ds.getConnection();
   
     PreparedStatement ps = conn.prepareStatement(sql);

     ps.setString(1, StringUtil.filterHtml(username));
     ps.setString(2, StringUtil.filterHtml(request.getParameter("password")));
     result = ps.executeUpdate();
     ps.close();
     conn.close();

   } catch (NamingException e) {
     e.printStackTrace();
    } catch (SQLException e) {
     e.printStackTrace();
    }

   3 使用组件的方式连接数据库

    本文主要以Commons DbUtils组件来连接数据库。它将JDBC中的一些类进行了二次封装,它不象hibernate(ORMapping)那样将JAVA对象与数据库映射。首先将oracle驱动类文件与Commons DbUtils组件的JAR文件一起引入到项目中。

     String sql = "insert into users(username,password) values(?,?)";

     String username = request.getParameter("username");

    String param[]={StringUtil.filterHtml(username),StringUtil.filterHtml(request.getParameter("password"))
    };

     try {

    Context initContext = new InitialContext();
     DataSource ds = (DataSource) initContext.lookup("java:/comp/env/jdbc/oracleds");
     QueryRunner qr = new QueryRunner(ds);
     result = qr.update(sql, param);

   } catch (NamingException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     } catch (SQLException e) {
        e.printStackTrace();
    }


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 淘宝买的东西发错了怎么办 淘宝上买的东西发错了怎么办 淘宝上买的东西发多了怎么办 淘宝上买的东西出现问题怎么办 淘宝买东西未收到货显示签收怎么办 网上一张车票两人同时付款了怎么办 微信付款时显示银行卡被锁定怎么办 微信忘记支付密码怎么办没有银行卡 支付宝赏金扫码支付不行怎么办 网购收货时发现货物已破损怎么办 货物丢失了不承认调查出来了怎么办 小米商城已签收未收到了怎么办 网购的一只荷兰猪现在怎么办 中通快递的掌中通好评怎么办 唯品会快递被签收却没收到货怎么办 拼多多快递签收了但没收到货怎么办 顺丰代收签收成功要强制退款怎么办 淘宝付了钱如果商家没货了怎么办 别人拿走我的货不给钱怎么办 快递出途中损坏签单后才发现怎么办 顾客支付宝少付了钱人走了怎么办 顾客通过收钱码付的钱少了怎么办 寄顺丰快递收件人号码填错了怎么办 京东退货售后说是有划痕怎么办 手机上快递员软件签收错了怎么办 苹果手机进网许可证丢了怎么办 作废的普票发票联丢失怎么办 想退换货但是发票丢了怎么办 快递没有当面验货造成的丢件怎么办 退货卖家收货验货说有问题怎么办 没当着快递人员面验货少货怎么办 微信绑定的银行了被快捷支付怎么办 银行支付到微信支付里的钱怎么办 微信绑定银行忘支付密码忘了怎么办 微信桂林银行不可以支付怎么办 微信忘记支付密码和银行卡号怎么办 京东商城迟迟不通过退货审核怎么办 网上购物想退款商家要我拒收怎么办 运输公司对车主不买保险怎么办 苹果平板限制访问密码忘了怎么办 安卓手机忘了解锁密码怎么办