JDBC

什么是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 类。(切记


JDBC_第1张图片

有时候需要对数据库进行操作时会出现以下错误,需要在url后添加一个useSSL=ture.


JDBC_第2张图片

例如  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的记录集。

图下是更新操作


图下是查询操作


JDBC_第3张图片

6.操作完成之后需要释放连接,先释放rs在释放stat最后释放con

例子:

try{

if(rs!=null)rs.close();

}catch(SQLException e){

e.printStackTrace();

}


JDBC_第4张图片

7.重点。(如果使用Statement来执行SQL有可能会存在SQL注入的攻击,所以一般会使用PreparedStatement来替代Statement)

例子


JDBC_第5张图片

为什么要用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 就不会出现这样的问题。

你可能感兴趣的:(JDBC)