菜鸟的博客

纵有疾风起,人生不言弃。

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

JDBC API详解3

复制代码
 1 //preparedStatement  预编译SQL语句并执行:防止SQL注入
 2 
 3 //实现简单的用户登录
 4 import java.sql.Connection;
 5 import java.sql.DriverManager;
 6 import java.sql.ResultSet;
 7 import java.sql.Statement;
 8 import java.util.ArrayList;
 9 
10 public class UserLogin {
11     public static void main(String[] args) throws Exception {
12         //1.注册驱动
13         Class.forName("com.mysql.cj.jdbc.Driver");
14 
15         //2.获取连接
16         String url = "jdbc:mysql://127.0.0.1:3306/db1";
17         String username = "root";
18         String password = "1234";
19         Connection conn = DriverManager.getConnection(url,username,password);
20         
21         //接受用户输入的账号和密码
22         String name = "zhangsan";
23         String pwd = "123";
24 
25         String sql = "select * from tb_user where username = '"+name+"' and password = '"+pwd+"'";
26 
27         //获取stmt对象
28         Statement stmt = conn.createStatement();
29 
30         //执行sql语句
31         ResultSet rs = stmt.executeQuery(sql);
32 
33         if(rs.next()){
34             System.out.println("登陆成功~");
35         }
36         else{
37             System.out.println("登陆失败~");
38         }
39 
40         //释放资源
41         rs.close();
42         stmt.close();
43         conn.close();
44     }
45 
46 }
复制代码
复制代码
 1 /*preparedStatement 的使用
 2 
 3 1.获取PreparedStatement对象,参数用 ?替代。
 4   String sql = "select * from tb_user where username = ? and password = ?"
 5   通过connection对象获取,并传入相应的sql语句
 6   PreparedStatement pstmt = conn.prepareStatement();
 7   
 8 2.设置参数值
 9   PreparedStatement对象:setXxx(参数1,参数2);
10   xxx:数据类型   参数1:?的位置编号,从1开始  参数2:?的值
11   
12 3.执行SQL,不需要再传递值
13   excuteUpdate();或
14   excuteQuerry();
15 */
16 
17 
18 import java.sql.Connection;
19 import java.sql.DriverManager;
20 import java.sql.PreparedStatement;
21 import java.sql.ResultSet;
22 
23 public class PStatement {
24     public static void main(String[] args) throws Exception {
25         //1.注册驱动
26         Class.forName("com.mysql.cj.jdbc.Driver");
27         //2.获取连接
28         String url = "jdbc:mysql://127.0.0.1:3306/db1";
29         String username = "root";
30         String password = "1234";
31         Connection conn = DriverManager.getConnection(url,username,password);
32 
33         String name = "zhangsan";
34         String pwd = "123";
35 
36         String sql = "select * from tb_user where username = ? and password = ?";
37 
38         PreparedStatement pstmt = conn.prepareStatement(sql);
39         pstmt.setString(1,name);
40         pstmt.setString(2,pwd);
41 
42         ResultSet rs = pstmt.executeQuery();
43 
44         if(rs.next()){
45             System.out.println("登陆成功~");
46         }
47         else{
48             System.out.println("登陆失败~");
49         }
50 
51         //释放资源
52         rs.close();
53         pstmt.close();
54         conn.close();
55     }
56 
57 }
复制代码

 

posted on   hhmzd233  阅读(3)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示