`
wengzil
  • 浏览: 35095 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

J2EE java 获取数据源

阅读更多

package com.tobacco.ermsuite.interfaces.util;

 

import java.sql.Connection;

import java.sql.SQLException;

 

import org.apache.commons.dbcp.BasicDataSource;

 

public class ConnectionSource {

private static BasicDataSource dataSourceDrp;

 

/**

* 通过数据源获取数据库连接

*/

public synchronized static Connection getConnDsp() {

Connection ConnDsp = null;

// SimpleDateFormat df = new

// SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");// 格式化时间

// String beforeDate = df.format(new Date(System.currentTimeMillis()));

// System.out.println("获取连接之前时间是:"+beforeDate);

if (dataSourceDrp == null) {

String SourceName = "jdbc/dsp";

String driverClassName = "oracle.jdbc.driver.OracleDriver";

String url = "jdbc:oracle:thin:@localhost:1521:ORCL";

String username = "lms";

String password = "lms";

 

dataSourceDrp = DBCPManager.getDataSource(SourceName,

driverClassName, url, username, password);

}

 

try {

ConnDsp = dataSourceDrp.getConnection();

// String afterDate = df.format(new

// Date(System.currentTimeMillis()));

// // System.out.println("获取连接之后时间是:"+afterDate);

// long time = (df.parse(afterDate)).getTime()

// - (df.parse(beforeDate)).getTime();

// System.out.println("时间差:" + time + "ms");

} catch (Exception e) {

e.printStackTrace();

}

return ConnDsp;

}

 

public static void releaseConn(Connection conn) {

try {

if (conn != null && !conn.isClosed()) {

conn.close();

}

} catch (SQLException e) {

e.printStackTrace();

}

}

}

 

package com.tobacco.ermsuite.interfaces.util;

 

import java.util.Properties;

 

import org.apache.commons.dbcp.BasicDataSource;

import org.apache.commons.dbcp.BasicDataSourceFactory;

 

public class DBCPManager {

private static String maxActive = "4";// 最大活动连接数,如果非正整数,则不做限制。

private static String maxIdle = "2";// 最大空闲连接数。

private static String maxWait = "5000";// (在没有连接可用时)连接池等待一个数据连接可用时的以毫秒计的最大等待时间,超时以后抛出异常,

 

 

/**

* 通过相关参数获取数据源

*/

public static BasicDataSource getDataSource(String SourceName,

String driverClassName, String url, String username, String password) {

BasicDataSource dataSource = null;

 

try {

Properties p = new Properties();

p.setProperty("name", SourceName);

p.setProperty("driverClassName", driverClassName);

p.setProperty("url", url);

p.setProperty("password", password);

p.setProperty("username", username);

p.setProperty("maxActive", maxActive);

p.setProperty("maxIdle", maxIdle);

p.setProperty("maxWait", maxWait);

p.setProperty("removeAbandoned", "true");

p.setProperty("removeAbandonedTimeout", "180");// 活动连接的最大空闲时间为3分钟,以秒为单位

p.setProperty("testOnBorrow", "true");

p.setProperty("logAbandoned", "true");

p.setProperty("type", "javax.sql.DataSource");

dataSource = (BasicDataSource) BasicDataSourceFactory

.createDataSource(p);

 

} catch (Exception e) {

e.printStackTrace();

}

return dataSource;

 

}

 

public void shutdownDataSource(BasicDataSource dataSource) {

try {

if (dataSource != null) {

dataSource.close();

}

} catch (Exception e) {

e.printStackTrace();

}

}

 

}

 

 

package com.tobacco.ermsuite.interfaces.util;

 

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.ResultSetMetaData;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

 

public class SqlUtilTool {

/**

* 通过sql查询,返回list结果

*/

public static List<Map> getResultList(Connection conn, String sql) {

PreparedStatement stmt = null;

ResultSet rset = null;

List<Map> resList = null;

 

try {

stmt = conn.prepareStatement(sql);

rset = stmt.executeQuery();

if (rset != null) {

// 获取列名

ResultSetMetaData meta = rset.getMetaData();

List columnnameTable = new ArrayList();

int colCount = meta.getColumnCount();

for (int i = 1; i < colCount + 1; i++) {

columnnameTable.add(meta.getColumnName(i));

}

// 把结果封装到List通过Map形式

resList = new ArrayList();

while (rset.next()) {

Map mdata = new HashMap();

for (int i = 0; i < columnnameTable.size(); i++) {

String columnName = String.valueOf(columnnameTable

.get(i));

String columnVal = rset.getString(columnName);

mdata.put(columnName, columnVal);

}

resList.add(mdata);

}

}

 

} catch (SQLException e) {

e.printStackTrace();

} finally {

try {

if (rset != null) {

rset.close();

}

if (stmt != null) {

stmt.close();

}

if (conn != null) {

conn.close();

}

 

} catch (SQLException e) {

e.printStackTrace();

}

 

}

return resList;

}

}

 

package com.tobacco.ermsuite.interfaces.util;

 

import java.io.ByteArrayInputStream;

import java.io.ByteArrayOutputStream;

import java.io.File;

import java.io.IOException;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import java.util.Set;

import java.util.zip.ZipEntry;

import java.util.zip.ZipInputStream;

import java.util.zip.ZipOutputStream;

 

import org.jdom.Document;

import org.jdom.Element;

import org.jdom.output.Format;

import org.jdom.output.XMLOutputter;

 

import sun.misc.BASE64Decoder;

import sun.misc.BASE64Encoder;

 

public class StringUtilTool {

 

/**

* 处理通过传递的字符串进行转换空格处理

*/

public static String convertStr(String strParam) {

if (null == strParam) {

strParam = "";

} else {

strParam = strParam.trim();

}

return strParam;

}

 

/**

* /** 创建目录

* @param fileDir

*            目标目录名

* @return

*/

public static boolean createDir(String fileDir) {

boolean isDir = false;

try {

File folder = new File(fileDir);

if (!(folder.exists() && folder.isDirectory())) {

folder.mkdirs();

}

isDir = true;

 

} catch (Exception e) {

e.printStackTrace();

isDir = false;

}

return isDir;

}

 

/**

* 将Zip压缩字节数组解压

* @param zipBytes

* @return byte[]

* @throws IOException

*/

public static byte[] unzip(byte[] zipBytes) throws IOException {

ByteArrayInputStream bais = new ByteArrayInputStream(zipBytes);

ZipInputStream zis = new ZipInputStream(bais);

zis.getNextEntry();

ByteArrayOutputStream baos = new ByteArrayOutputStream();

final int BUFSIZ = 4096;

byte inbuf[] = new byte[BUFSIZ];

int n;

while ((n = zis.read(inbuf, 0, BUFSIZ)) != -1) {

baos.write(inbuf, 0, n);

}

byte[] data = baos.toByteArray();

zis.close();

return data;

}

 

/**

* 将字节数组Zip压缩

* @param data

* @return byte[]

* @throws IOException

*/

public static byte[] zip(byte[] data) throws IOException {

ByteArrayOutputStream baos = new ByteArrayOutputStream();

ZipEntry ze = new ZipEntry("servletservice");

ZipOutputStream zos = new ZipOutputStream(baos);

zos.putNextEntry(ze);

zos.write(data, 0, data.length);

zos.close();

byte[] zipBytes = baos.toByteArray();

return zipBytes;

}

 

/**

* 对字符串先进行zip压缩,再进行base64编码

* @param qrStr

* @return String

* @throws IOException

*/

public static String encode(String qrStr) throws IOException {

BASE64Encoder encoder = new BASE64Encoder();

return new String(encoder.encode(zip(qrStr.getBytes())));

}

 

/**

* 对字符串先进行base64解码,再进行zip解压

* @param qrStr

* @return String

* @throws IOException

*/

public static String decode(String qrStr) throws IOException {

BASE64Decoder decoder = new BASE64Decoder();

byte[] bytes = decoder.decodeBuffer(qrStr);

return new String(unzip(bytes), "GBK");

}

 

/**

* 对DOC 文件输出xml字符串

* @param qrStr

* @return String

* @throws IOException

*/

public static String docToXml(Document doc) throws IOException {

Format format = Format.getPrettyFormat();

format.setEncoding("GBK");// 设置xml文件的字符为GBK,解决中文问题

XMLOutputter xmlout = new XMLOutputter(format);

ByteArrayOutputStream bo = new ByteArrayOutputStream();

xmlout.output(doc, bo);

String xmlStr = bo.toString();

return xmlStr;

}

 

/**

* 对List 中Map 转换成xml字符串

* @param List

*            <Map>

* @return String

* @throws IOException

*/

public static String listToXmlString(List<Map> list) throws IOException {

Document result = new Document();

Element root = new Element("DATASETS");

root.setText("");

if (list != null) {

for (Map map : list) {

Set keys = map.keySet();

Iterator iterator = keys.iterator();

Element data = new Element("DATASET");

while (iterator.hasNext()) {

String key = String.valueOf(iterator.next());

String value = String.valueOf(map.get(key));

Element node = new Element(key);

node.setText(value);

data.addContent(node);

}

root.addContent(data);

}

}

ArrayList arrayList = new ArrayList();

arrayList.add(root);

result.setContent(arrayList);

String resultXML = docToXml(result);

return resultXML;

}

 

/**

* 对List 中Map 转换成json字符串

* @param List

*            <Map>

* @return String

* @throws IOException

*/

public static String listToJsonString(List<Map> list) throws IOException {

String resStr;

StringBuffer jsons;

StringBuffer json;

if (list != null) {

jsons = new StringBuffer("");

jsons.append("{\"list\":[");

for (Map map : list) {

Set keys = map.keySet();

Iterator iterator = keys.iterator();

json = new StringBuffer("{");

while (iterator.hasNext()) {

String key = String.valueOf(iterator.next());

String value = String.valueOf(map.get(key));

json.append("\"").append(key).append("\",");

json.append("\"").append(value).append("\",");

 

}

jsons.append(json.substring(0, json.length() - 1)).append("},");

}

resStr = jsons.substring(0, jsons.length() - 1) + "]}";

} else {

resStr = "{}";

}

return resStr;

}

}

 

 

package com.tobacco.ermsuite.interfaces.util;

 

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

 

import org.apache.axis.client.Call;

import org.apache.axis.client.Service;

 

import com.tobacco.ermsuite.interfaces.mail.MailFactory;

 

public class TestWebService extends Thread {

 

public static void main(String[] args) {

// for (int i = 0; i < 1; i++) {

// TestWebService myThread = new TestWebService();

// myThread.start();

// System.out.println("----------" + i);

// }

}

 

public void run() {

try {

invokeService();

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

 

}

 

public static void invokeService() throws Exception {

Object result = null;

Service serv = new Service();

String url = "http://localhost:9080/lms/services/DrpDataService";

String method = "testSearchList";

try {

 

Call call = (Call) serv.createCall();

call.setTargetEndpointAddress(url);

call.setOperationName(method);

result = call.invoke(new Object[] {});

 

// System.out.println("调用web服务的方法:+" + method + " 成功!\n返回值为:" +

// result);

} catch (Exception e) {

e.printStackTrace();

throw e;

}

}

 

}

 

分享到:
评论

相关推荐

    网上在线学习源码(J2EE JAVA)

    2. **配置文件**:如Spring、MyBatis等框架的配置文件,用于设置数据源、事务管理、依赖注入等。 3. **数据库脚本**:创建数据库表结构和初始化数据的SQL文件,用于搭建项目所需的数据库环境。 4. **部署脚本**:如...

    基于JAVA-COM Bridge与J2EE连接器的COM数据源信息获取.pdf

    本文主要探讨了基于JAVA-COM Bridge与J2EE连接器的COM数据源信息获取技术,这是解决异构系统间互操作性和信息共享的有效手段。 首先,J2EE连接器体系结构(J2EE Connector Architecture, JCA)是Java 2 Platform, ...

    J2ee中的数据存取

    而Hibernate作为持久层的代表,主要负责数据源和连接池的管理,以及对象关系映射(Object-Relational Mapping, ORM)。 在设计原则方面,面向对象编程的目标是高内聚、低耦合,遵循单一职责原则(SRP)、开放-封闭原则...

    j2ee代码生成器源代码

    **J2EE代码生成器源代码详解** J2EE代码生成器是一种强大的开发工具,它能够自动生成符合J2EE规范的源代码,极大地提高了开发效率,减少了手动编写重复代码的工作量。通过理解和掌握这种工具的源代码,开发者可以更...

    J2EE 0.2—加入dao\\dataSource\\jdbcTemplate等联系方法

    数据源是连接数据库的桥梁,负责管理数据库连接,提供线程安全的获取连接方式,以避免资源浪费和潜在的并发问题。在J2EE应用中,dataSource通常由应用服务器管理,例如Tomcat、WebLogic或JBoss等,它们能够配置多个...

    j2ee 大学java课程复习题

    数据源可以通过JNDI(Java Naming and Directory Interface)获取,因此正确答案是C.JNDI。 16. **用于接收浏览器请求的对象** `HttpServletRequest`对象用于接收来自浏览器的请求,因此正确答案是A....

    java中使用tomcat提供的JNDI数据源

    配置完成后,我们可以通过编写Java代码来获取并使用这个数据源。 ```java package com.db; import java.sql.Connection; import java.sql.SQLException; import javax.naming.Context; import javax.naming....

    J2EE基础:JNDI定义Oracle数据源的方法

    3. **代码使用**:在Java代码中,你可以通过JNDI查找来获取数据源并建立数据库连接: ```java Context initContext = new InitialContext(); Context envContext = (Context)initContext.lookup("java:/comp/env...

    J2EE图书管理Java源码

    数据库连接通常通过JDBC(Java Database Connectivity)实现,J2EE应用服务器会提供一个数据源(DataSource),使得应用能够方便地获取和管理数据库连接。在图书管理系统中,数据库可能存储了图书的元信息(如书名、...

    基于J2EE的Ajax宝典--源代码

    J2EE是Java企业级应用开发的标准平台,提供了一套完整的框架和服务,包括Servlet、JSP(JavaServer Pages)、EJB(Enterprise JavaBeans)、JMS(Java Message Service)等组件,用于构建分布式、多层的企业级应用...

    配置数据源

    数据源(DataSource)是Java编程语言中用于管理与数据库连接的一种机制,它提供了获取数据库连接的能力,同时能够管理这些连接的生命周期,如连接池的大小、连接超时时间等。在J2EE环境中,数据源通常由容器(如...

    J2EE企业人事管理系统(附源码)SSHJava源码

    在本系统中,Spring用于管理DAO、Service等组件,实现事务控制,以及提供数据源和邮件服务等功能。 Hibernate作为持久层框架,是ORM(对象关系映射)的代表,它简化了数据库操作,将Java对象与数据库表映射,实现了...

    j2ee.zip_cxf j2ee_java并发

    如果需要从数据库获取数据,那么需要使用JDBC(Java Database Connectivity)来建立数据库连接,执行SQL语句,并处理结果集。 Java并发编程是Java平台中的一个重要领域,它涉及到如何在多线程环境下有效地执行任务...

    was图文教学-数据源配置

    最后,通过编写一个简单的J2EE应用,尝试从数据源获取连接并执行SQL查询,以验证数据源配置是否成功。 在提供的文档“was数据库连接配置.doc”中,会详细展示每一步操作的界面截图和具体步骤,帮助初学者更直观地...

    J2EE开源编程精要15讲 源代码(全部)

    源代码可能包含使用JNDI查找和获取数据源的示例。 10. **MVC(Model-View-Controller)设计模式**:J2EE应用常常采用MVC模式,源代码可能展示了如何分离业务逻辑、视图和控制逻辑,提高代码可维护性和可扩展性。 ...

    j2ee开发的网上书店源代码

    综上所述,"j2ee开发的网上书店源代码"是一个全面展示J2EE技术栈实际应用的实例,它不仅涵盖了Java Web开发的关键技术,还涉及到了数据库设计、安全性、用户体验等多个方面,对于学习和理解J2EE开发具有很高的参考...

    j2ee 笔记 j2ee 笔记 j2ee 笔记

    - **数据源(DataSource)**:提供了一种统一的方式访问不同的数据库,使应用程序不必关心具体的数据库实现细节。 - **连接池**:预先创建一定数量的数据库连接对象,供应用程序使用,从而避免了频繁创建和销毁连接...

    《J2EE专业项目实例开发》源代码

    10. **JNDI(Java Naming and Directory Interface)**:JNDI用于查找和管理资源,如EJB、数据源或邮件服务器。在J2EE环境中,JNDI使得应用能够透明地获取和使用这些资源。 在《J2EE专业项目实例开发》源代码中,你...

Global site tag (gtag.js) - Google Analytics