在做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