A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© kuqi3712 中级黑马   /  2017-12-28 21:37  /  1379 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

查询对结果进行排序
                默认是升序
                升序: order by 列名[asc]
                降序: order by 降序[desc]
               
聚合
                可以对一列进行计算,返回单一的值
                count
                select count (*) from 表名
                select sum(money) from 表名
                select max  最大值
                select avg 平均数
                这些方法的后面不能有空格
               
                SELECT COUNT(*),department FROM student GROUP BY department;
               
                SELECT 列名1,列名2  FROM 表名 order BY 列名1,列名2 desc; 2种排序
                排序语句一定是在sql语句的末尾
               
                select truncate(avg(列名),2) from 表名 计算平均值后保留2位
               
                查询后 在count 列的后面有一个department列
                分组之后再次筛选 用having 关键字
                where 与 having 区别
                where 是分组之前过滤 having 是分组之后过滤
               
JDBC:
                可以理解为java提供的一套API,可以为多种数据库提供统一的访问.是java访问数据库的规范
       
        JDBC的开发步骤:
                !.注册驱动
                告知jvm使用的是哪一个数据库驱动
                //使用 java.sql.DriverManager的静态方法registerDriver(Driver driver)
                driver 是一个接口,参数传递 MySQL驱动程序中的实现类
                通过看源码发现这种方法 注册了两次
                解决办法
                 Class.forName("com.mysql.jdbc.Driver");
                2.获得连接
                使用jdbc中的类完成对MySQL数据库的连接
                 //url: 数据库地址 jdbc:mysql://链接主机ip:端口号//数据库名字
                 String url="jdbc:mysql://localhost:3306/mydatabase";
                 String username="root";
                 String password="root";
                 Connection connection=DriverManager.getConnection(url,username,password);
                3.获得语句执行平台
                通过连接对象获取对SQL语句的执行者对象
                //获取statement对象
                Statement statement= connection.createStatement();
                4.执行sql语句
                使用执行者对象,向数据库执行SQL语句
                 //int executeUpdate(String sql) 执行数据库中的sql语句 仅限 insert delete update
                 //返回值int是操作成功数据表的行数
                int row= statement.executeUpdate("NSERT INTO sort(sname,sprice,sdesc) VALUES ('汽车用品',200000,'疯狂涨价')");
                System.out.println(row);
                statement.executeQuery(sql);查询
               
                注入攻击
                密码处填写 ' or 1='1
                防止注入攻击
                PreparedStatement
                set
                可以多次高效的执行SQL语句
                //?是占位符
                String sql = "SELECT * FROM pass WHERE puser=? AND ppassword=?";
                PreparedStatement pstatement=connection.prepareStatement(sql);
                //PreparedStatement中的set方法 设置占位符
                pstatement.setObject(1, user);
                pstatement.setObject(2, pass);
                //用PreparedStatement获取结果集不用传sql的参数
                ResultSet rs = pstatement.executeQuery();
               
                prepareStatement是connection接口中的方法
               
                获取数据库执行后的结果
                // boolean next()  
                5.处理结果
               
                6.释放资源
                一堆的close
                statement.close();
                connection.close();
               
               
        使用JDBC查询表 获取结果集

7 个回复

倒序浏览
回复 使用道具 举报
回复 使用道具 举报
总结很不错哟~继续加油
回复 使用道具 举报
保持,继续努力
回复 使用道具 举报
新年快乐~~~~·
回复 使用道具 举报
成功不是“一朝一夕”的事,需要的是“一如既往”的坚持,“一成不变”的乐观,“一门心思”的奋斗,“一鸣惊人”的能力,“一丝不苟”的态度,只有这样,2018你才能取得“一飞冲天”的骄人成绩。
回复 使用道具 举报
新年快乐    继续加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马