javaweb 之MySQL 查询的相关方法 prepareStatement 防 sql 攻击

/*
         * jdbc四大配置参数 
         * driverClassName:com.mysql.jdbc.Driver
         * url:jdbc:mysql://localhost:3306/test
         * username:root
         * password:123         * 
         */
        Class.forName("com.mysql.jdbc.Driver"); //加载驱动类
        String url = "jdbc:mysql://localhost:3306/blog";
        Connection con = DriverManager.getConnection(url,"root","root");
        Statement stmt = con.createStatement();
        String sql = "select * from users";
        ResultSet re = stmt.executeQuery(sql); //查询方法

获取记录条数(总行数)

re.last() // 光标指针移动到最后一条记录上面

re.getRow() // 当前 光标指向第几条记录 ,也就告诉我们总共有多少条记录了

re.beforeFirst() //回到虚拟第一行

获取数据表总共多少列

1,调用,resultSet  类 的 getMetaDate 方法 得到元数据,

2,再调用 getColumnCount() 返回总列数

3,获取指定列名,getColumnName(int colindex)

prepareStatement 防 sql 攻击

    public boolean login2(String username,String password) throws SQLException, ClassNotFoundException {
        /*
         * 链接mysql
         * 1,加载驱动类(四大配制 driverClassName,url , username,password)         *
         * 2,通过Drivermanger得到Connection
         * 3,得到语句发送器Statement
         * 4,按行查询,next()方法
         */        
        Class.forName("com.mysql.jdbc.Driver");
        String url = "jdbc:mysql://localhost:3306/blog";
        String db_user = "root";
        String db_password = "root";        
        Connection con = DriverManager.getConnection(url,db_user,db_password);    
        //使用prepareStatement 防 sql 攻击
        String sql = "select * from users where username=? and password=?"; //参数用问号代替
        PreparedStatement psmt = con.prepareStatement(sql);
        psmt.setString(1, username);//给第一个问号赋值
        psmt.setString(2, password);//给第二个问号赋值
        ResultSet re = psmt.executeQuery();//调用查询方法向数据库提交查询语句
        return re.next();
    }

猜你喜欢

转载自blog.csdn.net/weixin_41957098/article/details/88650969