Java数据库连接,我们可以用它来操作关系型数据库。JDBC接口及相关类在java.sql包和javax.sql包里。我们可以用它来连接数据库,执行SQL查询,存储过程,并处理返回的结果。
首先要想连接到数据库,首先安装数据库软件MySQL,SqlServer等也好,在相关管网(MySQL:https://dev.mysql.com/downloads/mysql/,SQLServer:https://www.microsoft.com/zh-cn/sql-server/sql-server-2016)可下载获得,相关下载内容不再介绍(注:下载同时准备好所需要的JDBC驱动)。
什么事JDBC驱动?
一共有4类:和数据库进行交互的Java程序分成两个部分,一部分是JDBC的API,实际工作的驱动则是另一部分。
第一类:JDBC-ODBC Bridge plus ODBC Driver(类型1):它使用ODBC驱动连接数据库。需要安装ODBC以便连接数据库,正因为这样,这种方式现在已经基本淘汰了。
第二类:Native API partly Java technology-enabled driver(类型2):这种驱动把JDBC调用适配成数据库的本地接口的调用。
第三类:Pure Java Driver for Database Middleware(类型3):这个驱动把JDBC调用转发给中间件服务器,由它去和不同的数据库进行连接。用这种类型的驱动需要部署中间件服务器。这种方式增加了额外的网络调用,导致性能变差,因此很少使用。
第四类:Direct-to-Database Pure Java Driver(类型4):这个驱动把JDBC转化成数据库使用的网络协议。这种方案最简单,也适合通过网络连接数据库。不过使用这种方式的话,需要根据不同数据库选用特定的驱动程序,比如OJDBC是Oracle开发的Oracle数据库的驱动,而MySQL Connector/J是MySQL数据库的驱动。
下面说一下什么是JDBC连接,怎样创建一个连接?
JDBC连接是和数据库服务器建立的一个会话。创建的过程很简单只需要两步操作:
首先注册并加载驱动:使用Class.forName(),驱动类就会注册到DriverManager里面并加载到内存里。 然后: 用DriverManager获取连接对象:调用DriverManager.getConnnection()方法并传入数据库连接的URL,用户名及密码,就能获取到连接对象。
上述是自己写的连接过程,下面来详解一下里面的DriverManager是用来做什么的?
JDBC的DriverManager是一个工厂类,我们通过它来创建数据库连接。当JDBC的Driver类被加载进来时,它会自己注册到DriverManager类里面,你可以看下JDBC Driver类的源码来了解一下。然后我们会把数据库配置信息传成DriverManager.getConnection()方法,DriverManager会使用注册到它里面的驱动来获取数据库连接,并返回给调用的程序。
现在连接上数据库了,下一步我们可以来获取数据库中的信息:
这是事先在MySQL中设置的数据信息:
下面我们在Java中创建个类,来实现信息的获取:
同时我们需要在前面的DBHelper类中添加几行代码:
文中红框部门内容用到了JDBC中的Statement,那么什么是Statement?
Statement是JDBC中用来执行数据库SQL查询语句的接口。通过调用连接对象的getStatement()方法我们可以生成一个Statement对象。我们可以通过调用它的execute(),executeQuery(),executeUpdate()方法来执行静态SQL查询。
由于SQL语句是程序中传入的,如果没有对用户输入进行校验的话可能会引起SQL注入的问题,默认情况下,一个Statement同时只能打开一个ResultSet。如果想操作多个ResultSet对象的话,需要创建多个Statement。Statement接口的所有execute方法开始执行时都默认会关闭当前打开ResultSet。
在这里我们通过调用它的executeQuery方法来获取:
就这样我们通过此方法就获取到了存储在数据库里面的信息:
这样我们整个连接过程,获取信息的过程就全部结束了,自习回想一下基本过程:先通过Connection方法连接到数据库,然后通过Statement执行SQl语句来查询数据库里面的信息,最后获取该信息,显示所得。
第一次写总结类的文章,可能很多地方过于啰嗦,请见谅,有错误的地方可以评论区指出,大家共同学习。
网友评论