连接的种类:主要使用java专用驱动和ODBC桥.这些只作掌握。因为有Hibernate,一切搞定。
导入相应的包(java.sql.Connection/DriverManager)和驱动(sql驱动和oracle驱动)
如果是ODBC连接就应先建如ODBC数据源
连接数据库的格式:(有两种)
一种:
1.Class.forName(driver);//driver:为参数各种数据库的不同见后文;
2.Connection con=DriverManager.getConnection(url,uid,pwd);//URL:jdbc:oracle:thin:@192.168.0.1:1521:jcsj
二种:
1.SQLServerDriver driver=new SQLServerDriver();//这两句替代第一种中Class.name这一句
DriverManager.registerDriver(driver);//
2.Connection con=DriverManager.getConnection(conSql,strName,strPwd); //
ODBC数据源连接(MsSql和Oracle都适用,其它的也可以适用):
import sun.jdbc.odbc.JdbcOdbcDriver;
import java.sql.DriverManager;
import java.sql.Connection;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:ODBC数据源","uid","pwd");
java专用驱动连接
一种MsSql:
import com.microsoft.jdbc.sqlserver.SQLServerDriver;
import java.sql.Connection;
import java.sql.DriverManager;
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection con=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;databasename=pubs","sa","");
二种Oracle:
import oracle.jdbc.driver.OracleDriver;
import java.sql.DriverManager;
import java.sql.Connection;
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con2=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:oradb","system","system");
//oradb为oracle服器名
操作数据
import java.sql.PreparedStatement;//执行带参sql接口;
import java.sql.CallableStatement;//执行存储过程;
import java.sql.ResultSet;//记录集
PreparedStatement ps=con.prepareStatement(strSql); //str:"insert into customer(name,sex,age) values(?,?,?)"
ps.setString(1,c.getName());//参数
ps.executeUpdate();//执行增,删,改;
ps.executeQuery();//查,如下
PreparedStatement ps=con.prepareStatement(select);
Customer c=(Customer)o;
ps.setString(1,c.getName());
ResultSet rs=ps.executeQuery();//接收记录集
if(rs.next())
{
Customer cNew=new Customer();
cNew.setName(rs.getString("name"));
cNew.setSex(rs.getString("sex"));
cNew.setAge(rs.getInt("age"));
return cNew;
}
//执行存储过程
(存储过程
create or replace procedure getName(customerID_1 number,name_1 out varchar2)
is
begin
select name into name_1 from customer where customerid=customerID_1;
end;
)
//执行
CallableStatement cs=con.prepareCall("{call getName(?,?)}");
cs.setInt(1,2);
cs.registerOutParameter(2,Types.VARCHAR);
cs.execute();
String name=cs.getString(2);