orcl 防sql注入

本文介绍了如何在Oracle数据库环境中有效防止SQL注入攻击,包括使用预编译语句、参数化查询和输入验证等策略,以确保数据库的安全性和数据完整性。
摘要由CSDN通过智能技术生成
package com.javakc.test;

public class Test {
    public static void main(String[] args) throws Exception {
//        boolean f =Service.login("tom","aa");
//        System.out.println(f);

        boolean f2 =Service.login2("tom","aa");
        System.out.println(f2);
    }
}

package com.javakc.test;

import com.javakc.db.Utils;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

public class Service {
    /**
     * 第一种登录
     * 使用Statement实现的查询
     *
     * @param pwd 密码
     * @return true: 登陆成功(用户名和密码正确) false: 登陆失败(用户名或密码错误,不匹配)
     * @throws Exception
     * @parom username用户名
     */
    public static boolean login(String username, String pwd) throws Exception {
        boolean flag = false;
        //得到数据库连接
        Connection conn = Utils.getConn();
        Statement stmt = conn.createStatement();
        String sql = "select * from t_user where userName='"+username+"'and pwd='" + pwd + "'";
        ResultSet rs = stmt.executeQuery(sql);
        //如果查询到数据集,登陆成功( 用户名和密码正确)
        if (rs.next()) {
            flag = true;
        }
        conn.close();
        return flag;

    }
    //第二种登录
    public static boolean login2(String username, String pwd) throws Exception {
        boolean flag = false;
        //得到数据库连接
        Connection conn = Utils.getConn();
        String sql = "select * from t_user where userName=?  and pwd=?";
        PreparedStatement stmt=conn. prepareStatement(sql);
        stmt.setString(1, username) ;
        stmt.setString(2, pwd);


        ResultSet rs = stmt.executeQuery();
        //如果查询到数据集,登陆成功( 用户名和密码正确)
        if (rs.next()) {
            flag = true;
        }
        conn.close();
        return flag;

    }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值