黑马程序员技术交流社区
标题: DQL语句的补充和JDBC [打印本页]
作者: zjj5669436182 时间: 2017-12-28 21:48
标题: DQL语句的补充和JDBC
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,字段2… FROM 表名 GROUP BY 字段 HAVING 条件;
分组操作中的having子语句,是用于在分组后对数据进行过滤的,作用类似于where条件。
b: having与where的区别
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 {
作者: 陈文老师 时间: 2017-12-29 10:05



作者: 渝小妹 时间: 2017-12-29 10:29
总结很不错哟~继续加油
作者: 花开的季节 时间: 2017-12-29 10:56
总结很不错哟~继续加油
作者: 没关系 时间: 2017-12-29 11:16
温故而知新 加油哦 继续努力
作者: 1414225997 时间: 2017-12-29 14:20
哇,赞赞赞
作者: xiongliu 时间: 2018-1-2 10:20
新年快乐~~~~·
作者: 渝小妹 时间: 2018-1-2 10:23
成功不是“一朝一夕”的事,需要的是“一如既往”的坚持,“一成不变”的乐观,“一门心思”的奋斗,“一鸣惊人”的能力,“一丝不苟”的态度,只有这样,2018你才能取得“一飞冲天”的骄人成绩。
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |