Java数据库连接PreparedStatement的使用详解

所属分类: 软件编程 / java 阅读数: 17
收藏 0 赞 0 分享

本文介绍了Java数据库连接PreparedStatement的使用详解,分享给大家,具体如下:

首先了解Statement和PreparedStatement的区别:

由此可见,一般使用PreparedStatement。

操作数据库SU(Course表),其中Course属性有Cno,Cname,Cpno,Ccredit。

public class Demo_2 {

  public static void main(String[] args) {

    PreparedStatement ps=null;
    ResultSet rs=null;
    Connection ct=null;

    try {
      //1.加载驱动
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      //2.得到连接
      ct=DriverManager.getConnection("jdbc:odbc:mytest");
      //3.创建PreparedStatement
      ps=ct.prepareStatement("select * from Course where Cno=? and Cpno=?");
      
      ps.setString(1,"3");       //给第一个问号赋值
      ps.setInt(2,1);
      rs=ps.executeQuery();
      
      while(rs.next()){
        String Cno=rs.getString(1);
        String Cname=rs.getString(2);
        int Cpno=rs.getInt(3);
        int Ccredit=rs.getInt(4);
        System.out.println(Cno+" "+Cname+" "+Cpno+" "+Ccredit);
      }  
      
      //使用 PreparedStatement添加一条记录
//      ps=ct.prepareStatement("insert into Course values(?,?,?,?)");
//      ps.setString(1, "8");
//      ps.setString(2, "C++");
//      ps.setInt(3, 3);
//      ps.setInt(4, 2);
//      //执行
//      int i=ps.executeUpdate();
//      if(i==1){
//        System.out.print("添加成功");
//      }else{
//        System.out.print("添加不成功");
//      }
      
    } catch (Exception e) {
      e.printStackTrace();
    }finally{
        try {
          if(rs!=null){
            rs.close();
          }
          if(ps!=null){ 
            ps.close();
          }
          if(ct!=null){
            ct.close();
          }  
        } catch (Exception e) {
          e.printStackTrace();
        }
    }  
  }
}

运行程序,控制台输出符合条件的数据。

最后总结如下:

PreparedStatement 使用crud

1. PreparedStatement可以提高执行的效率(因为它有预编译的功能)

2. PreparedStatement可以防止sql注入,但是要求?赋值的方式才可以。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

Java数据类型的规则

这篇文章主要介绍了Java数据类型的规则的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Spring整合TimerTask实现定时任务调度

这篇文章主要介绍了Spring整合TimerTask实现定时任务调度的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

详解SpringMVC使用MultipartFile实现文件的上传

本篇文章主要介绍了SpringMVC使用MultipartFile实现文件的上传,本地的文件上传到资源服务器上,比较好的办法就是通过ftp上传。这里是结合SpringMVC+ftp的形式上传的,有兴趣的可以了解一下。
收藏 0 赞 0 分享

SpringMVC上传文件的三种实现方式

本篇文章主要介绍了SpringMVC上传文件的三种实现方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

微信公众帐号开发-自定义菜单的创建及菜单事件响应的实例

本篇文章主要介绍了微信公众帐号开发-自定义菜单的创建及菜单事件响应的实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
收藏 0 赞 0 分享

浅析Java中的继承与组合

本文将介绍组合和继承的概念及区别,并从多方面分析在写代码时如何进行选择。文中通过示例代码介绍的很详细,有需要的朋友可以参考借鉴,下面来一起看看吧。
收藏 0 赞 0 分享

利用反射获取Java类中的静态变量名及变量值的简单实例

下面小编就为大家带来一篇利用反射获取Java类中的静态变量名及变量值的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

java启动线程的3种方式对比分析

这篇文章主要为大家对比分析了java启动线程的3种方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

SpringMVC上传和解析Excel方法

这篇文章主要介绍了SpringMVC上传和解析Excel方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

JAVA中String类与StringBuffer类的区别

这篇文章主要为大家详细介绍了JAVA中String类与StringBuffer类的区别,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享
查看更多