码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2015-08-31 21:43:17      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:

         在做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("连接失败");
  }
 }
}


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

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

标签:

原文地址:http://blog.csdn.net/u010928364/article/details/48111265

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!