• 三种执行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

  • 相关阅读:
    009-LSTM网络-长短记忆网络
    008---递归神经网络-RNN
    007-卷积神经网络03-前向传播-反向传播
    006-卷积神经网络02-池化层,全连接层
    005-卷积神经网络01-卷积层
    004-神经网络
    003-神经网络基础-最优化,前向传播,反向传播
    002-神经网络基础-得分函数,SVM损失函数,正则化惩罚项,softmax函数,交叉熵损失函数
    001-神经网络基础-K近邻算法
    DBSCAN聚类算法
  • 原文地址:https://www.cnblogs.com/atp-sir/p/6165088.html
Copyright © 2020-2023  润新知