Java数据库连接(JDBC)由一组用 Java 编程语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的 API,使他们能够用纯Java API 来编写数据库应用程序。然而各个开发商的接口并不完全相同,所以开发环境的变化会带来一定的配置变化。本文主要集合了不同数据库的连接方式。
一、连接各种数据库方式速查表
下面罗列了各种数据库使用JDBC连接的方式,可以作为一个手册使用。
- 1、Oracle8/8i/9i数据库(thin模式)
-
-
-
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
-
String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID
-
String user="test";
-
String password="test";
-
Connection conn= DriverManager.getConnection(url,user,password);
-
-
- 2、DB2数据库
-
-
-
Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();
-
String url="jdbc:db2://localhost:5000/sample"; //sample为你的数据库名
-
String user="admin";
-
String password="";
-
Connection conn= DriverManager.getConnection(url,user,password);
-
-
- 3、Sql Server7.0/2000数据库
-
-
-
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
-
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";
- //mydb为数据库
-
String user="sa";
-
String password="";
-
Connection conn= DriverManager.getConnection(url,user,password);
-
-
- 4、Sybase数据库
-
-
-
Class.forName("com.sybase.jdbc.SybDriver").newInstance();
-
String url =" jdbc:sybase:Tds:localhost:5007/myDB";//myDB为你的数据库名
- Properties sysProps = System.getProperties();
-
SysProps.put("user","userid");
-
SysProps.put("password","user_password");
-
Connection conn= DriverManager.getConnection(url, SysProps);
-
-
- 5、Informix数据库
-
-
-
Class.forName("com.informix.jdbc.IfxDriver").newInstance();
- String url = "jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver;
-
user=testuser;password=testpassword"; //myDB为数据库名
-
Connection conn= DriverManager.getConnection(url);
-
-
- 6、MySQL数据库
-
-
-
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
-
String url ="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"
- //myDB为数据库名
-
Connection conn= DriverManager.getConnection(url);
-
-
- 7、PostgreSQL数据库
-
-
-
Class.forName("org.postgresql.Driver").newInstance();
-
String url ="jdbc:postgresql://localhost/myDB" //myDB为数据库名
-
String user="myuser";
-
String password="mypassword";
-
Connection conn= DriverManager.getConnection(url,user,password);
-
-
- 8、access数据库直连用ODBC的
-
-
-
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
-
String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+application.getRealPath("/Data/ReportDemo.mdb");
-
Connection conn = DriverManager.getConnection(url,"","");
- Statement stmtNew=conn.createStatement() ;
二、JDBC连接MySql方式
下面是使用JDBC连接MySql的一个小的教程
1、查找驱动程序
MySQL目前提供的java驱动程序为Connection/J,可以从MySQL官方网站下载,并找到mysql-connector-java-3.0.15-ga-bin.jar文件,此驱动程序为纯java驱动程序,不需做其他配置。
2、动态指定classpath
如果需要执行时动态指定classpath,就在执行时采用-cp方式。否则将上面的.jar文件加入到classpath环境变量中。
3、加载驱动程序
- try{
- Class.forName(com.mysql.jdbc.Driver);
-
System.out.println(Success loading Mysql Driver!);
- }catch(Exception e)
- {
-
System.out.println(Error loading Mysql Driver!);
- e.printStackTrace();
- }
4、设置连接的url
- jdbc:mysql://localhost/databasename[?pa=va][&pa=va]
用个例子来说明一下:
- import java.sql.*;
-
import oracle.sql.*;
-
import oracle.jdbc.pool.OracleDataSource;
-
-
public class JdbcOracle {
-
public static void main(String[] args) {
-
-
-
-
-
-
-
-
-
-
Connection conn = null;
-
Statement stmt = null;
-
ResultSet rs = null;
-
String url = "jdbc:oracle:thin:@localhost:1521:ORADB";
-
String username = "scott";
-
String password = "tiger";
-
try {
-
-
-
-
-
-
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- conn = DriverManager.getConnection(url, username, password);
-
-
-
-
-
-
conn.setAutoCommit(false);
-
-
-
- stmt = conn.createStatement();
-
-
-
-
-
-
-
-
-
-
rs = stmt.executeQuery("select id,name,age,sex,birth from employee";
-
-
-
-
while (rs.next()) {
-
int id = rs.getInt("id";
-
String name = rs.getString("name";
-
int age = rs.getInt("age";
-
String sex = rs.getString("sex";
-
Date birth = rs.getDate("birth";
- }
-
-
-
-
java.sql.Date date = new java.sql.Date(82, 10, 05);
-
int i = stmt.executeUpdate("insert into employee values" +
-
"(1,'qds',22,'1',TO_DATE(date,'YYYY,MM,DD'))";
-
-
-
int j = stmt.executeUpdate("update employee set age=21 where id=1";
-
-
-
int k = stmt.executeUpdate("delete from employee set id=1";
-
-
- conn.commit();
- rs = stmt.executeQuery(
-
"select id,type_id,prod_name from product where id=1";
-
-
-
System.out.println("id=" + rs.getInt("id");
-
System.out.println("type_id=" + rs.getInt("type_id");
-
if (rs.wasNull()) {
-
System.out.println("type_id was null!";
- }
-
System.out.println("prod_name=" + rs.getString("prod_name");
-
-
-
-
-
-
-
-
- rs.close();
-
-
-
-
-
boolean result = stmt.execute("create table customers(" +
-
"id integer constraint customers_pK primary key," +
-
"first_name varchar2(10) not null," +
-
"last_name varchar2(10) not null," +
-
"dob date," +
-
"phone varchar2(15)" +
-
""
- ;
-
if (result == true) {
-
System.out.println("The table has Created!";
- }
-
else {
-
System.out.println("The table hasn't Create";
- }
-
- }
-
catch (Exception e) {
-
System.out.println("error: " + e);
-
try {
- conn.rollback();
- }
-
catch (SQLException sqle) {}
- }
-
finally {
-
-
try {
-
if (rs != null)
- rs.close();
- }
-
catch (SQLException sqle) {
-
System.out.println("SQLState: " + sqle.getSQLState());
-
System.out.println("SQLErrorCode: 错误代码" + sqle.getErrorCode());
-
System.out.println("SQLErrorMessage:错误情况的字符串 " + sqle.toString());
- }
-
-
try {
-
if (stmt != null)
- stmt.close();
- }
-
catch (SQLException sqle1) {
-
System.out.println("SQLState: " + sqle1.getSQLState());
-
System.out.println("SQLErrorCode: 错误代码" + sqle1.getErrorCode());
-
System.out.println("SQLErrorMessage:错误情况的字符串 " + sqle1.toString());
- }
-
-
try {
-
if (conn != null)
- conn.close();
- }
-
catch (SQLException sqle2) {
- System.out.println(sqle2.toString());
- System.out.println(sqle2.getSQLState());
- System.out.println(sqle2.getErrorCode());
- }
-
- }
-
- }
- }
本文转自sucre03 51CTO博客,原文链接:http://blog.51cto.com/sucre/381833,如需转载请自行联系原作者