站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题利用PreparedStatement向数据库中插入记录时,各字段的设置???

利用PreparedStatement向数据库中插入记录时,各字段的设置???

摘要: 利用PreparedStatement向数据库中插入记录时,各字段的设置???


现有一例子如下:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:test";
Connection con=DriverManager.getConnection(url);
PreparedStatement stm=con.prepareStatement("insert into message values(?,?,?,?,?)");
stm.setString(1,title);
stm.setString(2,name);
if(mail.length()==0)
stm.setString(3,null);
else stm.setString(3,mail);
stm.setString(4,datetime);
stm.setString(5,content);
try
{
stm.executeQuery();
}catch(Exception e)
{}
con.close();
}
catch(Exception e)
{}
这样设置对吗?title,name,mail,datatime,content是分别插入了message表的第1-5列了吗?

如果我要读出某个记录的顺序号,这样做行吗?
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:test";
Connection con=DriverManager.getConnection(url);
Statement stm=con.createStatement();
ResultSet result=stm.executeQuery("select count(*) from message");
int message_count=0;
if(result.next())
{
message_count=result.getInt(1);
result.close();
}
---------------------------------------------------
<tr><td align="center">留言条数:</td><td colspan=3>
<%
out.println("("+message_count+")");
%>
</td></tr>

select count(*) from message 表示的是什么意思?(是读出表message中现有的记录总数吗?)
message_count=result.getInt(1); 表示的又是什么意思?(是将result中的第1列以integer形式赋值给message_count吗?)
这是一个留言板的部分程序,主要工作流程是添加一条留言后,就能跳转到相应的页面看到该留言,并显示相应的留言条数message_count,敬请各位高手不吝赐教!!!小弟先谢过了.


楼主自问自答,完全正确

这样读出顺序号似乎不可能

数据库应该有个primary key


小弟是个jsp的初学者,这个程序是小弟从书上照着敲下来的,因为书上并没有提供相应的数据库中表及其他元素的设置,因此我按照自己的理解这样设置了access表,表名为message,第1-5个字段依次设置的是title,name,mail,datatime,content,数据类型全部都设置为文本,其他的参数均为默认值,(我也尝试过将datatime的数据类型设置为日期/时间类型,可还是出现同样的问题),我想问一下是不是我的数据库中表或者其他的东西设置的有问题,导致了出现了下述问题
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1。
如果我要得到某个留言的顺序号,我该怎样操作呢?是在jsp程序中做相应的改动,如果是这样的话,具体应该怎样改呢?还是应该在message表中设置第6个字段为自动编号,对第6个字段进行操作来得到某个留言的顺序号呢?急盼回音!!!


↑返回目录
前一篇: java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1。
后一篇: 用JB2006 怎么把 源代码添加到 工程里面?没有jpx文件