package common;



import java.sql.Connection;

import java.sql.SQLException;

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.naming.NamingException;

import javax.sql.DataSource;



/**

* 通过JNDI获取数据源

*

* @author 周尚武 时间:2008年12月8日22:37:09

*/

public class DBConnection {

/**

* 通过JNDI获取数据源在获取连接对象

*

* @return Connection con

*/

public static Connection getCon(){

Connection con = null;

try {

Context ic = new InitialContext();

DataSource source = (DataSource)ic.lookup("java:comp/env/jdbc/books");

con = source.getConnection();

} catch (NamingException e) {

System.out.println("数据源没找到!");

e.printStackTrace();

} catch (SQLException e) {

System.out.println("获取数连接对象失败!");

e.printStackTrace();

}

return con;

}

}



JNDI的配置:



1.context.xml文件的配置:



<Resource name="jdbc/books"

auth="Container" type="javax.sql.DataSource" maxActive="100"

maxIdle="30" maxWait="10000" username="sa" password="123"

driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"

url="jdbc:sqlserver://localhost:1433;databasename=books"/>



2.web.xml文件的配置:



<resource-ref>

<res-ref-name> jdbc/books </res-ref-name>

<res-type> javax.sql.DataSource </res-type>

<res-auth> Container </res-auth>

</resource-ref>



3.添加数据库驱动文件:



通过数据源访问数据库,由于数据源由Tomcat 维护,所有必须把JDBC驱动程序复制到Tomcat的common/lib目录下。

Java使用JNDI技术获取DataSource对象的更多相关文章

  1. Java反射学习-2 - 获取Class对象的三种方式

    package cn.tx.reflect; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import ...

  2. JAVA反射机制教程-获取类对象

    1. 什么是类对象 类对象,就是用于描述这种类,都有什么属性,什么方法的 2. 获取类对象 获取类对象有3种方式(1). Class.forName(2). Hero.class(3). new He ...

  3. Spring 框架获取 datasource对象的方法

    1,使用org.springframework.jdbc.datasource.DriverManagerDataSource  2.使用org.apache.commons.dbcp.BasicDa ...

  4. java在方法中获取request对象

    在spring的普通类中: HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getReques ...

  5. JNI开发-Java从C/C++获取List集合对象

    NI开发有时需要Java从C/C++获取List对象,此篇主要讲解Java从C/C++获取List<Student>返回值; 1. 定义com.niubashaoye.simple.jni ...

  6. 议题解析与复现--《Java内存攻击技术漫谈》(二)无文件落地Agent型内存马

    无文件落地Agent型内存马植入 可行性分析 使用jsp写入或者代码执行漏洞,如反序列化等,不需要上传agent Java 动态调试技术原理及实践 - 美团技术团队 (meituan.com) 首先, ...

  7. Spring配置JNDI和通过JNDI获取DataSource

    一.SpringJNDI数据源配置信息 <bean id="dataSource" class="org.springframework.jndi.JndiObje ...

  8. Java Web开发技术教程入门-JSP基本语法和九大内置对象

    这两天气温逐渐升高,好想把自己泡在冰块里······ 恩嗯摁蒽恩嗯摁蒽恩嗯摁蒽恩嗯摁蒽.......今天阅读到了这本书的第四章-JSP基本语法.经过第一天的阅读,我们明白JSP技术是Java Web开 ...

  9. 在Servlet使用getServletContext()获取ServletContext对象出现java.lang.NullPointerException(空指针)异常的解决办法

    今天遇到了一个在servlet的service方法中获取ServletContext对象出现java.lang.NullPointerException(空指针)异常,代码如下: 1 //获取Serv ...

随机推荐

  1. 创建DateFrame的常用四种方式

    import pandas as pd %pylab 一.使用numpy创建 df = pd.DataFrame(np.arange(16).reshape((4,4)), index=list('a ...

  2. Python基础学习一

    Python基础学习一 1.变量与常量 变量名:大小写英文.数字.下划线的组合,数字不能开头 常量名:习惯上常量用大写字母命名,例如"PI" 2.多行输出 转义符:反斜杠(),如果 ...

  3. 解析java实体类

    对java实体类的众多理解: A .就是属性类,通常定义在model层里面 B. 一般的实体类对应一个数据表,其中的属性对应数据表中的字段. 好处: 1.对对象实体的封装,体现OO思想. 2.属性可以 ...

  4. 【@ConfigurationProperties注解】Not Found The requested URL /spring-boot/docs/2.2.2.RELEASE/reference/html/configuration-metadata.html was not found on this server.

    <!-- 配置文件自动映射 --> <dependency> <groupId>org.springframework.boot</groupId> & ...

  5. CF633H Fibonacci-ish II(莫队+线段树)

    温馨提示:本题十分卡常数,我手动开O2才过的.而数据范围不伦不类的n<=30000,常数小的O(n2)居然比O(n√nlogn)跑得快…… 考虑插进去一个元素对答案产生的影响.原本数列为Σa[i ...

  6. Python 进行 OCR识别 -- pytesseract库

    pip install pytesseract 报错:tesseract is not installed or it's not in your path 下载安装 Tesseract-OCR ht ...

  7. maven中scope属性有哪些

    compile,缺省值,适用于所有阶段,会随着项目一起发布. provided,类似compile,期望JDK.容器或使用者会提供这个依赖.如servlet.jar. runtime,只在运行时使用, ...

  8. 第04项目:淘淘商城(SpringMVC+Spring+Mybatis) 的学习实践总结【第五天】

    https://pan.baidu.com/s/1bptYGAb#list/path=%2F&parentPath=%2Fsharelink389619878-229862621083040 ...

  9. springMVC的注解@PathVariable是什么?详情及用法解析

    在路由中定义变量规则后,通常我们需要在处理方法(也就是@RequestMapping注解的方法)中获取这个URL变量的具体值,并根据这个值(例如用户名)做相应的操作,Spring MVC提供的@Pat ...

  10. maven 设置pom 指定jdk版本

    <profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</acti ...