JDBC------dom4j+xml连接Oracle

在做drp项目中使用MyEclipse编码来连接oracle,首先先将驱动 ojdbc14.jar  拷到对应的目录中,然后在对应的包中编写连接代码。

package com.bjpowernode.drp.util;

import java.sql.*;
public class Test {
    
    public static void main(String[] args) {
         System.out.println(Test.getConnection());
    }
    
    public static  Connection getConnection(){
        Connection cn = null;
        try {
            //初始化驱动程序,打开与数据库连接的通道。
            Class.forName("oracle.jdbc.driver.OracleDriver");
            //连接字符串
            String url = "jdbc:oracle:thin:@192.168.26.206:1521:ORCL";  
            //数据库的用户名和密码
            String user = "shiqidrp";
            String password ="shiqidrp";
            cn = DriverManager.getConnection(url, user, password);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {            
            e.printStackTrace();
        }
        return cn;
                
    }
}

问题:在连接字符串ip:1521,后面原先填写的是数据库的名称,结构报SQLException错误,最后修改为了ORCL。

具体的错误处理大家可以看:博客《DRP问题系列——The Network Adapter could not establish the connection 》

对于的数据库连接中的字符串我们通常是写在xml的配置文件中,程序运行时读出,这样便于维护和修改。

修改后:

xml:保存数据库连接字符串等

<?xml version="1.0" encoding="UTF-8"?>
<config>
  <db-info>
  	<driver-name>oracle.jdbc.driver.OracleDriver</driver-name>
  	<url>jdbc:oracle:thin:@192.168.26.206:1521:ORCL</url>
  	<user-name>shiqidrp</user-name>
  	<password>shiqidrp</password>
  </db-info>
</config>

JdbcConfig:定义实体,字符串作为其属性

package com.bjpowernode.drp.util;
public class JdbcConfig {
	private String driverName;
	private String url;
	private String user;
	private String password;
	public String getDriverName() {
		return driverName;
	}
	public void setDriverName(String driverName) {
		this.driverName = driverName;
	}
       //省略后面三个的get和set方法。
}

XmlConfigReader:读取xml文件中的字符串

        添加对应的jar包 
dom4j-1.6.1.jar  和 jaxen-1.1-beta-6.jar

package com.bjpowernode.drp.util;
import java.io.InputStream;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class XmlConfigReader {

	/*
	 * 解析sys-config.xml,用单例模式
	 */
	//懒汉式,用的时候在 new
	private static XmlConfigReader instance = null;
	private JdbcConfig jdbcConfig = new JdbcConfig();
	private XmlConfigReader(){

                SAXReader reader = new SAXReader();
		InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream("config.xml");

		try {
			Document doc = reader.read(in);
			//取得jdbc相关配置信息
			Element driverNameElt = (Element)doc.selectObject("/config/db-info/driver-name");
			Element urlElt = (Element)doc.selectObject("/config/db-info/url");
			Element usernameElt = (Element)doc.selectObject("/config/db-info/user-name");
			Element passwordElt = (Element)doc.selectObject("/config/db-info/password");

			//设置jdbC相关的配置
			jdbcConfig.setDriverName(driverNameElt.getStringValue());
			jdbcConfig.setUrl(urlElt.getStringValue());
			jdbcConfig.setUser(usernameElt.getStringValue());
			jdbcConfig.setPassword(passwordElt.getStringValue());

		} catch (DocumentException e) {
			e.printStackTrace();
		}
	}

	 //返回jdbc相关配置
	public JdbcConfig getJdbcConfig(){
		return jdbcConfig;
	}

	//单例模式对外提供的访问入口,synchronized保证线程安全
	public static synchronized  XmlConfigReader getInstance(){
		if(instance == null){
			instance = new XmlConfigReader();
		}
		return instance;

	}
	//主方法
	public static void main(String[] args) {
			JdbcConfig jdbcConfig= XmlConfigReader.getInstance().getJdbcConfig();
			System.out.println(jdbcConfig);   //从写了jdbcConfig的toString()方法
	}

}

运行显示结果如下说明能成功读出配置文件中的字符串

com.bjpowernode.drp.util.JdbcConfig{drivername:oracle.jdbc.driver.OracleDriver,url:jdbc:oracle:thin:@192.168.26.206:1521:ORCL,user:shiqidrp}

DbUtil:与数据库建立连接进行相关操作

package com.bjpowernode.drp.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/*
 * 封装数据常用操作。
 */

public class DbUtil {
	/*
	 * 取得connection
	 */
        public static Connection getConnection()  {
             Connection conn = null;
		try {
			JdbcConfig jdbcConfig = XmlConfigReader.getInstance().getJdbcConfig();
			Class.forName(jdbcConfig.getDriverName());			

			conn = DriverManager.getConnection(jdbcConfig.getUrl(), jdbcConfig.getUser(), jdbcConfig.getPassword());
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	return conn;
	}
	public static void main(String[] args){
		System.out.println(DbUtil.getConnection());  //测试	,可进行增删改查操作。
	}
}

其他:

JDBC连接SQL Server和MySQL数据库

连接SQL Server数据库

import java.sql.*;

public class Main {
 public static void main(String [] args)
 {
  String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
  String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=database";//database换成你的数据库名称
  String userName="username";//username换成你的SQL Server登录名
  String userPwd="password";//password换成你的SQL Server登陆密码
  try
  {
   Class.forName(driverName);
   Connection dbConn=DriverManager.getConnection(dbURL,userName,userPwd);
    System.out.println("连接数据库成功");
  }
  catch(Exception e)
  {
   System.out.print("连接失败");
  }
 }
}

连接MySQL数据库

package test_mysql;

import java.sql.Connection;
import java.sql.DriverManager;

public class TestMySQL {
 public static void main(String[] args) {
  String driverName="com.mysql.jdbc.Driver";
  String dbURL="jdbc:mysql://localhost:3306/demo";    //连接URL为   jdbc:mysql//服务器地址/数据库名  ,后面的2个参数分别是登陆用户名和密码
  String userName="root";
  String userPwd="mysql";
  try{
   Class.forName(driverName);
   System.out.println("加载驱动成功");
  }
  catch(Exception e){
   System.out.println("加载驱动失败");
  }
  try {
   Connection dbConn=DriverManager.getConnection(dbURL,userName,userPwd);
   System.out.println("连接数据库成功");
  } catch (Exception e) {
   System.out.print("连接失败");
  }
 }
}

版权声明:本文不足之处在所难免,敬请各位批评指正,留下宝贵意见。

时间: 2024-10-08 10:27:46

JDBC------dom4j+xml连接Oracle的相关文章

JMeter学习(八)JDBC测试计划-连接Oracle

一.测试环境准备   Oracle:10g  JDBC驱动:classes12.jar oracle安装目录下(oracle\product\10.2.0\db_1\jdbc\lib\classes12.jar)文件复制到JMeter/lib目录下  JMeter:jmeter-2.11 二.设计测试计划并运行 1.打开JMeter,点击测试计划 点击“浏览...”按钮,将你的JDBC驱动添加进来. 2.添加一个线程组,右键点击“线程组”,在下面添加一个“JDBC Connection Conf

【java项目实战】dom4j解析xml文件,连接Oracle数据库

简介 dom4j是由dom4j.org出品的一个开源XML解析包.这句话太官方,我们还是看一下官方给出的解释.如下图: dom4j是一个易于使用的.开源的,用于解析XML,XPath和XSLT等语言的库.它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP等编程标准. 特点 dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用的特点,同时它也是一个开放源代码的软件.如今你可以看到越来越多的Java软件都在使用dom4j来读写XML,例

JDBC连接Oracle数据库

我记得大二的时候,我们上java课程,当时老师就说了JDBC这个东西,也没怎么好好学,直到现在,我也不直到JDBC是什么玩意,就知道这玩意可以从数据库提取数据,那么JDBC到底是什么呢? JDBC是Java DataBase Connectivity的缩写,含义意思是java数据库连接,不需要多解释了,我感觉! 那么我们如何去做这样子的一个连接呢?用过一次之后就会发现,其实很简单,记住几个步骤,还有就是导入必要的驱动包就可以了,下面是几个重要的步骤: 第一步,你的项目环境中必须要导入必要的数据库

简单的JDBC连接oracle数据库例子

java连接Oracle数据库 JDBC(Java Data Base Connectivity,java数据库连接),那么我们该如何用java进行数据库的连接呢. import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class JDB

Linux(Centos)下jdbc连接oracle速度超慢的问题

最近在centos下写个java swing程序,发现在linux用jdbc连接oracle及其缓慢,还经常失败.但是同样的程序在windows下运行就连接的非常快.网上搜索了很长时间都和我这情况没关系,偶然看到了下面的文章: 原文地址http://www.xuebuyuan.com/200181.html 解决使用JDBC连接orcale速度慢的问题 2012年04月01日 ⁄ 综合 ⁄ 共 341字 ⁄ 字号 小 中 大 ⁄ 评论关闭 使用java 开发程序,选用ojdbc14.jar的驱动

java程序通过jdbc连接oracle数据库方法

1.  赋予scott用户连接权限:Grant connect to scott: 2.   在Myeclipse中新建java项目导入jdbc包(classes12.jar):        右键项目 bulid path -〉add external archives 选择classes12.jar 3.   新建java文件, lianxi01.java import java.sql.Connection; import java.sql.ResultSet; import java.s

java通过jdbc方式连接oracle数据库

最基本的Oracle数据库连接代码(只针对Oracle11g): 1.右键项目->构建路径->配置构建路径,选择第三项“库”,然后点击“添加外部Jar”,选择“D:\Oracle\app\oracle\product\11.2.0\server \jdbc\lib\ojdbc6_g.jar”(注:D:\Oracle为数据库的安装路径). 2.以下代码为非常标准的Oracle数据库连接代码示例: /** * 一个非常标准的连接Oracle数据库的示例代码 */ public void testO

Java 使用JDBC连接Oracle

1 package oracle; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.ResultSet; 6 import java.sql.Statement; 7 8 //使用JDBC连接Oracle 9 10 public class TestOracle { 11 12 public static void main(String[] args) { 13 // TODO

Linux下通过JDBC连接Oracle,SqlServer和PostgreSQL

今天正好需要统计三个网站栏目信息更新情况,而这三个网站的后台采用了不同的数据库管理系统.初步想法是通过建立一个小的Tomcat webapp,进而通过JDBC访问这三个后台数据库,并根据返回的数据生成报表. 1 开发环境 数据库管理系统:一个是SqlServer 2000,另一个是Oracle 9i,再一个是PostgreSQL9.1 Tomcat执行平台:CentOSx64 + JDK7.0x64 (全64位环境) 2 JDBC驱动的选择 2.1 Oracle9i Oracle官方提供了ojd