这就面临个小问题,因为以前都是用Hibernate进行数据库连接,用习惯了ssh框架开发。回头再用
JDBC感觉陌生了。以下是我的总结:
1.首先 导驱动程序(mysql,oracle);
2.方法实现类:
//写了三个方法,
getOracleConnection()//
getMyConnection()//
add()//
public static Connection conMY=null;//MySql
public static Connection conOr=null;//Oracle
private static Connection getOracleConnection(){
Connection conn=null;
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:数据库名";
String user = "用户名";
String password = "密码";
try {
Class.forName(driver);
conOr = DriverManager.getConnection(url, user, password);
if (!conn.isClosed())
System.out.println("Oracle数据库连接成功!");
} catch (ClassNotFoundException e) {
System.out.println("找不到驱动程序");
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
private static Connection getMyConnection(){
Connection conn=null;
String driver = "org.gjt.mm.mysql.Driver";
String url = "jdbc:mysql://localhost/数据库名";
String user = "用户名";
String password = "密码";
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, user, password);
if (!conn.isClosed())
System.out.println("MySql数据库连接成功!");
} catch (ClassNotFoundException e) {
System.out.println("找不到驱动程序");
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
private static void add()throws Exception{
PreparedStatement stmt = null;
PreparedStatement pst = null;
String sql="insert into ASK_FILTRATION(ID,INFO_CONTENT,ADD_TIME) values(ASK_FILTRATION_SEQ.nextval,?,?)";
String sql1="select keycont from keycollect where keytype = 0 ";
try{
pst= conMY.prepareStatement(sql1);
ResultSet rs =pst.executeQuery();
while(rs.next()){
stmt = con.prepareStatement(sql);
stmt.setString(1, rs.getString("keycont"));
stmt.setString(2, "2008-08-08");
String s=rs.getString("keycont");
stmt.executeQuery();
}
}catch(SQLException e) {
e.printStackTrace();
}
}
但是添加的时候出现问题了,Mysql人家的主键Id是自动增长型的,而且oracle不支持自动增长型。怎么办?我们需要的Mysql表中个别字段的值,
而不是全部这时候就想到了序列?序列好建,关键怎么用?
首先建序列:
-- Create sequence
create sequence ASK_FILTRATION_SEQ
minvalue 1
maxvalue 999999999999999999999999999
start with 481
increment by 1
cache 20;
其次写添加sql语句
insert into ASK_FILTRATION(ID,INFO_CONTENT,ADD_TIME) values(ASK_FILTRATION_SEQ.nextval,?,?)//ASK_FILTRATION_SEQ.nextval序列名
看后就感觉简单吧!你看后的心情和我做出来的心情一样