首先工程里面需要导入jdbc 的 jar包(好像没有附件功能,暂时不上传了),
创建jdbc连接:
public Connection getConnection(){
String url = "jdbc:oracle:thin:@192.168.57.15:1521:zxptgbk";
String useName = "ningbo";
String pwdd = "aisino123";
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
return DriverManager.getConnection(url, useName, pwdd);
}catch(Exception e){
e.printStackTrace();
}
return null;
}
拼接sql
public static void main(String[] args) {
X x = new X();
Connection conn = x.getConnection();
String test = "select j,x from table where l=?";//批处理的预处理,?占位符
String insert = "insert into temp_scjg(qymc,je) values(?,?)";//数据会追加到数据库,不会覆盖数据
try{
//conn.setAutoCommit(false);//设置是否自动提交 为否
PreparedStatement add = conn.prepareStatement(insert);
PreparedStatement pre = conn.prepareStatement(test);
pre.setString(1,"value");//传值给sql里面的第一个占位符(?),值为value
ResultSet r = pre.executeQuery();
while (r.next()){
r.getDouble("j");//查询的列j对应是什么类型就是用get对应的类型
add .setString(1,r.getString("XF_QYMC"));
add .setDouble(2,r.getDouble("JE"));
add .addBatch();
}
Statement statement = conn.createStatement();
ResultSet r0 = statement.executeQuery(test); //不支持预处理传值,如果是变量value可以使用字符串拼接实现sql语句
while (r0.next()){
}
pre0.executeBatch();
//conn.commit();
pre.close();
pre0.close();
conn.close();
//System.out.println(lis.size());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
connection. (API http://www.apihome.cn/api/java/Connection.html)
1. close(), 关闭该数据库连接
2. commit(), 提交所有更改内容并释放该Connection对象锁定的资源
3. createStatement(), 基于本Connection对象,创建Statement对象
4. getAutoCommit(), 获取当前是否是自动提交模式
5. getMetaData(), 获取本连接相关的数据库元数据
6. isClosed(), 返回当前连接对象是否已经被关闭
7. preparedStatement(), 基于本连接对象,创建PreparedStatement对象
8. rollback(), 取消本轮事务中前面已经提交的更改
9. setAutoCommmit(), 设置是否自动提交