java使用jdbc连接数据库,使用prepareStatement防止sql注入过程

62 阅读1分钟
/**
 * mysql链接地址,
 * */
String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=true";
/**
 * mysql的账号密码
 * */
String username = "root";
String password = "root";
/**
 * 链接对象
 * */
Connection connection = null;
/**
 * 操作对象
 * */
PreparedStatement statement = null;
/**
 * 结果对象用于存储查询数据库得到的数据集
 * */
ResultSet resultSet = null;
try {
    Class.forName("com.mysql.cj.jdbc.Driver");
    connection = DriverManager.getConnection(url, username, password);
    String sql = "SELECT *FROM studentinfo where id=?";
    /**
     * 操作对象对sql预编译
     * */
    statement = connection.prepareStatement(sql);
    /**
     * 将预编译中的占位符进行和替换
     * */
    statement.setInt(1, 1);
    /**
     * 操作对象调用方法进行数据库操作,得到数据
     * */
    resultSet = statement.executeQuery();
    /**
     * 处理结果集,打印输出结果
     * */
    while (resultSet.next()) {
        System.out.println("SNo=" + resultSet.getString("SNo"));
        System.out.println("SName=" + resultSet.getString("SName"));
        System.out.println("Birth=" + resultSet.getString("Birth"));
        System.out.println("SPNo=" + resultSet.getString("SPNo"));
        System.out.println("Major=" + resultSet.getString("Major"));
        System.out.println("Grade=" + resultSet.getString("Grade"));
        System.out.println("SInstructor=" + resultSet.getString("SInstructor"));
        System.out.println("SPwd=" + resultSet.getString("SPwd"));
    }
} catch (ClassNotFoundException | SQLException e) {
    e.printStackTrace();
} finally {
    try {
        /**
         * 将资源释放,防止程序占用资源造成资源的浪费
         * */
        resultSet.close();
        statement.close();
        connection.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }

}