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


有时候需要对数据库进行操作时会出现以下错误,需要在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 就不会出现这样的问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容