----------------------------------连接各种数据库--------------------------------------------
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、JDBC-ODBC桥
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:jsp");
jsp为建立的odbc数据源名,事先要先将SQL server的表设置为数据源。在“管理工具”-“数据源odbc”里用系统DNS添加。
8.Oracle8/8i/9i数据库(thin模式)
//import java.sql.*;
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);
Statement stmtNew=conn.createStatement();
9.DB2数据库
//import java.sql.*;
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);
Statement stmtNew=conn.createStatement();
10.Sql Server7.0/2000数据库
//import java.sql.*;
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
//String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db2"; //7.0、2000
String url="jdbc:sqlserver://localhost:1433;DatabaseName=db2"; //2005
//db2为数据库名
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmtNew=conn.createStatement();
11.Sybase数据库
//import java.sql.*;
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);
Statement stmtNew=conn.createStatement();
12.Informix数据库
//import java.sql.*;
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);
Statement stmtNew=conn.createStatement();
13.MySQL数据库
//import java.sql.*;
//Class.forName("org.gjt.mm.mysql.Driver").newInstance();
Class.forName("com.mysql.jdbc.Driver");
//String url ="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1";
String url ="jdbc:mysql://localhost:3306/myDB";
//myDB为数据库名
Connection conn= DriverManager.getConnection(url,"root","root");
Statement stmtNew=conn.createStatement();
14.PostgreSQL数据库
//import java.sql.*;
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);
Statement stmtNew=conn.createStatement();
15.access数据库直连用ODBC的
//import java.sql.*;
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,"sa","");
Statement stmtNew=conn.createStatement();
16.程序计时
long time1=System.currentTimeMillis();
long time2=System.currentTimeMillis();
long interval=time2-time1;
17.延时
try {
Thread.sleep(Integer.Parse(%%1));
} catch(InterruptedException e) {
e.printStackTrace();
}
18.连接Excel文件
//import java.sql.*;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:driver={Microsoft Excel Driver (*.xls)};DBQ=D:\\myDB.xls"; // 不设置数据源
String user="myuser";
String password="mypassword";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmtNew=conn.createStatement();
--------------------------------------------------------------------------------------------
1:JDBC
Java DataBase Connectivity(Java数据库连接技术)
2:JDBC设计的目的。
是一种接口的类组成。使用接口的特点,只定义规范,让不同的
数据库厂商实现。这样程序员不用关心如何连接各种数据库的底
层实现。
3:JDBC的组成结构
JDBC_API(SUN公司提供)
驱动管理器(用于连接API与驱动之间的连接关系)
数据库的驱动程序(数据库厂商提供)
4:JDBC的4种驱动的类型
A:JDBC_ODBC桥
B:本地API
C:网络协议驱动
D:本地协议驱动。
A/B:适合C/S架构
C/D:适合B/S架构。
效率:B>C>D>A
5:JDBC的连接过程:
前提:将数据库的驱动包拷到工程中。
A:加载驱动。
B:获取连接
C:构造SQL语句执行对象
D:发送SQL
E:关闭资源(关闭的先后问题)
6:Connection接口的方法:
close()
savePoint(name)
commit()
rollback()
rollback(SavePoint)
setAutoCommit();
createStatement();
prepareStatement(String sql)
prepareCall(String sql)
7:Statement
addBatch(String sql)
executeBatch
clearBatch()
close()
execute() //执行DDL,DML和Select语句。
true:表示执行的是SElect语句。
false:表示执行提DDL和insert/update/delete语句。
executeUpdate() //执行DDL和DML语句。返回影响行数的结果。
executeQuery(); //执行Select语句。
8:ResultSet
结果集:结果集与游标或者迭代器的机制一致。停在第一条记录的前面。
要用的话,必须Next一下。
9、例子
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; public class TestJDBC { public static void insertBatch() { // userid/username/spassword/deptid Connection connection = null; Statement statement = null; String driver = "oracle.jdbc.driver.OracleDriver"; String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl"; String user = "user"; String password = "password"; try { // 1 加载驱动程序 Class.forName(driver); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { // 2 建立数据库连接 connection = DriverManager.getConnection(url, user, password); // 改变事务提交方式,以便手动控制事务 connection.setAutoCommit(false); // 3 执行SQL语句 statement = connection.createStatement(); // 批量插入 String sql = "insert into t_user values(seq_t_user.nextval,'oracle1105' || seq_t_user.currval,'666666',2)"; statement.addBatch(sql); sql = "insert into t_user values(seq_t_user.nextval,'oracle1105' || seq_t_user.currval,'666666',2)"; statement.addBatch(sql); sql = "insert into t_user values(seq_t_user.nextval,'oracle1105' || seq_t_user.currval,'666666',2)"; statement.addBatch(sql); sql = "insert into t_user values(seq_t_user.nextval,'oracle1105' || seq_t_user.currval,'666666',2)"; statement.addBatch(sql); sql = "insert into t_user values(seq_t_user.nextval,'oracle1105' || seq_t_user.currval,'666666',2)"; statement.addBatch(sql); statement.executeBatch(); // 手动提交 connection.commit(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { // 4 关闭资源 // try { // statement.close(); // connection.close(); // } catch (SQLException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } } } public static void query() { Connection connection = null; Statement statement = null; ResultSet resultSet = null; String driver = "oracle.jdbc.driver.OracleDriver"; String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl"; String user = "user"; String password = "password"; String sql = "select * from t_user"; try { // 1 加载驱动程序 Class.forName(driver); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { // 2 建立数据库连接 connection = DriverManager.getConnection(url, user, password); // 3 执行SQL语句 statement = connection.createStatement(); // 4 接收查询结果 resultSet = statement.executeQuery(sql); while (resultSet.next()) { // 1 字段顺序 int userid = resultSet.getInt(1); String username = resultSet.getString("username"); System.out .println("userid:" + userid + ",username:" + username); } ResultSetMetaData resultSetMetaData=resultSet.getMetaData(); int count=resultSetMetaData.getColumnCount(); System.out.println("列数:"+count); for (int i = 1; i <= count; i++) { System.out.println("列名:"+resultSetMetaData.getColumnName(i)); System.out.print("类型:"+resultSetMetaData.getColumnTypeName(i)); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { // 4 关闭资源 try { resultSet.close(); statement.close(); connection.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public static void main(String[] args) { query(); } }