屁股铠甲º 四九o
签名是一种态度,我想我可以更酷...
关注数: 1 粉丝数: 0 发帖数: 11,510 关注贴吧数: 53
预处理语句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); } }
有没有大神给我指点一下,我这个模糊查询的接口哪里错了 我这个的结果会返回数据库里面全部的试卷,而不是查询要的部分试卷 <?php header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept"); include 'tokencheck.php'; include 'time.php'; function _post($str) { $val = !empty($_POST[$str]) ? $_POST[$str] : null; return $val; } $token = _post('token'); $num =_post('num'); $index = _post('index'); $first = $index - 1; //echo $token; $check_arr = tokencheck($token); $check_state = 0; if(!empty($check_arr)) { $check_state = 1; if ($check_arr['expiry_date'] - get_msectime() < 0) $check_state = 2; } if($check_state == 1)$username = $check_arr['username']; else if ($check_state == 2) die('token 过期'); else die('token 解析失败'); include 'conn.php'; include 'unicode_change.php'; $keyword=$_POST[$keywords]; $result = mysql_query("SELECT * FROM VIEW_ALL_PAPER WHERE NAME LIKE '%$keyword%'"); $re=array(); $i=0; while($re[$i] = mysql_fetch_assoc($result)) { $re[$i]['createTime'] = get_data_format($re[$i]['createTime']); $re[$i]['closeTime'] = get_data_format($re[$i]['closeTime']); $re[$i]['startTime'] = get_data_format($re[$i]['startTime']); $re[$i]['collected'] = mysql_num_rows(mysql_query("SELECT * FROM COLLECTED WHERE ID = '$username' AND PAPER ='".$re[$i]['id']."'")); $re[$i]['status'] = mysql_num_rows(mysql_query("SELECT * FROM ANSWER WHERE STUDENT = '$username' AND PAPER ='".$re[$i]['id']."'")); if($re[$i]["closeTime"] - get_msectime() < 0) $re[$i]['status'] = 2; $i++; } array_splice($re, $i, 1); $paper = array("paper"=> $re,"total" => $total,"index" => $index,"num" => $num); echo encode_json($paper); mysql_close($con); ?>
1 下一页