抽取的JDBC工具类小小练习
需求
- 通过键盘录入用户名和密码
- 判断用户是否登入成功
步骤
- 创建数据库表user
- 判断输入与数据库表中所有数据是否相匹配,打印成功或失败。
- 创建一个登录方法即可
public boolean login(String username,String password){
第一步判断是否连接成功语句
if(username==null||password==null){
return false;
}
Statement stmt=null;//之所以可以这么干应该还是因为是接口的原因
Connection conn=null;
ResultSet rs=null;
//连接数据库判断是否登陆成功语句
第二步 使用抽取的类实现连接
try {
conn= JDBCUtils.getConnection();
//2 定义sql
//select *from user where username='zhangsan' and password = '111' 打印的结果
//双引号里面的字段会经过编译器解释然后再当作HTML代码输出,但是单引号里面的不需 要解释,直接输出。例如:
//$abc='I love u';
//echo $abc //结果是:I love u
//echo '$abc' //结果是:$abc
//echo "$abc" //结果是:I love u
//所以由于上述原因才需要在变量两端加双引号”+username+",假如username传入的是 zhangsan 那么查询后”+username+"的意思才是 zhangsan 这样一切就都合理了。前提是语句里面是传入的变量才行。
String sql="select *from user where username='"+username+"' and password = '"+password+"'";//这个拼接还是不太明白 不过又好像是在sql语句语法里 面,"表示单引号 where后面的username是'lisi'
//System.out.println(sql);
//System.out.println("'");
//3 获取执行的对象
stmt = conn.createStatement();
//4执行查询
rs = stmt.executeQuery(sql);//结果集
//5 判断
/*if(rs.next()){
return true;
}else{
return false;
}*/
return rs.next();
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtils.close(rs,stmt,conn);
}
return false;
}
创建的数据库表为
id | username | password |
---|---|---|
1 | zhangsan | 123 |
2 | lisi | 234 |
运行结果为:
请输入用户名:
zhangsan
请输入密码:
123
登录成功
注意点写在了代码里面!!
今天突然有所感悟,学过的东西要及时的想办法使用,最好的学习不就是复述出来吗!然后在这个基础上加以改造,而绝不能只学不用,就陷入了一种不断的学习的状态却感觉没什么收获!!
贵有恒,又何必三更眠五更起,最无益怕是一日曝十日寒!