【WebLogic使用】3.WebLogic配置jndi数据源
参见博客:https://blog.csdn.net/acmman/article/details/70146603
参考视频教程:
一、什么是jndi数据源
JNDI是Java命名与目录接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之一。
我们平时开发web程序的时候,在连接数据库的时候,往往会编写一个连接数据库的类,
例如连接Mysql的类:
- package cn.edu.hpu.util;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- public class DB {
- // 定义MySQL的数据库驱动程序
- public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
- //定义mysql的数据库连接地址:
- public static final String DBDURL = "jdbc:mysql://localhost:3306/iqweb" ;
- //mysql数据库的连接用户名
- public static final String DBUSER = "root" ;
- //mysql数据库的连接密码
- public static final String DBPASS = "1234" ;
- static{
- try {
- Class.forName(DBDRIVER);
- } catch (ClassNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- public static Connection getConnection(){
- Connection conn=null;
- try {
- conn=DriverManager.getConnection(DBDURL,DBUSER,DBPASS);
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return conn;
- }
- public static void close(ResultSet rs,Statement st,Connection conn){
- try {
- if(rs!=null){
- rs.close();
- }
- if(st!=null){
- st.close();
- }
- if(conn!=null){
- conn.close();
- }
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- public static void close(Statement st,Connection conn){
- close(null,st,conn);
- }
- }
--------------------- 本文来自 光仔December 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/acmman/article/details/70146603?utm_source=copy
上面的代码存在一个问题:每一次应用程序访问数据库都去创建一个connect,很消耗数据库的资源
如何解决了,采用数据库连接池

应用程序获得connect都是从连接池中获得,不在自己操作db获得connect,数据库连接池就好像线程池原理一样。

我们可以不用编写数据库连接池,现在有开源的数据库连接池

除了上面的c3p0等数据库连接池之外,weblogic也提供了数据库连接池,weblogic的数据库连接池是通过jndi容器进行管理的,需要进行配置,weblogic将数据库连接池存储
在jndi容器中,可以通过jndi获得weblogic的连接池
接下面我们来看看如何通过weblogic创建连接池
二、新建Mysql的JNDI数据源
访问http://localhost:7001/console/,登录进入WebLogic控制台主页。
点击左侧“域结构”下的“服务”下的“数据源”选项:
选择新建,一般数据源。
填写数据源的名称,JNDI名称以及选择数据库类型:
选择数据库驱动版本:
其它配置按照默认即可:
填写数据库的连接信息:
接下来点击测试配置,看一下是否能连接成功:
出现“连接测试成功”即表示数据库配置没有问题。
点击下一步,勾选服务器。
点击完成之后,我们服务器端的JNDI数据源就配置完毕了。
三、应用程序引用WebLogic的jndi数据源
我们在MyEclipse中创建一个WebProject测试工程:
我们在src中创建一个数据库连接类:
编写该连接类:
- package com.cn.opensource.dbConn;
- import java.sql.Connection;
- import java.sql.SQLException;
- import java.util.Properties;
- import javax.naming.Context;
- import javax.naming.InitialContext;
- import javax.sql.DataSource;
- public class DatabaseConnection {
- //初始化上下文需要用到的工厂类
- private final static String INITIAL_CONTEXT_FACTORY="weblogic.jndi.WLInitialContextFactory";
- //WebLogic服务器的访问地址
- private final static String PROVIDER_URL="t3://127.0.0.1:7001";
- //WebLogic服务器中的JNDI数据源名称
- private final static String MYSQL_JNDI_NAME="JNDI-MySqlDataSource";
- //存储从JNDI容器中取出来的数据源
- private static DataSource dsOracle = null;
- private static DataSource dsMySQL = null;
- static {
- try {
- //初始化WebLogic Server的JNDI上下文信息
- Context context = getInitialContext();
- //获取数据源对象
- dsMySQL = (DataSource) context.lookup(MYSQL_JNDI_NAME);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- /**
- * MethodName: getInitialContext
- * Description: 获得WebLogic ServerJNDI初始上下文信息
- * @return
- * @throws Exception
- */
- private static Context getInitialContext() throws Exception {
- Properties properties = new Properties();
- //指定工厂类
- properties.put(Context.INITIAL_CONTEXT_FACTORY, INITIAL_CONTEXT_FACTORY);
- //指定服务器访问地址
- properties.put(Context.PROVIDER_URL, PROVIDER_URL);
- return new InitialContext(properties);
- }
- /**
- * MethodName: getMySQLConnection
- * Description: 获取MySQL数据库连接
- * @return
- * @throws SQLException
- */
- public static Connection getMySQLConnection() throws SQLException {
- return dsMySQL.getConnection();
- }
- /**
- * MethodName: CloseConnection
- * Description: 关闭数据库连接
- * @return
- * @throws SQLException
- */
- public static void Close()throws SQLException {
- if(dsMySQL!=null){
- dsMySQL.getConnection().close();
- }
- }
- }
然后,我们创建一个Servlet,测试数据库是否连接成功并取到数据:
---------------------
本文来自 光仔December 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/acmman/article/details/70146603?utm_source=copy
客户端访问的代码如下:

上面是采用的java代码直接进行操作,如果是在j2ee中如何通过配置文件获得数据库连接池了
获取JNDI数据源
如果应用配置在高性能的应用服务器(如WebLogic或Websphere等)上,我们可能更希望使用应用服务器本身提供的数据源。应用服务器的数据源使用JNDI开放调用者使用,Spring为此专门提供引用JNDI资源的JndiObjectFactoryBean类。下面是一个简单的配置:
---------------------
本文来自 tingyuanss 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/tingyuanss/article/details/44940061?utm_source=copy
通过jndiName指定引用的JNDI数据源名称。
Spring 2.0为获取J2EE资源提供了一个jee命名空间,通过jee命名空间,可以有效地简化J2EE资源的引用。下面是使用jee命名空间引用JNDI数据源的配置:
- <beans xmlns=http://www.springframework.org/schema/beans
- xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
- xmlns:jee=http://www.springframework.org/schema/jee
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
- http://www.springframework.org/schema/jee
- http://www.springframework.org/schema/jee/spring-jee-2.0.xsd">
- <jee:jndi-lookup id="dataSource" jndi-name=" java:comp/env/jdbc/bbt"/>
- </beans>
只需要配置:
<jee:jndi-lookup id="dataSource" jndi-name=" java:comp/env/jdbc/bbt"/>
--------------------- 本文来自 tingyuanss 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/tingyuanss/article/details/44940061?utm_source=copy
【WebLogic使用】3.WebLogic配置jndi数据源的更多相关文章
- WebLogic使用总结(三)——WebLogic配置JNDI数据源
一.在WebLogic新建针对Oracle数据库的JNDI数据源 进入weblogic管理控制台,此处是远程访问:http://192.168.1.144:7001/console 点击左侧[ 域结构 ...
- WebLogic配置JNDI数据源
一.什么是jndi数据源 JNDI是Java命名与目录接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之一. 我们平时开发web程序的时候, ...
- JNDI学习总结(三)——Tomcat下使用Druid配置JNDI数据源
com.alibaba.druid.pool.DruidDataSourceFactory实现了javax.naming.spi.ObjectFactory,可以作为JNDI数据源来配置. 一.下载D ...
- JNDI学习总结(二)——Tomcat下使用C3P0配置JNDI数据源
一.C3P0下载 C3P0下载地址:http://sourceforge.net/projects/c3p0/files/?source=navbar
- Tomcat配置JNDI数据源
经过3个多小时的努力,配置JNDI数据源(主要是通过DBCP连接池)终于搞定-还是Tomcat官方的说明好,不过全是英文的,大概还看得懂.百度上那么花花绿绿的太多了,一个也没成功!...本例使用的数据 ...
- Tomcat下使用Druid配置JNDI数据源
com.alibaba.druid.pool.DruidDataSourceFactory实现了javax.naming.spi.ObjectFactory,可以作为JNDI数据源来配置. 一.下载D ...
- Tomcat下使用C3P0配置JNDI数据源(在项目的META-INF目录下创建context.xml的文件)
一.C3P0下载 C3P0下载地址:http://sourceforge.net/projects/c3p0/files/?source=navbar 下载完成之后得到一个压缩包
- JNDI学习总结——Tomcat下使用C3P0配置JNDI数据源
一.C3P0下载 C3P0下载地址:http://sourceforge.net/projects/c3p0/files/?source=navbar
- 配置JNDI数据源
配置JNDI数据源: 在MATE-INF中新建一个context.xml <?xml version="1.0" encoding="UTF-8"?> ...
- JNDI学习总结(4)——Tomcat下使用Druid配置JNDI数据源
com.alibaba.druid.pool.DruidDataSourceFactory实现了javax.naming.spi.ObjectFactory,可以作为JNDI数据源来配置. 一.下载D ...
随机推荐
- Rocket - decode - Simplify
https://mp.weixin.qq.com/s/YWXYNaRU-DbLOMxpzF2bpQ 介绍Simplify如何简化解码逻辑. 1. 使用 Simplify在DecodeL ...
- 如何提交本地代码到git仓库
首先要先注册一个自己的GitHub账号,注册网址:https://github.com/join 有了自己的账号以后,就可以进行登录,开始创建一个新的项目 创建一个新的项目,填写项目名称,描述 我是和 ...
- Java实现 LeetCode 667 优美的排列 II(暴力)
667. 优美的排列 II 给定两个整数 n 和 k,你需要实现一个数组,这个数组包含从 1 到 n 的 n 个不同整数,同时满足以下条件: ① 如果这个数组是 [a1, a2, a3, - , an ...
- Java实现 LeetCode 521 最长特殊序列 Ⅰ(出题人:“就是喜欢看你们不敢相信那么简单,又不敢提交的样子。”)
521. 最长特殊序列 Ⅰ 给定两个字符串,你需要从这两个字符串中找出最长的特殊序列.最长特殊序列定义如下:该序列为某字符串独有的最长子序列(即不能是其他字符串的子序列). 子序列可以通过删去字符串中 ...
- Java实现 LeetCode 130 被围绕的区域
130. 被围绕的区域 给定一个二维的矩阵,包含 'X' 和 'O'(字母 O). 找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充. 示例: X X X X X O O ...
- Java实现 LeetCode 110 平衡二叉树
110. 平衡二叉树 给定一个二叉树,判断它是否是高度平衡的二叉树. 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1. 示例 1: 给定二叉树 [3,9 ...
- Java实现 蓝桥杯VIP 算法提高 change
算法提高 change 时间限制:1.0s 内存限制:256.0MB 问题描述 数组A中共有n个元素,初始全为0.你可以对数组进行两种操作:1.将数组中的一个元素加1:2.将数组中所有元素乘2.求将数 ...
- Java实现 洛谷 P1421 小玉买文具
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = ...
- Java实现 蓝桥杯 算法提高最小方差生成树
1 问题描述 给定带权无向图,求出一颗方差最小的生成树. 输入格式 输入多组测试数据.第一行为N,M,依次是点数和边数.接下来M行,每行三个整数U,V,W,代表连接U,V的边,和权值W.保证图连通.n ...
- java实现第六届蓝桥杯五星填数
五星填数 如[图1.png]的五星图案节点填上数字:1~12,除去7和11. 要求每条直线上数字和相等. 如图就是恰当的填法. 请你利用计算机搜索所有可能的填法有多少种. 注意:旋转或镜像后相同的算同 ...