zoukankan      html  css  js  c++  java
  • 三种执行SQL语句的的JAVA代码

    问题描述:

      连接数据库,执行SQL语句是必不可少的,下面给出了三种执行不通SQL语句的方法。

    1.简单的Statement执行SQL语句。有SQL注入,一般不使用。

    	public static void testStatement() throws Exception{
    		Statement stm = null;
    		ResultSet rs = null;
    		DataBaseConn con = new DataBaseConn();
    		try{
    			stm = con.getMssqlConn().createStatement();
    			rs = stm.executeQuery("select top 1 * from tfixitem");
    			if(rs.next()){
    				System.out.println("testStatement测试,FIXITEM_CODE = " + rs.getString("FIXITEM_CODE"));
    			}
    			con.closeCon();
    		}catch(Exception e){
    			System.out.println(e.getMessage());
    			e.printStackTrace();
    		}
    	}
    

    2.防止SQL注入的PreparedStatement执行SQL语句。

        public static void testPreparedStatement(){
            PreparedStatement pstm = null;
            ResultSet rs = null;
            DataBaseConn con = new DataBaseConn();
            try{
                pstm = con.getMssqlConn().prepareStatement("select * from tfixitem where fixitem_id = ?");
                pstm.setInt(1, 2);
                rs = pstm.executeQuery();
                if(rs.next()){
                    System.out.println("testPreparedStatement测试,FIXITEM_CODE = " + rs.getString("FIXITEM_CODE"));
                }
            }catch(Exception e){
                e.printStackTrace();
            }
        }

    3.执行存储过程的CallableStatement执行存储过程SQL

        public static void testCallableStatement(){
            CallableStatement cstm = null;
            ResultSet rs = null;
            DataBaseConn con = new DataBaseConn();
            try{
                cstm = con.getMssqlConn().prepareCall("{call SP_QUERY_TFIXITEM(?,?,?,?,?,?,?,?)}");
                cstm.setInt(1, 2);
                cstm.setInt(2, 1);
                cstm.setInt(3, 0);
                cstm.setInt(4, 0);
                cstm.setString(5, "");
                cstm.setString(6, "");
                cstm.setString(7, "");
                cstm.setInt(8, 0);
                rs = cstm.executeQuery();
                if(rs.next()){
                    System.out.println("testCallableStatement测试,FIXITEM_CODE = " + rs.getString("FIXITEM_CODE"));
                }
            }catch(Exception e){
                e.printStackTrace();
            }
        }

    总结:执行简单SQL一般用preparedStatement,执行存储过程使用CallableStatement

  • 相关阅读:
    css3在不同型号手机浏览器上的兼容一览表
    android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事项
    web app iphone4 iphone5 iphone6 iphone6 Plus响应式布局 适配代码
    用sql查询当天,一周,一个月的数据
    VS2010 生成Xml格式的注释文档
    VS XML注释
    css3 box-sizing属性
    CSS技巧(一):清除浮动
    使用Windows Server 2003搭建一个asp+access网站
    如何在Windows Server 2003搭建Windows+iis+asp+access环境
  • 原文地址:https://www.cnblogs.com/atp-sir/p/6165088.html
Copyright © 2011-2022 走看看