JDBC(4)PreparedStatement

PreparedStatement:
사전 컴 파일 대상 입 니 다.
Statement 의 하위 인터페이스 입 니 다.
데이터베이스 에 SQL 사전 컴 파일 허용
SQL 을 실행 할 때 SQL 문 구 를 다시 입력 할 필요 가 없습니다. SQL 문 구 를 컴 파일 했 습 니 다.
SQL 문 구 를 실행 합 니 다: execute Query () 또는 execute Update () 주의: SQL 문 구 를 더 이상 들 어 오지 마 십시오.
SQL 주입 을 효과적으로 방지 할 수 있 습 니 다.
 
 방법:
 ->setXxxx (int index, Xxx value): 매개 변수 값 을 입력 합 니 다.
연결 / 닫 기 방법
public Connection getConnection() throws Exception {

        String driver = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://localhost:3307/shijian";
        String user = "root";
        String password = "1234";
        Class.forName(driver);
        Connection connection = DriverManager.getConnection(url, user, password);
        return connection;
        //System.out.println(connection);
    }
    //  
    public  void Close(ResultSet rs, Statement statement, Connection conn) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (statement != null) {
            try {
                statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

 
    @Test
    public void testPreparedStatementjdbc(){
        
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        
        try {
            connection = getConnection();
            String sql = "insert into student(sname,sclass) values(?,?)";
            preparedStatement = (PreparedStatement) connection.prepareStatement(sql);
preparedStatement.setString(1, "lisi"); preparedStatement.setInt(2, 123456); // SQL preparedStatement.executeUpdate(); } catch (Exception e) { e.printStackTrace(); }finally { Close(null, preparedStatement, connection); } }

 
 
 
 

ResultSetMetaData
   ResuleSet      ,         ,     

  ResultSetMetaData    :  ResultSet   getMetaData()  

ResultSetMetaData    
-->int getColumnLabel(int column)        ,   1  
-->String getColumnCount() SQL      
    @Test
    public void testResultMeteData(){
        Connection connection = null;
        PreparedStatement statement  =null;
        ResultSet resuleset = null;
        try {
            String sql = "select * from student where id = ?";
            connection = testGetConnection();
            statement = (PreparedStatement) connection.prepareStatement(sql);
            statement.setInt(1, 2);
            resuleset = statement.executeQuery();
            //1.  ResultSetMetaData  
            ResultSetMetaData rsmd = (ResultSetMetaData) resuleset.getMetaData();
            //2.        
            Map values = new HashMap();
            while(resuleset.next()){
                for(int i = 0; i < rsmd.getColumnCount();i++){
                    String c = rsmd.getColumnLabel(i +1);
                    Object ovalue = resuleset.getObject(c);
                    //System.out.println(c + "--" + ovalue);
                    values.put(c, ovalue); 
            }
            Class clazz = Student.class;
            Object object = clazz.newInstance();
            for(Map.Entry entry: values.entrySet()){
                String sid = entry.getKey();
                String sname = (String) entry.getValue();
                System.out.println( sid + "--" + sname);
            }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            Close(resuleset, statement, connection);
        }
    }

 
다음으로 전송:https://www.cnblogs.com/Mrchengs/p/9780723.html

좋은 웹페이지 즐겨찾기