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 所以条件是永远满足的,都是可以登录入系统的。