java语言Oracle、SQLServer、MySQL数据库的连接方法
2014-09-08 15:43
639 查看
概要:下面分了三种连接的方式:其实除了URL的书写格式不同,java进行数据库连接的代码是完全一样的;当然URL书写的不同导致所需要的驱动jar也不相同;
USERNAME也因数据库的不同而不同,Oracle、SQLServer、MySQL数据库默认分别为scott、sa、root,PASSWORD密码自设;同时建议使用2 和 3 中的那种规范的书写方式,具有通用性质。因此,对于对数据库比较了解的,有过开发经验的,可以直接跳过1 和 2或者仅仅看一看1 2的URL即可。
同时,建议大家把URL、USERNAME和PASSWORD这些final static 变量写在类似配置文件的(例如,以properties结尾的文件中,或者XML文件中),这样在数据库迁移 、工程部署以及代码合并时非常方便,这也符合开发的需要——把逻辑代码和用例代码分开,请看 4
1 java连接Oracle数据库(Oracle数据库的安装网上有教程,本人装的是32位系统)
2 java连接SQLServer数据库(SQLServer数据库的安装网上有教程,本人装的是32位系统)
3 java连接MySQL数据库(MySQL数据库的安装网上有教程,本人装的是32位系统)
//需要的驱动包:mysql-connector-java-5.0.8-bin.jar
4 以java连接mysql为例,列举properties
(1)DBConfig.properties: 这里可以写下所有的公共配置信息
( 3) DBUtil.java 此类通过DBConfig.java类里面的函数 返回Connection的实例,类里面全部是static 方法,直接可以用类名调用(这里有中文乱码,懒得改了)
USERNAME也因数据库的不同而不同,Oracle、SQLServer、MySQL数据库默认分别为scott、sa、root,PASSWORD密码自设;同时建议使用2 和 3 中的那种规范的书写方式,具有通用性质。因此,对于对数据库比较了解的,有过开发经验的,可以直接跳过1 和 2或者仅仅看一看1 2的URL即可。
同时,建议大家把URL、USERNAME和PASSWORD这些final static 变量写在类似配置文件的(例如,以properties结尾的文件中,或者XML文件中),这样在数据库迁移 、工程部署以及代码合并时非常方便,这也符合开发的需要——把逻辑代码和用例代码分开,请看 4
1 java连接Oracle数据库(Oracle数据库的安装网上有教程,本人装的是32位系统)
注意本文所用的方法是通用的方法建立连接的jdbc的thin方式: 此种方法不需要安装Oracle的客户端,也不需要配置odbc,故此种方法用得比较普遍。 此方法在使用时需要将oracle的jar包加到classpath变量中,此包可以在oralce客户端程序的$ORACLE_HOME/jdbc/lib/classes12.jar找到(或者***\product\11.2.0\dbhome_1\jdbc\lib下的ojdbc6.jar buildpath到工程里面)。 如下:是自己建立的测试用例,测试通过 package tju.cs.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public classDBConn { private static String URL = "jdbc:oracle:thin:@127.0.0.1:1521:sample";// 最后一项是自己所建立的数据库名称(sid) private static String USERNAME = "scott"; private static String PASSWORD = "root"; public static Connection getCon(){ Connectionconn = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); conn= DriverManager.getConnection(URL,USERNAME,PASSWORD); }catch(Exception e) { e.printStackTrace(); } return conn; } /** * @param args */ public static void main(String[] args) { System.out.println(new DBConn().getCon()); //采用Statement进行查询 //String sql = "select * from student where sname= '张三'"; // 这样可以的哦,下面是更一般的形式: Stringname = "张三"; Stringsql = "select * from student where sname ='"+name+"' "; Connectionconn = getCon(); Statementstatement = null; ResultSetrs = null; try { statement= conn.createStatement(); rs= statement.executeQuery(sql); }catch(SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { while(rs.next()) { // 打印字段信息 System.out.println(rs.getString("sname")+ ","+ rs.getString("sex") ); } }catch(SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } DBConn.close(conn,statement, rs); } public static void close(Connectioncon,Statement sm,ResultSet rs){ try { if(con!=null){ con.close(); } if(sm!=null){ sm.close(); } if(rs != null){ rs.close(); System.out.println("手动执行DBConn类的static方法……"); } }catch(SQLException e) { e.printStackTrace(); } } }
2 java连接SQLServer数据库(SQLServer数据库的安装网上有教程,本人装的是32位系统)
package com.demo.javabean;// 工程所需要的驱动jar包是:mssqlserver.jar msutil.jar msbase.jar import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class DBAccess { public static String drv ="com.microsoft.jdbc.sqlserver.SQLServerDriver"; public static String url ="jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=demoaa"; public static String usr ="sa"; public static String pwd ="root"; private Connection conn = null; private Statement stm = null; private ResultSet rs = null; public boolean createConn() { boolean b = false; try { Class.forName(drv); conn=DriverManager.getConnection(url,usr,pwd); b=true; } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } return b; } public boolean update(String sql) { boolean b = false; try { stm = conn.createStatement(); stm.execute(sql); b = true; } catch (Exception e) { System.out.println(e.toString()); } return b; } public void query(String sql) { try { stm = conn.createStatement(); rs = stm.executeQuery(sql); } catch (Exception e) { e.printStackTrace(); } } public boolean next() { boolean b = false; try { if(rs.next())b = true; } catch (Exception e) { } return b; } public String getValue(String field) { String value = ""; try { if(rs!=null) value = rs.getString(field); } catch (Exception e) { e.printStackTrace(); } if (value == null) value = ""; return value; } public void closeConn() { try { if (conn != null) conn.close(); } catch (SQLException e) { } } public void closeStm() { try { if (stm != null) stm.close(); } catch (SQLException e) { } }
public void closeRs() { try { if (rs != null) rs.close(); } catch (SQLException e) { } } public Connection getConn() { return conn; } public void setConn(Connection conn) { this.conn = conn; } public ResultSet getRs() { return rs; } public void setRs(ResultSet rs) { this.rs = rs; } public Statement getStm() { return stm; } public void setStm(Statement stm) { this.stm = stm; } }// 建议书写为这种格式,这是一个通用的公共类util
3 java连接MySQL数据库(MySQL数据库的安装网上有教程,本人装的是32位系统)
//需要的驱动包:mysql-connector-java-5.0.8-bin.jar
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBAccess {
//public static String drv ="com.microsoft.jdbc.sqlserver.SQLServerDriver";
public static String drv ="com.mysql.jdbc.Driver";//com.mysql.jdbc.Driver
//public static String url ="jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=demoaa";
public static String url ="jdbc:mysql://localhost:3306/TechSearch";
//public static String usr ="sa";
public static String usr ="root";
public static String pwd ="root";
private Connection conn = null;
private Statement stm = null;
private ResultSet rs = null;
public boolean createConn() {
boolean b = false;
try {
Class.forName(drv);
conn=DriverManager.getConnection(url,usr,pwd);
b=true;
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return b;
}
public boolean update(String sql) {
boolean b = false;
try {
stm = conn.createStatement();
stm.execute(sql);
b = true;
} catch (Exception e) {
System.out.println(e.toString());
}
return b;
}
public void query(String sql) {
try {
stm = conn.createStatement();
rs = stm.executeQuery(sql);
} catch (Exception e) {
e.printStackTrace();
}
}
public boolean next() {
boolean b = false;
try {
if(rs.next())b = true;
} catch (Exception e) {
}
return b;
}
public String getValue(String field) {
String value = "";
try {
if(rs!=null) value = rs.getString(field);
} catch (Exception e) {
e.printStackTrace();
}
if (value == null) value = "";
return value;
}
public void closeConn() {
try {
if (conn != null)
conn.close();
} catch (SQLException e) {
}
}
public void closeStm() {
try {
if (stm != null)
stm.close();
} catch (SQLException e) {
}
}
public void closeRs() { try { if (rs != null) rs.close(); } catch (SQLException e) { } } public Connection getConn() { return conn; } public void setConn(Connection conn) { this.conn = conn; } public ResultSet getRs() { return rs; } public void setRs(ResultSet rs) { this.rs = rs; } public Statement getStm() { return stm; } public void setStm(Statement stm) { this.stm = stm; } }
4 以java连接mysql为例,列举properties
(1)DBConfig.properties: 这里可以写下所有的公共配置信息
DRIVER=com.mysql.jdbc.Driver URL=jdbc\:mysql\://127.0.0.1\:3306/qq?useUnicode\=true&characterEncoding\=UTF-8 USERNAME=root PASSWORD=root #DRIVERNAME=oracle.jdbc.driver.OracleDriver #URL=jdbc:oracle:thin:@127.0.0.1:1521:orcl #USERNAME=scott #PASSWORD=tiger(2) DBConfig.java 主要通过java.util.Properties的实例pro,load(filepath),进行加载配置信息,再通过pro.getProperty(key)返回key值所对应的value值,其实Properties相当于Hash的有键值对(key - value )
package com.util; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Properties; import javax.swing.JOptionPane; public class DBConfig { //private String filepath="javabeantest\\src\\util\\JDBCconfig.properties";//error //private String filepath="src\\util\\JDBCconfig.properties";//error //private String filepath="javabeantest/src/util/JDBCconfig.properties";//error //private String filepath="util\\JDBCconfig.properties";//error����ֻ�ʺϱ���·�������ܷŵ�tomcat�����Ŷ�� private String filepath = "/com/util/JDBCconfig.properties";//right tomcat and linux only right in this way.. //private String filepath = "\\com\\util\\JDBCconfig.properties";//error //private String filepath = "//com//util//JDBCconfig.properties";//right tomcat private Properties pro=new Properties(); private static DBConfig config=null; public static DBConfig getIntance(){ if(config==null){ config=new DBConfig(); } return config; } private DBConfig(){ try { System.out.println(filepath); //pro.load(new FileInputStream(filepath)); pro.load(getClass().getResourceAsStream(filepath)); } catch (Exception e) { // TODO Auto-generated catch block JOptionPane.showMessageDialog(null, "���ļ��Ҳ���"); } } public String getValue(String key){ return pro.getProperty(key); } }
( 3) DBUtil.java 此类通过DBConfig.java类里面的函数 返回Connection的实例,类里面全部是static 方法,直接可以用类名调用(这里有中文乱码,懒得改了)
package com.util; import java.io.FileInputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; import javax.swing.JOptionPane; public class JDBCUtil { static{ try { Class.forName(DBConfig.getIntance().getValue("DRIVER")); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block JOptionPane.showMessageDialog(null, "����Ҳ���"); } } public static Connection getConnection(){ Connection conn = null; try { String url = DBConfig.getIntance().getValue("URL"); String user = DBConfig.getIntance().getValue("USERNAME"); String pwd = DBConfig.getIntance().getValue("PASSWORD"); System.out.println(url+user+pwd+"&&&&&"); conn = DriverManager.getConnection(url, user, pwd); } catch (Exception e) { JOptionPane.showMessageDialog(null,"��ȡ**����ʧ��"); } return conn; } public static void close(ResultSet set,Statement stmt,Connection conn){ try { if(set!=null){ set.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } try{ if(stmt!=null){ stmt.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } try{ if(conn!=null){ conn.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
相关文章推荐
- Java连接sqlserver,Mysql,oracle等数据库的方法
- 【JAVA】 Java、JSP连接数据库方法类(MySQL、Oracle、SQLServer)
- java连接oracle的几种方法
- Java 通过JDBC连接Mysql数据库的方法和实例【图文说明】
- 2、Java应用中常见的JDBC连接字符串(SQLite、MySQL、Oracle、Sybase、SQLServer、DB2)
- 用JDBC方法连接Oracle和Mysql数据库
- java中三种主流数据库数据库(sqlserver,db2,oracle)的jdbc连接总结
- Java JDBC连接SQLServer2000、Oracle、MySQL数据库
- java连接mysql数据库乱码的解决方法
- java中三种主流数据库数据库(sqlserver,db2,oracle)的jdbc连接总结
- Eclipse中Java连接MySQL数据库的方法
- java里连接sqlserver对象名无效的解决方法 java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 无效
- (收藏)Java与SQL Server, MySql, Oracle, Access的连接方法以及一些异常解决
- Java与SQL Server, MySql, Oracle, Access的连接方法以及一些异常
- Java连接MySql数据库的方法
- Java连接MySQL数据库出现乱码的解决方法
- Java与SQL Server, MySql, Oracle, Access的连接方法以及一些异常 .
- java语言连接Mysql数据库
- Java与Oracle数据连接方法
- Java JDBC 连接 Oracle 三种方法