什么是JDBC?
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。
java访问数据库,是通过接口的方式。每个数据库的厂商会提供接口,所以,我只要去相应的数据库官网下载,使用的时候只要用下载接口,然后倒入接口。倒入Conector到lib中,然后右键,Build Path -> add to build path
1.创建的sql文件如何导入数据库。
通过source导入,注意此时导入是有正反斜杠的区分,\不能使用,因为是转义字符,必须使用\\或者/
例如:source F:/eclipse/workspace/shop01/sql.init.sql
2.JDBC步骤
1.先导入Concetor中的jar包加入lib中。
倒入Concetor到lib中,反正lib中,并没有加载到classpath中,需要右键,Build Path -> add to build path
2.然后创建Connection 类。(切记)
有时候需要对数据库进行操作时会出现以下错误,需要在url后添加一个useSSL=ture.
例如 Connection con = DriverManager.getConnection (url,user,password);
MySQL的JDBC URL编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称(?参数=值)
例如 jdbc:mysql://localhost:3306/test_cwq
3.然后写 sql语句。
String sql = “select * from t_user”
4.然后执行sql语句需要statement
stat = con.createStatement();
5.在获取了stat之后,如果执行的是更新,直接使用stat.executeUpdate(sql)完成更新 如果执行的是查询,需要通过stat.executeQuery(sql)完成,返回值是一个ResuletSet的记录集。
图下是更新操作
图下是查询操作
6.操作完成之后需要释放连接,先释放rs在释放stat最后释放con
例子:
try{
if(rs!=null)rs.close();
}catch(SQLException e){
e.printStackTrace();
}
7.重点。(如果使用Statement来执行SQL有可能会存在SQL注入的攻击,所以一般会使用PreparedStatement来替代Statement)
例子
为什么要用PreparedStatement替代Statement呢?
举个例子
```Select count(*) from t_user where username = '"+username +"' and password ='"password"';```
如果输入的是 admin"';//用户名 那么语句就被转化为
Select count(*) from t_user where username = '"admin"';//"' and password ='"password"';
这样的话密码就被注释了。然后网页就被攻击了。
用PreparedStatement 就不会出现这样的问题。
网友评论