PreparedStatement
Posted 勇往直前
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PreparedStatement相关的知识,希望对你有一定的参考价值。
/** * PreparedStatement: * 更新操作:public int executeUpdate() * 查询操作:public Result executeQuery() * 填充数据:public void setXxx(int index,值)//注意index是从1开始 * * 注意:在使用PreparedStatement操作Date数据时,使用的是java.sql.Date类, * 但在实际的程序之中描述的是java.util.Date类型,在java.util.Date中有三个子类 * Date(日期)、Time(时间)、Timestamp(日期时间), * java.sql.Date类:public Date(long date) * java.sql.Time类:public Time(long time) * java.sql.Timestamp类:public Timestamp(long time) * * 在java.util.Date中有一个方法可以将Date变为long * getTime():返回long类型数据 * * 总结:先将java.util.Date的数据转换为long类型数据,再作为参数传入到java.sql.Date的构造方法里,即可实现转换。 * java.util.Date-->java.sql.Date * new java.sql.Date (new Date().getTime())) * */ public class Test011 { public static void main(String[] args) throws Exception { //注册驱动 Class.forName(Const.DBDRIVER); //获取连接对象 Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott","tiger"); String sql=" insert into member(mid,name,age,birthday,note) values(myseq.nextval,?,?,?,?)"; //创建操作数据库预编译对象 PreparedStatement ps = conn.prepareStatement(sql); //填充数据,注意编号从1开始 ps.setString(1, "tom"); ps.setInt(2, 100); ps.setDate(3, new java.sql.Date(new Date().getTime())); ps.setString(4, "哈哈"); int i = ps.executeUpdate(); System.out.println(i); } }
/** * 根据name字段进行模糊查询(部分代码) */ String column ="name"; String keyWord="李"; //"?"填充的占位符只有数据才可以使用,而对于列是无法使用的 String sql=" select mid,name,age,birthday,note from member where "+column+" like ? "; PreparedStatement ps=conn.prepareStatement(sql); ps.setString(1, "%"+keyWord+"%"); ResultSet rs = ps.executeQuery(); while(rs.next()){ System.out.println(rs.getInt(1)+"、"+rs.getString(2)+"、"+rs.getInt(3)+"" + "、"+rs.getDate(4)+"、"+rs.getString(5)); }
以上是关于PreparedStatement的主要内容,如果未能解决你的问题,请参考以下文章
我想用 Java 代码插入 Oracle 表,但 PreparedStatement 出现错误 [重复]