java关闭预编译对象_怎么使用预编译对象?

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 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值