java访问数据库

来源:互联网 发布:苏州凌志软件 编辑:程序博客网 时间:2024/05/22 16:53

此文中的代码主要列出连接数据库的关键代码,其他访问数据库代码省略

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); 

//////////////////////////////////////////////////////

//// jdbc连接mysql

//////////////////////////////////////////////////////

 

1.使用Sun的JDBC-ODBC桥驱动程序,语句为:
Class.forName("sun.jdbc.odbc.driver.JdbcOdbcDriver");
然后要设置数据源,设置好后ODBC数据源url为:jdbc:odbc:<数据源名>
连接数据源:DriverManager.getConnection("jdbc:odbc:grade");

2.如果没有用sun的jdbc-odbc桥驱动程序,最直接的方法是把下载的jdbc驱动拷贝到jre/lib/ext目录,就不用设置环境变量,就能用加载驱动,如mysql:
mysql-connector-java-5.0.0-beta-bin.jar拷贝到jre/lib/ext
MysqlDriver.java
import java.sql.*;

public class MysqlDriver{
  public static void main(String args[]){
    try{
//加载数据库驱动程序类隐式注册驱动程序, mysql也可以用Class.forName("org.gjt.mm.mysql.Driver").newInstance();
      Class.forName("com.mysql.jdbc.Driver").newInstance();
      System.out.println("Success loading Mysql Driver!");
    }catch(Exception ex){
      System.out.println("Error loading Mysql Driver!");
    }
    try{
      String name,xuehao,chinese,math,english;
       Connection conn = null;
       Statement stmt = null;
       ResultSet rs = null;

//创建一个Connection实例建立与数据库之间的联系,
      conn = DriverManager.getConnection("jdbc:mysql://localhost/vote?user=root&password=******&characterEncoding=gb2312");
      System.out.println("Success connect Mysql Database!");

//Statement对象用于将sql语句发送到数据库中
      stmt = conn.createStatement();
      rs = stmt.executeQuery("SELECT * FROM grade");
//ResultSet对象包含符合sql语句所有行,并通过一套get()方法对行中数据的访问。
      while(rs.next()){
         name = rs.getString("name");
         xuehao = rs.getString("num");
         chinese = rs.getString("chinese");
         math = rs.getString("math");
         english = rs.getString("english");
         System.out.println("学号 "+"姓名 "+"语文 "+"数学 "+"英语");
         System.out.println(" "+xuehao+" "+name+" "+chinese+" "+math+" "+english);
         System.out.println();
       }
      conn.close();
    }catch(SQLException ex){
      System.out.println("SQLException:"+ex.getMessage());
      System.out.println("SQLState:"+ex.getSQLState());
      System.out.println("VendorError:"+ex.getErrorCode());
    }
  }
}

3.jdbc url参数说明
url格式:jdbc:mysql://[hostname][port]/dbname[?param1=value1][?m2=value2]...
参数名 取值 缺省
user 数据库用户名 无
password 数据库用户口令 无
autoReconnect 当数据库连接丢失时是否自动连接,取值true/false false
maxReconnects 如果autoReconnect为true,此参数为重试次数,缺省为3次 3
initialTimeout 如果autoReconnect为true,此参数为重新连接前等待的秒数 2
maxRows 设置查询时返回的行数,0表示全部 0
useUnicode 是否使用unicode输出,true/false false
characterEncoding 如果useUnicode,该参数制定encoding类型,建议使用8859_1 无