class test1 {
public test1(){
String url = "jdbc:oracle:thin:@stardust:1521:orcl";
//theUser为数据库用户名
String username = "scott";
//thePw为数据库密码
String password = "abc123";
//几个数据库变量
Connection connection=null;
Statement st =null;
ResultSet rs=null;
try {
System.out.println("test");
Class.forName("oracle.jdbc.driver.OracleDriver");
//与url指定的数据源建立连接
connection = DriverManager.getConnection(url, username, password);
st=connection.createStatement();
st.execute("insert into nk (id,local,towhere,price,time) values('1','珠江路','迈皋桥','2元','2010/01/03')");
connection.close();
}catch (Exception e) {
e.printStackTrace();
}
}
}
new test1();
values中的五个值可以是变量吗,比如是java中某个int型的全局变量,在values这行应该怎么写?
insert into nk (id,local,towhere,price,time) values(:arg0,:arg1,:arg2,:arg4,:arg4)
agrx.. 为java变量
使用PreparedStatement操作Oracle数据库:
1.定义预处理SQL语句;
2.为每一个“?”设置对应的值;
3.使用PreparedStatement操作数据库。TestPreparedStmt.java:
view plaincopy to clipboardprint?
import java.sql.*;
public class TestPreparedStmt {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement pstmt = null;
String sql = null;
int id = 0;
String name = null;
if (args.length != 2) {
System.exit(-1);
} else {
id = Integer.parseInt(args[0]);
name = args[1];
}
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:mgc", "system", "admin");
sql = "Insert INTO member(id,name) VALUES(?,?)";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, id);
pstmt.setString(2, name);
pstmt.executeUpdate();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (pstmt != null) {
pstmt.close();
pstmt = null;
}
if (conn != null) {
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}