您的位置:首页 > 数据库 > Oracle

JDBC用PreparedStatement在Oracle中插入日期

2013-03-12 14:39 274 查看
create table STUDENT
(
ID       NUMBER(6) not null,
NAME     NVARCHAR2(20),
AGE      NUMBER(3),
SEX      NUMBER(1),
BIRTHDAY DATE
)
public class DBUtil {
private final String DRIVER="oracle.jdbc.driver.OracleDriver";
private final String URL="jdbc:oracle:thin:@localhost:1521:orcl";
private final String USERNAME="scott";
private final String USERPWD="tiger";

Connection conn=null;
PreparedStatement pst=null;
ResultSet rs=null;
public Connection getConnection() throws SQLException, ClassNotFoundException{
if(conn==null){
Class.forName(DRIVER);
conn=DriverManager.getConnection(URL,USERNAME,USERPWD);
}
return conn;
}

public int executeUpdate(String sql,Object[]params) throws SQLException, ClassNotFoundException{
getConnection();
pst=conn.prepareStatement(sql);
if(params!=null&¶ms.length!=0){
for (int i = 0; i < params.length; i++) {
pst.setObject(i+1, params[i]);
}
}
int result=pst.executeUpdate();
return result;
}

}
public void save(Student stu){
String sql="insert into student(id,name,age,sex,birthday) values(sq_student_id.nextval,?,?,?,?)";
Object []params={stu.getName(),stu.getAge(),stu.getSex(),stu.getBirthday()};
DBUtil dbUtil=new DBUtil();
try {
dbUtil.executeUpdate(sql, params);
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}finally{
dbUtil.closeAll();
}

}

Scanner input=new Scanner(System.in);
System.out.print("请输入用户名:");
String name=input.nextLine();
System.out.print("请输入年龄:");
int age=input.nextInt();
System.out.print("请输入性别(1:男,0:女):");
int sex=input.nextInt();
System.out.print("请输入出生日期(格式:xxxx-xx-xx):");
input.nextLine();
String birthdayStr=input.nextLine();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Date birthday=null;
Student stu=null;
try {
birthday=sdf.parse(birthdayStr);
stu=new Student(name,age,sex,new java.sql.Date(birthday.getTime()));
} catch (ParseException e) {
stu=new Student(name,age,sex);
}

StudentDao stuDao=new StudentDao();
//保存
stuDao.save(stu);


如果使用Statement对象,如下:
String sql="insert into student(id,name,age,sex,birthday) values(sq_student_id.nextval,'"
+stu.getName()+"',"+stu.getAge()+","+stu.getSex()+",To_date('"+stu.getBirthday()+"','yyyy-mm-dd'))";
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: