• tomcat-8.5.78连接oracle的步骤方式


    知识点:Java通用Dao包括JDBC和JNDI两种连接方式,由于涉及开发比较少,我对这两种连接方式了解的不是很多,在写文章练习连接数据库查找了大量的知识进行汇总,最终总结如下:
    jdbc是一个标准的Java API,它由一组类和接口组成,它的最大的特点是通过java程序去找数据库驱动,然后来连接数据库。
    jndi全称(Java Name Directory Interface,Java命名目录接口),JNDI不单是用来连接数据库的,它是通过命名服务来找到数据库并返回数据库连接,当然JNDI还可以管理当前应用服务器上的其他资源,如网页,文件等,它用来连接数据库时和JDBC最大的区别就是它是通过应用服务器配置(如Tomcat)的配置文件context.xml来找数据库驱动的,其次就是JDBC连接能承受的同时请求数太低了,JNDI连接池连接与之相比会好很多。

    总结
    1.请求资源的主动性不一样。JDBC是通过java程序主动去连接数据库获得连接,而JNDI是通过请求命名服务器返回数据库连接。
    2.功能范围不一样。JDBC只能用来做一件事那就是连接数据库,而命名JNDI除了能和JDBC做同样的事以外还能管理当前应用服务器上的其他资源,如网页,文件等
    3.请求连接数不通。JNDI连接池数高于JDBC

    1. <Resource name="jdbc/openetdb" auth="Container"
    2. type="javax.sql.DataSource"
    3. driverClassName="oracle.jdbc.OracleDriver"
    4. url="jdbc:oracle:thin:@127.0.0.1:1521:orcl"
    5. username="nontaxbfc"
    6. password="nontaxbfc"
    7. maxActive="20"
    8. maxIdle="10"
    9. maxWait="-1"
    10. testOnBorrow="true"
    11. />

    context.xml部分代码:路径E:\apache-tomcat-8.5.78-windows-x64\conf

     web.xml代码:路径E:\apache-tomcat-8.5.78-windows-x64\webapps\myweb\WEB-INF

    1. <!--需要在项目根目录下面新建一个WEB-INF目录和一个web.xml的文件,内容如下-->
    2. <resource-ref>
    3. <description>DataSource</description>
    4. <res-ref-name>jdbc/openetdb</res-ref-name>
    5. <res-type>javax.sql.DataSource</res-type>
    6. <res-auth>Container</res-auth>
    7. </resource-ref>
    8. <!--临时加载的oracl数据源.2022.6.25结束-->

    1. <!--写个jsp测试-->
    2. <%@ page language="java" pageEncoding="gbk"%>
    3. <%@page import="java.sql.Connection"%>
    4. <%@page import="javax.naming.Context"%>
    5. <%@page import="javax.naming.InitialContext"%>
    6. <%@page import="javax.sql.DataSource"%>
    7. <%@page import="java.sql.Statement"%>
    8. <%@page import="java.sql.ResultSet"%>
    9. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    10. <html>
    11. <head>
    12. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    13. <title>Insert title here</title>
    14. </head>
    15. <body>
    16. <%
    17. DataSource ds = null;
    18. try{
    19. Context context = new InitialContext();
    20. ds = (DataSource)context.lookup("java:comp/env/jdbc/openetdb");
    21. Connection conn = ds.getConnection();
    22. String strSql="select * from T_FSBANK";
    23. Statement stmt = conn.createStatement();
    24. ResultSet rs = stmt.executeQuery(strSql);
    25. out.println("以下是从数据库中读取出来的数据:<br>");
    26. while(rs.next()){
    27. out.println(rs.getString("BANKID"));
    28. out.println(rs.getString("BANKNAME"));
    29. out.println("<br>");
    30. }
    31. if(ds!=null){
    32. out.println("chenggong");
    33. }
    34. }catch(Exception e){
    35. e.printStackTrace();
    36. out.println("lichenggong 99%");
    37. }
    38. %>
    39. </body>
    40. </html>

    本人在练习连接数据库过程中也尝试了对mysql数据库的连接,有兴趣的朋友可以下载附件进行参考学习。除此之外附件中还包含了oracl驱动和mysql的驱动,其中oracl驱动包含版本有5/6/7/14版本供大家下载Tomcat服务器orcel数据库连接配置(个人整理版).zip-Java文档类资源-CSDN下载

    参考文档Tomcat(各种版本) 数据库连接池配置_iteye_10631的博客-CSDN博客

  • 相关阅读:
    [附源码]Python计算机毕业设计Django基于Vuejs的中国名茶销售平台
    Java使用JavaMail进行邮件的发送和读取
    使用echarts如何实现双y轴且实现指定数据使用y轴呢?
    拓扑关系如何管理?
    为什么 Go for-range 的 value 值地址每次都一样?
    Java快速排序算法、三路快排(Java算法和数据结构总结笔记)[7/20]
    (附源码)ssm学生考勤管理系统 毕业设计 260952
    机器学习和深度学习 -- 李宏毅(笔记与个人理解)Day19
    SAP 电商云 Spartacus UI Store 相关的设计明细
    saltstack学习1入门基础
  • 原文地址:https://blog.csdn.net/ribmusic/article/details/125458219