java 预处理语句_预处理语句PreparedStatement到底咋用啊
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我自己试了一下直接查询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到底咋用啊相关推荐
- mysql 预处理语句_预处理语句
MySQL 8.0支持服务器端预处理语句.这种支持利用了有效的客户端/服务器二进制协议.对参数值使用带占位符的预处理语句具有以下好处:每次执行语句时解析语句的开销都较小.通常,数据库应用程序处理大量几 ...
- Java位语句_卫语句 - 宿小帅的个人空间 - OSCHINA - 中文开源技术交流社区
1.使用卫语句取代嵌套表达式 函数中的条件逻辑使人难以看清正常的执行途径.使用卫语句表现所有特殊情况. 动机:条件表达式通常有2种表现形式.第一:所有分支都属于正常行为.第二:条件表达式提供的答案中只 ...
- MySQL删除空值语句_数据库语句sql 删除空记录
最简单删除SQL Server中所有数据的方法 原文:最简单删除SQL Server中所有数据的方法 最简单删除SQL Server中所有数据的方法 编写人:CC阿爸 2014-3-14 其实 ...
- python编程循环语句_循环语句—Python编程从入门到精通(5)
第6章.循环语句 在本书上一章的内容中,我们学习了实现条件判断功能的条件语句,让程序的执行顺序发生了变化.为了满足循环和跳转等功能,本章将详细讲解Python语言中循环语句的知识,主要包括for循环语 ...
- python异常处理操作语句_异常处理语句(2)
1. try...except语句的嵌套 这种语句就是多except语句的多处理方式,下面我们通过一个例题来学习一下try...except的语句嵌套.def test(): n = int(inpu ...
- mysql50条必看语句_关于语句大全的10篇文章推荐
下面小编就为大家带来一篇mysql的sql语句特殊处理语句总结(必看).小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧1.更新整张表,如果某一行数据的某一列的值为空,那么 ...
- Java学习笔记_选择语句
switch语句格式 switch(表达式){case 常量值1:语句体1;break;case 常量值2:语句体2;break;...default:语句体n+1;break; } break关键字 ...
- for循环递减_判断语句_循环语句
创建时间:20200418 修改时间:20200629 1. if 判断语句 1.1 if...elif...else...语句格式 Python 中 if 语句的一般形式如下所示: if 如果 &q ...
- php mysql预处理_PHP MySQL 预处理语句
预处理语句对于防止 MySQL 注入是非常有用的. 预处理语句及绑定参数 预处理语句用于执行多个相同的 SQL 语句,并且执行效率更高. 预处理语句的工作原理如下:预处理:创建 SQL 语句模板并发送 ...
最新文章
- OneFlow 并行特色
- asp.net源碼坊論壇上線
- android 软键盘显示和隐藏造成页面跳闪问题的解决方案
- Go 类型别名与类型声明的区别
- CSS 实现加载动画之五-光盘旋转
- 纯后处理的volumetric light
- 求职必看!大厂面试中遇到了发散性问题..... ,怎么办?
- python做数字识别_用python实现手写数字识别
- SIFI尺度不变特征变换算法
- MATLAB寻找峰值函数
- Java程序员该如何准备明年的「金三银四」跳槽季,你准备好了吗?
- 网易微专业Android实战教程
- ifrog 1130 喵哈哈村的魔法大师╳灬兲笙疯癫°月 缩点+最小路径覆盖+背包
- 在线协作编辑器EtherPad使用说明
- 精选VSCode插件
- AC6969A 双声道蓝牙芯片 经典蓝牙5.3 纯蓝牙
- centos8 处理挖矿程序攻击
- GRE词汇统计大全(一)
- Android如何定时开机代码,Android定时开机的流程详解
- 反激式开关电源技术归纳(上)
热门文章
- ClassNotFoundException:是否会减慢您的JVM?
- java 将光标移至行首_Java:将条件移至消息文件
- Spring Security with Spring Boot 2.0:密码编码器
- ejb 示例 2018_EJB钝化和激活示例
- 应用JDK 9 @不推荐使用的增强功能
- 使用CLI扩展和重新平衡Couchbase集群
- java ee cdi_Java EE6 CDI,命名组件和限定符
- 每个客户使用Jersey处理的Cookie
- 如何在JSF中实现自定义密码强度指示器
- ADF:弹出窗口,对话框和输入组件