Statement、PreparedStatement、CallableStatement

本文章实在上一篇文章的基础上进行增删改查操作的。不懂得可以去看看第一篇。
http://blog.csdn.net/qq_36748278/article/details/76861334


父Statement————————>子PreparedStatement
父PreparedStatement————>子CallableStatement
这三个都是接口。用于和数据库连接是使用的。


Statement接口
1、用于执行静态 SQL 语句并返回它所生成结果的对象。
2、在默认情况下,同一时间每个 Statement 对象只能打开一个 ResultSet 对象。
3、因此,如果读取一个 ResultSet 对象与读取另一个交叉,则这两个对象必须是由不同的 Statement 对象生成的。

ResultSet executeQuery(String sql) :执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。 通常用于查找。
int executeUpdate(String sql) : 执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句。


PreparedStatement接口:表示预编译的 SQL 语句的对象。
下标是指?所在第几个位置,下标就是几。下标从1开始。根据参数类型选个对应的方法,比如int类型的值就选择setInt()方法
1、 void setString(int parameterIndex, String x) :将指定参数设置为x(第一个参数是下标从1开始,x 是字符串类型)
2、 void setFloat(int parameterIndex, float x) :将指定参数设置为x(第一个参数是下标从1开始,x 是float类型)
3、void setInt(int parameterIndex, int x) :将指定参数设置为x(第一个参数是下标从1开始,x 是int类型)

举个例子,在Student上进行更新操作

public void update(Student stu) throws SQLException, IOException, ClassNotFoundException{   
        Connection con = null;
        PreparedStatement ps = null;        //采用预编译的处理对象

        try {
            con = this.getConnection();     //进行数据库连接

            String sql = "update Student set sname = ?,sage = ? where stuid = ?";
            ps = con.prepareStatement(sql);
            ps.setString(1,stu.getName());
            ps.setInt(2, stu.getAge());
            ps.setInt(3,stu.getId());

            int num = ps.executeUpdate();           //返回值表示改变了几行数据。
            System.out.println("update方法改变了的数据的行数为:" + num);
        }finally{
            this.close(con, ps, null);
        }       
    }

CallableStatement
用于执行 SQL 存储过程的接口。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值