阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Eclipse中Tomcat配置JNDI链接Oracle数据源例子

155次阅读
没有评论

共计 2806 个字符,预计需要花费 8 分钟才能阅读完成。

最近换到新公司,第一次接触 JNDI 方式连接数据库。

一开始怎么找也没找到数据库地址在哪里配置的,后面跟代码发现 spring 中初始化 dataSource 是通过这个类 JndiObjectFactoryBean 传入 jndiName 参数,果断百度 JndiObjectFactoryBean 才知道有 JNDI 这种方式获取 dataSource。

由于项目是分布式的(统一使用 Jboss),如果想分开部署配置 Jboss 端口太麻烦,so 想用 tomcat 来代替。jboss 配置 JNDI 比较简单,这里不讲。eclipse 新建一个 tomcat 服务会自动建一个 Servers 工程,里面包含了 context.xml、server.xml 等配置文件,tomcat 配置就需要注意不要配置 tomcat 所在目录的配置文件,而是需要配置这里的配置文件

配置配置方法如下:

一、在 Servers 工程下面的 context.xml 文件当添加以下的配置信息:
<Context>

<Resource name=”jdbc/test”  auth=”Container”
type=”javax.sql.DataSource”
username=”sean” 
password=”sean”
driverClassName=”Oracle.jdbc.driver.OracleDriver” 
url=”jdbc:oracle:thin:@localhost:1521:orcl” 
maxActive=”100″ 
maxIdle=”30″ 
maxWait=”10000″/>

</Context>

二、在 Servers 工程下面的 web.xml 配置

<resource-ref>
    <description>OracleDataSource</description>

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

三、spring 获取 dataSource

<!– 报表数据访问方式修改为 jndi 的方式 –>
<bean id=”dataSource” name=”default_ds” class=”org.springframework.jndi.JndiObjectFactoryBean”>
<property name=”jndiName” value=”jdbc/test” />
<property name=”resourceRef” value=”true” />
</bean>

 

四、使用数据源连接数据库
private Connection getConnection() throws NamingException {
Connection conn = null;
String  jndi  =  “jdbc/test”;     
Context initContext = new InitialContext();
  Context envContext  = (Context)initContext.lookup(“java:/comp/env”);
  DataSource ds = (DataSource)envContext.lookup(jndi);
  if(ds !=  null){
  try {
conn = ds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
  } 

  return conn;
}

public List<String> selectById(int id) throws InstantiationException, IllegalAccessException{
Connection con = null;
try {
con = getConnection();
} catch (NamingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
List<String> list = new ArrayList<String>();
String sql=”select * from myusers where id=?”;
try {
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setInt(1, id);
ResultSet rs=pstmt.executeQuery();
if(rs.next()){
list.add(rs.getString(1));
list.add(rs.getString(2));
list.add(rs.getString(3));
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
System.out.println(rs.getString(3));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}

更多 Tomcat 相关教程见以下内容

CentOS 6.6 下安装配置 Tomcat 环境  http://www.linuxidc.com/Linux/2015-08/122234.htm

RedHat Linux 5.5 安装 JDK+Tomcat 并部署 Java 项目  http://www.linuxidc.com/Linux/2015-02/113528.htm 

Tomcat 权威指南(第二版)(中英高清 PDF 版 + 带书签)  http://www.linuxidc.com/Linux/2015-02/113062.htm 

Tomcat 安全配置与性能优化 http://www.linuxidc.com/Linux/2015-02/113060.htm 

Linux 下使用 Xshell 查看 Tomcat 实时日志中文乱码解决方案 http://www.linuxidc.com/Linux/2015-01/112395.htm 

CentOS 64-bit 下安装 JDK 和 Tomcat 并设置 Tomcat 开机启动操作步骤 http://www.linuxidc.com/Linux/2015-01/111485.htm 

CentOS 6.5 下安装 Tomcat  http://www.linuxidc.com/Linux/2015-01/111415.htm 

Tomcat 的详细介绍:请点这里
Tomcat 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-01/127282.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2806字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中