通过JDBC连接Oracle数据库

来源:互联网 发布:系统表的定义sql语句 编辑:程序博客网 时间:2024/05/16 23:39

所建目录结构


1.类Dbutil建立访问数据库连接

public static Connection getConnection(){Connection conn = null;try{       //加载Oracle的驱动类       Class.forName("oracle.jdbc.driver.OracleDriver") ;     String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID    String username = "drp1" ;       String password = "drp1" ;       conn =DriverManager.getConnection(url , username , password ) ;    }catch(SQLException se){       System.out.println("数据库连接失败!");       se.printStackTrace() ;    }catch(ClassNotFoundException e){       System.out.println("找不到驱动程序类 ,加载驱动失败!");       e.printStackTrace() ;    }   return conn;}

2.为实现灵活配置,把访问数据库的相关信息配置到配置文件中sys-config.xml

<config><db-info><driver-name>oracle.jdbc.driver.OracleDriver</driver-name><url>jdbc:oracle:thin:@localhost:1521:orcl</url><user>drp1</user><password name="drp1"/></db-info></config>

3.类JdbcConfig,描述jdbc的配置信息(配置文件中的信息)

public class JdbcConfig {private String driverName;private String url;private String user;private String password;// get set 方法}

4.类XmlConfigReader 采用单例模式解析xml文件,返回到JdbcConfig 

·引入ojdbc.jar:支持支持JDBC连接

·使用SAXReader需要导入dom4j.jar包

·使用"/config/db-info/driver-name" XPath访问方式需要Jaxen.jar


public class XmlConfigReader {//饿汉式(预先加载)/*private static XmlConfigReader instance = new XmlConfigReader();private XmlConfigReader(){};public static XmlConfigReader getInstance(){return instance;};*///懒汉式(延迟加载)//私有静态成员变量private static XmlConfigReader instance = null;//保存jdbc相关配置信息private JdbcConfig jdbcConfig = new JdbcConfig();//构造方法private XmlConfigReader(){SAXReader reader = new SAXReader();InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream("sys-config.xml");try {org.dom4j.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 userElt = (Element)doc.selectObject("/config/db-info/user");Element passowrdElt = (Element)doc.selectObject("/config/db-info/password");//设置jdbc相关的配置jdbcConfig.setDriverName(driverNameElt.getStringValue());jdbcConfig.setUrl(urlElt.getStringValue());jdbcConfig.setUser(userElt.getStringValue());jdbcConfig.setPassword(passowrdElt.attributeValue("name"));} catch (DocumentException e) {e.printStackTrace();}};//公有静态入口方法public static synchronized XmlConfigReader getInstance(){if (instance == null){instance = new XmlConfigReader();}return instance;}
/** * 返回jdbc相关配置 * @return */public JdbcConfig getJdbcConfig(){return jdbcConfig;}
5.Dbutil连接配置的数据库(从jdbcConfig获取参数)

public static Connection getConnection(){Connection conn = null;try{       //加载Oracle的驱动类   JdbcConfig jdbcConfig = XmlConfigReader.getInstance().getJdbcConfig();    Class.forName(jdbcConfig.getDriverName()) ;        conn =DriverManager.getConnection(jdbcConfig.getUrl() , jdbcConfig.getUser() , jdbcConfig.getPassword() ) ;    }catch(SQLException se){       System.out.println("数据库连接失败!");       se.printStackTrace() ;    }catch(ClassNotFoundException e){       System.out.println("找不到驱动程序类 ,加载驱动失败!");       e.printStackTrace() ;    }   return conn;}

6.业务逻辑层访问数据库

引入包util

import com.bgt.drp.util.DbUtil;


public Client findUser(int id){//...Connection conn = null;try {conn = DbUtil.getConnection();//....} catch (Exception e) {e.printStackTrace();} finally {DbUtil.close(conn);}return null;}



0 0
原创粉丝点击