其他分享
首页 > 其他分享> > PreparedStatement 的简单使用

PreparedStatement 的简单使用

作者:互联网

PreparedStatement 的简单使用

目录

是什么 ?

为什么出现 ?

Statement的不足:

1、大量字符串拼接,代码可读性降低;

2、sql注入

sql注入是 ?一个bug

通过字符串的拼接,可以得到一个恒等的sql语句,可以跳过某些判断

有什么优势 ?

该接口的使用

tips:
以下代码中包含工具类的使用,异常也没有做相应处理。

1、建立链接

// 1、建立连接
connection = JDBCUtil.getConnection();

2、写SQL语句

// 2、写SQL
String sql = "select * from account where username = ? and password = ?";

3、创建PreparedStatement对象预编译

// 3、预编译
pstmt = connection.prepareStatement(sql);

4、对占位符赋值(执行参数)

// 4、占位符赋值
pstmt.setString(1,username);
           pstmt.setString(2,password);

image

5、执行SQL

// 5、正式执行 sql
ResultSet resultSet1 = pstmt.executeQuery();

PreparedStatement的一些方法

关闭连接

不要忘了关闭连接哇~~

小例子

/**
* 查询 id = 1 学生的总成绩
*/
    @Test
    public void testPst(){
            // 建立连接
            Connection conn = JDBCUtil.getConnection();
            String sql = "SELECT stu.name,sum(sc.score)\n" +
                    "FROM student stu\n" +
                    "LEFT JOIN scores sc ON sc.s_id = stu.id\n" +
                    "LEFT JOIN course c ON sc.c_id = c.id\n" +
                    "WHERE stu.id = 1";

            // 预编译
            PreparedStatement pst = conn.prepareStatement(sql);
          // 执行SQL
            ResultSet res = pst.executeQuery();
            while (res.next()){
                        // 我把这里的一个参数看作是你想查看的信息
                String name = res.getString("stu.name");
                int sum = res.getInt("sum(sc.score)");
                System.out.println(name + " " + sum);
            }
 @Test
    public void testPst02(){
        /**
         * 增加老师
         */
            Connection conn = JDBCUtil.getConnection();
            String sql = "INSERT INTO teacher VALUES(7,\"李老师\")";

            PreparedStatement pst = conn.prepareStatement(sql);
            int i = pst.executeUpdate();  // 这里返回值是整数 ~
            if (i == 1) {
                System.out.println("更新成功!");
            }
	}

参考:https://www.geeksforgeeks.org/how-to-use-preparedstatement-in-java/

标签:PreparedStatement,简单,int,使用,编译,sql,SQL,id
来源: https://www.cnblogs.com/fulfill/p/16601975.html