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

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

DQL-----语句的补充
排序查询 ORDER  BY
例如:SELECT *FROM 表名 ORDER BY  列名  [DES降序 ASC升序查询排序始终放于语句最后面
聚合函数
1 count :统计制定类不为null的记录素.如果是整张表格,则统计有多条数据
例如:SELECT COUNT(列名 或者 *(查询全表)) FROM 表名;
2 sum:求和 对列的数据进行求和
例如:SELECT SUM(列名)  AS  `SUM`  FROM 表格名 ;
3 MAX 列的最大值
4 MIN 列的最小值
5 AVG 平均值
例如:SELECT AVG(列名) FROM 表名
分组查询 GROUP BY
                a: 使用格式
分组查询是指使用group by字句对查询信息进行分组,
l                SELECT 字段1,字段2FROM 表名 GROUP BY 字段 HAVING 条件;
分组操作中的having子语句,是用于在分组后对数据进行过滤的,作用类似于where条件。
                b: havingwhere的区别
                        having是在分组后对数据进行过滤.
                        where是在分组前对数据进行过滤
                        having后面可以使用分组函数(统计函数)
                        where后面不可以使用分组函数。
JDBC
1 JDBC就是一套API,sun定义的类或者接口
提供商提供驱动例如 MySQL驱动 Oracle驱动
2 JDBC操作步骤
A. 注册驱动
固定格式 Class.forName(“com.mysql.jdbc.Driver”);
B.获得连接:需要记忆单词 获取connection
String url =”jdbc:mysql://localhost:3306/mybase”;
(jdbc:mysql://主机连接名:端口号/数据库名)
String user = “root”;//数据库用户名
String pass =”root”;//数据库密码
利用DriverManager.getConnection(url,user,pass);方法得出connection连接
Connection con = DriverManager.getConnection(url,user,pass);
C.获得执行语句对象
Statement stat = con.createStatement();
D.执行sql语句
Int executeUpdate(String sql);返回为成功了几条.只能用于insert , delete ,update 功能
ResultSet executeQuery(String sql):返回是一个结果集,对表格进行查询操作
E.处理结果
如果是做查询功能的时候
需要有以下操作
ResultSet rs = con.executeQuery(sql);
While(rs.next()){
System.out.println(rs.getObject(“列名”));
}
在输入sql语句的时候,建议使用编辑器编好后复制到sql语句中
F.释放资源
针对输入攻击的解决方法
public class ZhuRuGongJi {
        public static void main(String[] args) throws Exception {
                // 注册驱动
                Class.forName("com.mysql.jdbc.Driver");
                // 获取连接
                // url :数据库地址 jdbc:mysql://连接主机:端口号/数据库名字
                String url = "jdbc:mysql://localhost:3306/mybase";
                String user = "root";
                String pass = "root";
       
                Connection con = DriverManager.getConnection(url,user,pass);
                Scanner sc =  new Scanner(System.in);
                System.out.println("请输入用户名:");
                String username = sc.nextLine();
                System.out.println("请输入密码:");
                String password = sc.nextLine();
                //执行sql语句数据查询,存在登录成功
                String sql = "SELECT *FROM users WHERE  username=? AND PASSWORD=?";
                PreparedStatement pst = con.prepareStatement(sql);
                //System.out.println(pst);
                //调用pst对象set方法设置问号站位付
                pst.setObject(1, username);
                pst.setObject(2, password);
                //调用方法执行sql获取结果
                ResultSet rs = pst.executeQuery();
                while(rs.next()){
                        System.out.println("登录成功");
                        System.out.println(rs.getString("username")+"\t"+rs.getString("password"));
                }
                rs.close();
                pst.close();
                con.close();
        }
}
利用PreparedStatement进行对表格的操作
public class UpdateDemo {

7 个回复

倒序浏览
回复 使用道具 举报

总结很不错哟~继续加油
回复 使用道具 举报


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