该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

我自己试了一下直接查询id为1的语句,有一条结果出来,但是用了PreparedStatement后就没有结果了,有大佬知道为什么吗orz

package test;

import java.io.IOException;

import java.io.PrintWriter;

import java.sql.*;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import atg.taglib.json.util.JSONArray;

import atg.taglib.json.util.JSONObject;

@WebServlet("/Proinfo")

public class Proinfo extends HttpServlet {

private static final long serialVersionUID = 1L;

static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";

static final String DB_URL = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC";

static final String USER = "root";

static final String PASS = "root";

/**

* @see HttpServlet#HttpServlet()

*/

public Proinfo() {

super();

// TODO Auto-generated constructor stub

}

/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

Connection conn = null;

Statement stmt = null;

int id=1;

response.setContentType("text/html;charset=UTF-8");

PrintWriter out = response.getWriter();

try{

Class.forName("com.mysql.cj.jdbc.Driver");

conn = DriverManager.getConnection(DB_URL,USER,PASS);

stmt = conn.createStatement();

String sql;

sql = "SELECT * FROM all_products where productid=?";

stmt=conn.prepareStatement(sql);

((PreparedStatement) stmt).setInt(1,id);

ResultSet rs = stmt.executeQuery(sql);

JSONArray array=new JSONArray();

ResultSetMetaData metaData = rs.getMetaData();

int columnCount = metaData.getColumnCount();

while (rs.next()) {

JSONObject jsonObj = new JSONObject();

for (int i = 1; i <= columnCount; i++) {

String columnName =metaData.getColumnLabel(i);

String value = rs.getString(columnName);

jsonObj.put(columnName, value);

}

array.put(jsonObj);

}

out.println(array);

rs.close();

stmt.close();

conn.close();

} catch(SQLException se) {

se.printStackTrace();

} catch(Exception e) {

e.printStackTrace();

}finally{

try{

if(stmt!=null)

stmt.close();

}catch(SQLException se2){

}

try{

if(conn!=null)

conn.close();

}catch(SQLException se){

se.printStackTrace();

}

}

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

doGet(request, response);

}

}

java 预处理语句_预处理语句PreparedStatement到底咋用啊相关推荐

  1. mysql 预处理语句_预处理语句

    MySQL 8.0支持服务器端预处理语句.这种支持利用了有效的客户端/服务器二进制协议.对参数值使用带占位符的预处理语句具有以下好处:每次执行语句时解析语句的开销都较小.通常,数据库应用程序处理大量几 ...

  2. Java位语句_卫语句 - 宿小帅的个人空间 - OSCHINA - 中文开源技术交流社区

    1.使用卫语句取代嵌套表达式 函数中的条件逻辑使人难以看清正常的执行途径.使用卫语句表现所有特殊情况. 动机:条件表达式通常有2种表现形式.第一:所有分支都属于正常行为.第二:条件表达式提供的答案中只 ...

  3. MySQL删除空值语句_数据库语句sql 删除空记录

    最简单删除SQL Server中所有数据的方法 原文:最简单删除SQL Server中所有数据的方法 最简单删除SQL Server中所有数据的方法   编写人:CC阿爸   2014-3-14 其实 ...

  4. python编程循环语句_循环语句—Python编程从入门到精通(5)

    第6章.循环语句 在本书上一章的内容中,我们学习了实现条件判断功能的条件语句,让程序的执行顺序发生了变化.为了满足循环和跳转等功能,本章将详细讲解Python语言中循环语句的知识,主要包括for循环语 ...

  5. python异常处理操作语句_异常处理语句(2)

    1. try...except语句的嵌套 这种语句就是多except语句的多处理方式,下面我们通过一个例题来学习一下try...except的语句嵌套.def test(): n = int(inpu ...

  6. mysql50条必看语句_关于语句大全的10篇文章推荐

    下面小编就为大家带来一篇mysql的sql语句特殊处理语句总结(必看).小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧1.更新整张表,如果某一行数据的某一列的值为空,那么 ...

  7. Java学习笔记_选择语句

    switch语句格式 switch(表达式){case 常量值1:语句体1;break;case 常量值2:语句体2;break;...default:语句体n+1;break; } break关键字 ...

  8. for循环递减_判断语句_循环语句

    创建时间:20200418 修改时间:20200629 1. if 判断语句 1.1 if...elif...else...语句格式 Python 中 if 语句的一般形式如下所示: if 如果 &q ...

  9. php mysql预处理_PHP MySQL 预处理语句

    预处理语句对于防止 MySQL 注入是非常有用的. 预处理语句及绑定参数 预处理语句用于执行多个相同的 SQL 语句,并且执行效率更高. 预处理语句的工作原理如下:预处理:创建 SQL 语句模板并发送 ...

最新文章

  1. OneFlow 并行特色
  2. asp.net源碼坊論壇上線
  3. android 软键盘显示和隐藏造成页面跳闪问题的解决方案
  4. Go 类型别名与类型声明的区别
  5. CSS 实现加载动画之五-光盘旋转
  6. 纯后处理的volumetric light
  7. 求职必看!大厂面试中遇到了发散性问题..... ,怎么办?
  8. python做数字识别_用python实现手写数字识别
  9. SIFI尺度不变特征变换算法
  10. MATLAB寻找峰值函数
  11. Java程序员该如何准备明年的「金三银四」跳槽季,你准备好了吗?
  12. 网易微专业Android实战教程
  13. ifrog 1130 喵哈哈村的魔法大师╳灬兲笙疯癫°月 缩点+最小路径覆盖+背包
  14. 在线协作编辑器EtherPad使用说明
  15. 精选VSCode插件
  16. AC6969A 双声道蓝牙芯片 经典蓝牙5.3 纯蓝牙
  17. centos8 处理挖矿程序攻击
  18. GRE词汇统计大全(一)
  19. Android如何定时开机代码,Android定时开机的流程详解
  20. 反激式开关电源技术归纳(上)

热门文章

  1. ClassNotFoundException:是否会减慢您的JVM?
  2. java 将光标移至行首_Java:将条件移至消息文件
  3. Spring Security with Spring Boot 2.0:密码编码器
  4. ejb 示例 2018_EJB钝化和激活示例
  5. 应用JDK 9 @不推荐使用的增强功能
  6. 使用CLI扩展和重新平衡Couchbase集群
  7. java ee cdi_Java EE6 CDI,命名组件和限定符
  8. 每个客户使用Jersey处理的Cookie
  9. 如何在JSF中实现自定义密码强度指示器
  10. ADF:弹出窗口,对话框和输入组件