大神们,请教 查询字段怎么参数化啊?除了拼接sql,有其他方法吗?

ALTERproc[dbo].[Proc_TopArticles](@countint,@fieldsvarchar(200),@Column_Idvarchar(20)... ALTER proc [dbo].[Proc_TopArticles] (
@count int,
@fields varchar(200),
@Column_Id varchar(20)
)
as
begin
select top( @count) @fields from articles
where Column_Id = @Column_Id AND State=1 ORDER BY UpdateDate
end
展开
 我来答
雪曦军俊
2016-05-19 · TA获得超过2155个赞
知道小有建树答主
回答量:416
采纳率:0%
帮助的人:53.5万
展开全部
遇到复杂的拼接建议不要使用Statemente而是使用 java.sql.PreparedStatement这个类 也就是使用占位符来表示举个例子
String sql=“SELECT * FROM table1 where name= and age= ”;
PreparedStatement pstmt=conn.prepareStatement(sql) ;
pstmt.setString(1,"张三"); //设置sql里面的第一个 String类型
pstmt.setInt(2,23); //设置 sql里面的第二个 ?号,int类型
pstmt.executeQuery();

使用占位符可以减少sql语句发生错误,把需要用变量代替的地方都是用 ? ,然后 setXXX就可以 从 1 开始计数 注意类型
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式