JDBC连接操作数据库

1.操作步骤

(1)注册数据库驱动

Class.forName("com.mysql.jdbc.Driver")

具体驱动参数要根据所要连接的数据定义

(2)与数据库建立一个连接,需要三个参数。

String url = "jdbc:mysql://localhost:3306/mysql";
String user = "root";
String password = "password";
Connection conn = DriverManager.getConnection(url,user,password)

url是需要连接的数据库地址,根据数据库的不同,连接地址的格式也不相同
(3)执行一个查询 创建Statement或者PreparedStatement接口,执行SQL
a.使用Statement接口

Statement state = conn.createStatement();
String sql = "";
ResultSet rs = state.executeUpdate(sql);

b.使用PreparedStatement接口

String sql = "";
PrepareStatement ps = conn.prepareStatement(sql);
ps.set(i,value);//给SQL语句中第i位占位符赋值value。
ps.executeUpdate();	

(4)从结果集中提取数据

ResultSet rs = state.execute(sql);
rs.getString(String columnName);//   获取指定字段值    
rs.setString(String columnNmae,String s);// 更新指定字段的值  

(5)关闭连接

conn.close();

2.ResultSet接口

概念:SQL语句执行后从数据库读取数据,返回的数据放在结果集中,java.sql.Result接口表示数据库查询的结果集。
浏览结果集:previous() 将光标移动到上一行,如果上一行关闭结果集,返回false。
next() 将光标移动到下一行,如果结果集中没有更多行,则此方法返回false。
查看结果集:getInt(String columnName) 返回名为columnName列中当前行的int值,即第几行
getString(String columnName) 返回当前行指定列名的值。
更新结果集:update(String columnName,String s) 将当前行指定列名中的值改为s

3.SQL注入问题

主要是安全问题,比如进行登录验证的操作时,不怀好意的人可以通过拼接特定字符串的方式,通过账户,密码的验证,登入系统。
如果我们在Java中书写SQL语句的时候采用最简单的Statement接口的方式:

String sql = " select * from user where user = ? and password = ?";

如果你你传入的用户名为 user or 1 = 1 ,此时拼接出的sql语句为

select * from user where user = user or 1 = 1 and password = XXX

此时无论你传入什么样的密码,因为1=1 所以条件是永远满足的,都是可以登录入系统的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值