zoukankan      html  css  js  c++  java
  • 怎么使用预编译对象?

     1 package jdbcDome;
     2 
     3 import java.sql.Connection;
     4 import java.sql.PreparedStatement;
     5 import java.sql.ResultSet;
     6 import java.sql.SQLException;
     7 import java.util.Scanner;
     8 
     9 import javafx.geometry.Side;
    10 
    11 
    12 
    13 /**
    14  * 
    15  * @author 不凡
    16  *这里是使用的基础的方法,也是一开始学习的方法,
    17 * 但是不能防止SQL注入,(但是可以在输入框中限制特殊字符输入来达到同样的目的)
    18 * 下面的是预编译语句对象
    19  */
    20 public class DBText {
    21     public static void main(String[] args) {
    22         /*
    23          
    24          * 
    25          *
    26         jdbcTools db1 =jdbcTools.getDB();
    27         Scanner sc1 =new Scanner(System.in);
    28         System.out.println("请输入你的账号: ");
    29         int  Sid =   sc1.nextInt();
    30         System.out.println("请输入你的密码");
    31         String pwd = sc1.next();
    32         String sqlQuery="select * from student where sid  = "+Sid+" and pwd  ='"+pwd+"'";
    33         
    34         ResultSet rs1 =  db1.query(sqlQuery);
    35         try {
    36             if(rs1.next())
    37             {
    38             System.out.println("登陆成功!");
    39             System.out.println(sqlQuery);
    40             System.out.println(rs1.getString(2));
    41                 }else {
    42                     System.out.println("登陆失败!");
    43                     
    44                 }
    45         
    46         } catch (SQLException e) {
    47             // TODO Auto-generated catch block
    48             e.printStackTrace();
    49         }
    50         
    51         */
    52         //--------------------------------------------------------------------------------------------
    53         //这里使用的预编译语句对象   有三个特点
    54         /* 1.防止SQL注入
    55          * 2.简单 
    56          * 3.可以用(?)问号,充当占位 更加方便 
    57          * 4.语句只编译执行效率更高。
    58          * 
    59          */
    60         Scanner sc1 =new Scanner(System.in);
    61         System.out.println("请输入你的账号: ");
    62         int  Sid =   sc1.nextInt();
    63         System.out.println("请输入你的密码");
    64         String pwd = sc1.next();
    65         // 问好(?) 表示占位符
    66         String sqlQuery="select * from student where sid  = ? and pwd  =?";
    67         Connection con1 =  jdbcTools.getConn();
    68         try {
    69             //生成预编译语句对象
    70             PreparedStatement pSt =  con1.prepareStatement(sqlQuery);
    71             //给占位符赋值
    72             pSt.setInt(1, Sid);
    73             pSt.setString(2, pwd);
    74             //执行预编译对象
    75             ResultSet rs2= pSt.executeQuery();
    76             if(rs2.next()){
    77                 System.out.println("登陆成功");
    78                 rs2.getString(2);
    79             }else{
    80                 System.out.println("登陆失败!");
    81             }
    82             
    83         } catch (SQLException e) {
    84             e.printStackTrace();
    85         }
    86         
    87     }
    88 
    89 }
  • 相关阅读:
    将Nginx添加到windows服务中
    springboot使用redis管理session
    GIT常用命令
    阻止360、谷歌浏览器表单自动填充
    谈谈对Spring IOC的理解
    同一个Nginx服务器同一端口配置多个代理服务
    LeetCode 653. Two Sum IV
    109. Convert Sorted List to Binary Search Tree(根据有序链表构造平衡的二叉查找树)
    108. Convert Sorted Array to Binary Search Tree(从有序数组中构造平衡的BST)
    LeetCode 236. Lowest Common Ancestor of a Binary Tree(二叉树求两点LCA)
  • 原文地址:https://www.cnblogs.com/xw1024/p/11103644.html
Copyright © 2011-2022 走看看