java直接访问JNDI工具代码
import java.sql.*;
import java.util.*;
import javax.naming.*;
import javax.sql.DataSource;
public class SqlAccess {
//数据库连接
public Connection conn = null;
//结果集
private ResultSet rs = null;
//数据库访问段
public Statement stmt = null;
//是否连接数据库
private boolean isConnDB = false;
private boolean isDefault = true;
private String newDSName = null;
public static HashMap logmap = new HashMap();
public static int begincont = 0;
private int count = 0;
public String serverType="";
public String jndiName = "";
public static final String WLS_INITIAL_CONTEXT_FACTORY = "weblogic.jndi.WLInitialContextFactory";
public static final String TBJBOSS_INITIAL_CONTEXT_FACTORY = "org.jboss.naming.JNDIView";
public static final String WEBSPHERE_INITIAL_CONTEXT_FACTORY = "com.ibm.websphere.naming.WsnInitialContextFactory";
public SqlAccess() {
try {
initial();
conn.setAutoCommit(true);
}
catch (Exception exp) {
}
}
public SqlAccess(String jndi,String serverType) {
this.serverType = serverType;
this.jndiName = jndi;
try {
initial();
conn.setAutoCommit(true);
}
catch (Exception exp) {
}
}
public static SqlAccess createConn(String ds) throws Exception {
SqlAccess sq = new SqlAccess(ds,"websphere");
if (sq == null || sq.conn == null)
throw new Exception("Errorx");
return sq;
}
public static SqlAccess createConn() throws Exception {
return createConn("");
}
public static void main(String[] args) {
}
public static final String ST_WEBSPHERE = "websphere";
public static final String ST_WEBLOGIC = "weblogic";
public static final String ST_TOMCAT = "tomcat";
public static final String ST_JBOSS = "jboss";
public static final String ST_RESIN = "resin";
public void initial() throws SQLException {
try {
Context ctx = null;
DataSource ds = null;
String dsName = this.jndiName;
try {
count = ++begincont;
}
catch (Exception e) {
begincont = 0;
count = ++begincont;
}
System.out.println("[count]"+count);
if (ST_WEBLOGIC.equals(serverType)) {
Properties props = new Properties();
//取数据库连接
props.put("weblogic.codeset", "GBK");
Hashtable parms = new Hashtable();
parms.put( Context.INITIAL_CONTEXT_FACTORY, this.WLS_INITIAL_CONTEXT_FACTORY);
ctx = new InitialContext(parms);
}
else if (ST_JBOSS.equals(serverType)) {
System.out.println("Jboss connection init");
ctx = new InitialContext();
dsName = "java:/" + dsName;
}
else if (ST_RESIN.equals(serverType)) {
System.out.println("Resin Connection init");
ctx = new InitialContext();
dsName = "java:comp/env/" + dsName;
}
else if (ST_WEBSPHERE.equals(serverType)) {
System.out.println("Websphere Connection init");
Hashtable prop = new Hashtable();
prop.put(Context.INITIAL_CONTEXT_FACTORY,this.WEBSPHERE_INITIAL_CONTEXT_FACTORY);
ctx = new InitialContext(prop);
}
else if (ST_TOMCAT.equals(serverType)) {
System.out.println("Tomcat JNDI Connection init");
ctx = new InitialContext();
dsName = "java:comp/env/" + dsName;
}
System.out.println("[SqlAccess]dsName:" + dsName + "...");
ds = (DataSource) ctx.lookup(dsName);
conn = ds.getConnection();
//--System.out
System.out.println("conn:" + conn.toString());
logmap.put(conn,count+"");
//--System.out
System.out.println("ConnectionPool:making a connection...[" + count + "]");
//--System.out
//--System.out
//stmt = conn.createStatement();
isConnDB = true;
}
catch (SQLException sqle) {
sqle.printStackTrace();
System.out.println("SQLException during connection(): " + sqle.getMessage());
throw sqle;
}
catch (Exception e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
}
//设置AutoCommit
public void setAutoCommit(boolean autoCommit) throws SQLException {
try {
if (isConnDB)
conn.setAutoCommit(autoCommit);
}
catch (SQLException sqle) {
System.out.println("SQLException during autoCommit(): " + sqle.getMessage());
throw sqle;
}
catch (Exception e) {
System.out.println(e.getMessage());
}
}
//执行Commit命令
public void commit() throws SQLException {
try {
if (isConnDB)
conn.commit();
}
catch (SQLException sqle) {
System.out.println("SQLException during commit(): " + sqle.getMessage());
throw sqle;
}
catch (Exception e) {
System.out.println(e.getMessage());
}
}
//执行Rollback命令
public void rollback() {
try {
if (isConnDB)
conn.rollback();
}
catch (SQLException sqle) {
System.out.println("SQLException during rollback(): " + sqle.getMessage());
//throw sqle;
}
catch (Exception e) {
System.out.println(e.getMessage());
}
}
//查询与数据库之间的连接是否关闭,true - 有连接:false - 没连接
public boolean isConnectDB() {
return isConnDB;
}
//关闭连接
public void close() {
try {
if (conn != null)
conn.close();
logmap.remove(conn);
logmap.remove("" + count);
System.out.println("ConnectionPool::Closing connection...[" + count + "]\n");
}
catch (SQLException sqle) {
System.out.println("SQLException during close(): " + sqle.getMessage());
//throw sqle;
}
catch (Exception e) {
System.out.println(e.getMessage());
}
}
//public static String SERVER="JBOSS";
//public static String SERVER="WEBLOGIC";
/**
* Returns the logmap.
* @return HashMap
*/
public static HashMap getLogmap() {
return logmap;
}
/**
* Returns the count.
* @return int
*/
public int getCount() {
return count;
}
}
使用此方法获取连接,需要从容器中配置连接池
调用方法演示:
SqlAccess sa = new SqlAccess("HIS", "websphere");
if (sa != null) {
System.out.println("成功连接=" + sa.conn);
} else {
System.out.println("失败连接=" + sa.conn);
}
Connection hisConn = sa.conn;
java直接访问JNDI工具代码的更多相关文章
- java获取时间整点工具代码
/**获取上n个小时整点小时时间 * @param date * @return */ public static String getLastHourTime(Date date,int n){ C ...
- 使用poco 的NetSSL_OpenSSL 搭建https 服务端,使用C++客户端,java 客户端访问,python访问(python还没找到带证书访问的代码.)
V20161028 由于项目原因,需要用到https去做一些事情. 这儿做了一些相应的研究. 这个https 用起来也是折腾人,还是研究了一周多+之前的一些积累. 目录 1,java client 通 ...
- java服务器访问其他服务器工具类编写
java服务器访问其他服务器工具类编写适合各种消息推送及微服务交互 package com.xiruo.medbid.components; import com.xiruo.medbid.util. ...
- 【JAVA系列】使用JavaScript实现网站访问次数统计代码
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[JAVA系列]使用JavaScript实现网站 ...
- Java中常用的设计模式代码与理解
Java中常用的设计模式代码与理解 一.单例模式 1.饿汉式 (太饿了,类加载的时候就创建实例) /** * 饿汉式单例模式 */ public class HungrySingleInstance ...
- Java并发包同步工具之Exchanger
前言 承接上文Java并发包同步工具之Phaser,讲述了同步工具Phaser之后,搬家博客到博客园了,接着未完成的Java并发包源码探索,接下来是Java并发包提供的最后一个同步工具Exchange ...
- Java安全之JNDI注入
Java安全之JNDI注入 文章首发:Java安全之JNDI注入 0x00 前言 续上篇文内容,接着来学习JNDI注入相关知识.JNDI注入是Fastjson反序列化漏洞中的攻击手法之一. 0x01 ...
- Java线程的并发工具类
Java线程的并发工具类. 一.fork/join 1. Fork-Join原理 在必要的情况下,将一个大任务,拆分(fork)成若干个小任务,然后再将一个个小任务的结果进行汇总(join). 适用场 ...
- java性能优化常用工具jmap、jstack
jmap:java内存映像工具 jmap用于生成堆转储快照,比较常用的option包括-heap,-histo,-dump [root@localhost script]# jmap -h Usage ...
随机推荐
- java 第八章 异常处理
一.异常简介 (一)定义: 运行期间出现的错误,而不是编译时的语法错误 例如: 1.打开一个不存在的文件 2.网络连接中断 3.数学类错误 4.操作数组越界等 (二)异常的继承树 (三)异常类的体系结 ...
- 20154327 Exp3 免杀原理与实践
实践内容 基础问题回答 (1)杀软是如何检测出恶意代码的? 杀毒软件主要靠特征码进行查杀,匹配到即为病毒. 还有通过云查杀,查看云端库中该文件是否属于恶意代码. 跟踪该程序运行起来是否存在恶意行为,来 ...
- 20145234黄斐《Java程序设计》第二周学习总结
教材学习内容总结 类型 Java可区分为基本类型(Primitive Type)和类类型(Class Type),其中类类型也叫参考类型(Reference Type). 字节类型,也叫byte类型, ...
- 北京Uber优步司机奖励政策(3月28日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- day 1 安装pygame
1.稀里糊涂装上了 参考博客:http://blog.csdn.net/sinat_40043477/article/details/78276460
- c++ 重载运算与类型转换
1. 基础概念 重载的运算符是具有特殊名字的函数:(重载运算符函数,运算符函数.重载运算符) 依次包含返回类型,函数名(operator=),参数列表,函数体. 只有重载的函数调用运算符operato ...
- Linux命令应用大词典-第17章 软件包管理
17.1 rpm:RPM软件包管理器 17.2 rpmargs:处理RPM软件包 17.3 rpmbuild:构建RPM软件包 17.4 rpmdiff:比较两个软件包之间的不同 17.5 rpmel ...
- Linux命令应用大词典-第13章 用户和组群管理
13.1 useradd:创建用户账户 13.2 adduser:创建用户账户 13.3 lnewusers:创建用户账户 13.4 usermod:修改用户账户 13.5 userdel:删除用户账 ...
- token接口的测法
接口一般都有权限的校验,一般是需要登录后才可以调用 对于接口的认证,一般通过两种方式来实现1.校验用户请求中是否包含某项指定的cookie2.校验用户的请求的header中是否包含某项指定的字段(to ...
- leetcode9_C++判断一个整数是否是回文数
判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 输出: true 示例 2: 输入: - 输出: false 解释: 从左向右读, 为 - ...