JDBC的工作原理
JDBC的工作原理:
马克-to-win:JDBC主要完成三件事:1)建立连接;2)发送SQL语句;3)处理返回的结果。紧接着,下节以实例仔细分析这三条。
马克- to-win:马克 java社区:防盗版实名手机尾号: 73203。
细述JDBC的工作原理
紧接着上节的JDBC的工作原理,下面我们就仔细讲讲这三条。
1)建立连接:
马克-to-win:JDBC靠java.sql.DriverManager.getConnection(dbUrl, user, password);和数据库连接。当DriverManager执行getConnection时,它会在内存当中寻找最合适的驱动类。(我们在给机器装声卡时是不是也得先安装一个驱动程序?道理一样,每一个数据库,都需要有一个专门和它相配的驱动程序。)所以我们需要事先就把驱动类加载进来。怎么加载?靠Class.forName (className),在我们以下的例子当中就是Class.forName("com.mysql.jdbc.Driver");马克-to- win:注意:这个类不在jdk的核心包当中,因为它只和Mysql这个数据库相关。如果jdk的核心包中包含这个类的话,那么microsoft公司的 sql server数据库,oracle,或sybase数据库等的驱动是不是都要包括在jdk的核心包中呢?如果是这样的话,jdk的核心包会不会变得很大呢?所以这样的话就出现了一个问题。既然mysql的驱动类不在jdk的核心包中,我们需要专门在eclipse当中把它倒进我们的项目当中。注意在今天之前的课程当中,我们从来没接触过导包,现在就教会大家在eclipse当中如何导包。在我的H盘根目录下,有个文件:mysql-connector- java-3.1.10-bin.jar,我们用WINRAR把它打开,就发现它里面有com.mysql.jdbc.Driver.class文件。右键点击你的项目,找到Properties。在找Java Build Path。点中Libraries。再点中右边的Add External Jars。选中mysql-connector-java-3.1.10-bin.jar,如下图:
2)发送SQL语句;
马克-to-win:要想发送sql语句,就要提到一个叫Statement 的接口。Statement的中文含义是陈述。就利用这个叫“陈述”的接口。你的程序可以向数据库,义正言辞的“陈述”一条一条的sql语句。比如在我们的程序中:resultSet = statement.executeQuery("select * from login");你觉得当时sun公司把这个接口起名叫“陈述”形象生动吗?现在问题来了,这个“陈述”是怎么来的?我要是java的设计者,我就让它从刚才第一步获得的连接当中来。因为这样做非常顺理成章,第一步完了就第二步嘛!事实上,sun公司也确实是这么做的。在我们的程序中,就是以下这句: statement = connection.createStatement();
3)处理返回的结果。
马克-to-win:刚才的这句resultSet = statement.executeQuery("select * from login");是把select * from login这句sql语句发送给数据库。对数据库有所了解的人都知道,当我们直接向数据库输入sql语句:select * from login时,数据库会给我们返回一个表。现在其实也一样,当我们的程序向数据库发送一个ql语句时,也得到了一个表,只不过这个表现在完全放在 resultSet当中。我们通过一个循环while (resultSet.next()),就可以一行一行的处理这个表。再分别通过resultSet.getString("id") 和resultSet.getString("name"),我们就分别得到了id和name这两列数据。