1 package jdbcdome;
2
3 import java.sql.connection;
4 import java.sql.preparedstatement;
5 import java.sql.resultset;
6 import java.sql.sqlexception;
7 import java.util.scanner;
8
9 import javafx.geometry.side;
10
11
12
13 /**
14 *
15 * @author 不凡
16 *这里是使用的基础的方法,也是一开始学习的方法,
17 * 但是不能防止sql注入,(但是可以在输入框中限制特殊字符输入来达到同样的目的)
18 * 下面的是预编译语句对象
19 */
20 public class dbtext {
21 public static void main(string[] args) {
22 /*
23
24 *
25 *
26 jdbctools db1 =jdbctools.getdb();
27 scanner sc1 =new scanner(system.in);
28 system.out.println("请输入你的账号: ");
29 int sid = sc1.nextint();
30 system.out.println("请输入你的密码");
31 string pwd = sc1.next();
32 string sqlquery="select * from student where sid = "+sid+" and pwd ='"+pwd+"'";
33
34 resultset rs1 = db1.query(sqlquery);
35 try {
36 if(rs1.next())
37 {
38 system.out.println("登陆成功!");
39 system.out.println(sqlquery);
40 system.out.println(rs1.getstring(2));
41 }else {
42 system.out.println("登陆失败!");
43
44 }
45
46 } catch (sqlexception e) {
47 // todo auto-generated catch block
48 e.printstacktrace();
49 }
50
51 */
52 //--------------------------------------------------------------------------------------------
53 //这里使用的预编译语句对象 有三个特点
54 /* 1.防止sql注入
55 * 2.简单
56 * 3.可以用(?)问号,充当占位 更加方便
57 * 4.语句只编译执行效率更高。
58 *
59 */
60 scanner sc1 =new scanner(system.in);
61 system.out.println("请输入你的账号: ");
62 int sid = sc1.nextint();
63 system.out.println("请输入你的密码");
64 string pwd = sc1.next();
65 // 问好(?) 表示占位符
66 string sqlquery="select * from student where sid = ? and pwd =?";
67 connection con1 = jdbctools.getconn();
68 try {
69 //生成预编译语句对象
70 preparedstatement pst = con1.preparestatement(sqlquery);
71 //给占位符赋值
72 pst.setint(1, sid);
73 pst.setstring(2, pwd);
74 //执行预编译对象
75 resultset rs2= pst.executequery();
76 if(rs2.next()){
77 system.out.println("登陆成功");
78 rs2.getstring(2);
79 }else{
80 system.out.println("登陆失败!");
81 }
82
83 } catch (sqlexception e) {
84 e.printstacktrace();
85 }
86
87 }
88
89 }