新手学JAVA(八)----走进JDBC

来源:互联网 发布:vb.net get set 编辑:程序博客网 时间:2024/09/21 06:37
[+]
  • 什么是JDBC
  • 为什么要用JDBC
  • 怎么用JDBC

什么是JDBC?


JDBC(Java Data Base Connectivity, Java 数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问。简单地说,JDBC 可做三件事:与数据库建立连接、发送 SQL 语句并处理结果。

为什么要用JDBC?


在没有JDBC之前,应用程序可以通过数据库厂商提供的API及SQL语句对数据库进行操作,如下图:

这里写图片描述

有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事,换言之,有了JDBC API,就不必为方位MySQL数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问SQLServer数据库又编写另一个程序,等等,程序员只需用JDBC API 写一个程序就够了,它可想相应的数据库发送SQL调用,同时将JAVA语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只需写一遍程序就可以让它在任何平台上运行。如下图:

这里写图片描述

怎么用JDBC?


JDBC的主要功能如下:

  • 建立与数据库或其他数据源的连接
  • 向数据库发送SQL命令
  • 处理数据库的返回结果

下面通过一个例子来演示Java数据库一个用程序反问数据库的全过程。

<code class="hljs java has-numbering"><span class="hljs-keyword">import</span> java.sql.*; <span class="hljs-comment">//导入包</span><span class="hljs-keyword">import</span> java.sql.Connection;<span class="hljs-keyword">import</span> java.sql.DriverManager;<span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">JDBCMain</span> {</span>    <span class="hljs-comment">// 数据库的链接</span>    <span class="hljs-keyword">private</span> Connection con = <span class="hljs-keyword">null</span>;    <span class="hljs-keyword">private</span> Statement st = <span class="hljs-keyword">null</span>; <span class="hljs-comment">// 执行SQL语句的对象</span>    <span class="hljs-keyword">private</span> ResultSet rs = <span class="hljs-keyword">null</span>; <span class="hljs-comment">// 结果集对象</span>    <span class="hljs-keyword">public</span> <span class="hljs-title">JDBCMain</span>() {        <span class="hljs-comment">// 桥连接</span>        <span class="hljs-keyword">try</span> {            <span class="hljs-comment">// 声明驱动程序</span>            String driver = <span class="hljs-string">"com.microsoft.sqlserver.jdbc.SQLServerDriver"</span>;            <span class="hljs-comment">// users就是数据源的名称</span>            String ds = <span class="hljs-string">"jdbc:sqlserver://localhost:1433;databaseName=JavaSpecial"</span>;            <span class="hljs-comment">// 数据源的登录名</span>            String user = <span class="hljs-string">"sa"</span>;            <span class="hljs-comment">// 数据源的密码</span>            String password = <span class="hljs-string">"123456"</span>;            <span class="hljs-comment">// 链接数据库</span>            Class.forName(driver); <span class="hljs-comment">// 加载数据库的驱动程序</span>            con = DriverManager.getConnection(ds, user, password);            <span class="hljs-keyword">if</span> (con != <span class="hljs-keyword">null</span>) {                System.out.println(<span class="hljs-string">"数据库链接成功!"</span>);            }        } <span class="hljs-keyword">catch</span> (Exception e) {            System.out.println(<span class="hljs-string">"数据库连接失败!"</span> + e.toString());        }    }    <span class="hljs-javadoc">/**     * 普通查询     *<span class="hljs-javadoctag"> @param</span> sqlQuery     */</span>    <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">query</span>(String sqlQuery) {        <span class="hljs-keyword">try</span> {            <span class="hljs-comment">// Connection con = null;</span>            Statement st = con.createStatement(); <span class="hljs-comment">// 得到Statement的实例</span>            ResultSet rs = st.executeQuery(sqlQuery); <span class="hljs-comment">// 执行SQL语句,返回结果集</span>            <span class="hljs-comment">// 当返回的结果集不为空是,并且还有记录时</span>            <span class="hljs-keyword">while</span> (rs != <span class="hljs-keyword">null</span> && rs.next()) {                <span class="hljs-keyword">int</span> stu_num = rs.getInt(<span class="hljs-number">1</span>); <span class="hljs-comment">// 获得当前记录的第1个字段的值</span>                String name = rs.getString(<span class="hljs-string">"name"</span>); <span class="hljs-comment">// 获得当前记录中"name"字段的值</span>                <span class="hljs-keyword">int</span> age = rs.getInt(<span class="hljs-string">"age"</span>); <span class="hljs-comment">// 获得当前记录中"age"字段的值</span>                <span class="hljs-keyword">int</span> math = rs.getInt(<span class="hljs-string">"math"</span>); <span class="hljs-comment">// 获得当前记录中"math"字段的值</span>                <span class="hljs-keyword">int</span> english = rs.getInt(<span class="hljs-string">"english"</span>); <span class="hljs-comment">// 获得当前记录中"english"字段的值</span>                System.out.println(<span class="hljs-string">"学号="</span> + stu_num + <span class="hljs-string">"\t 姓名="</span> + name + <span class="hljs-string">"\t 年龄="</span>                        + age + <span class="hljs-string">"\t 数学成绩="</span> + math + <span class="hljs-string">"\t 英语成绩="</span> + english);            }        } <span class="hljs-keyword">catch</span> (Exception e) {            <span class="hljs-comment">// 抛出异常</span>            System.out.println(<span class="hljs-string">"查询数据时出错"</span> + e.toString());        }    }    <span class="hljs-javadoc">/**     * /添加,删除,更新     */</span>    <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">add_update_Del</span>(String sql) {        <span class="hljs-keyword">try</span> {            Statement st = con.createStatement(); <span class="hljs-comment">// 生成Statement对象</span>            <span class="hljs-keyword">int</span> x = st.executeUpdate(sql); <span class="hljs-comment">// 执行操作</span>            System.out.println(<span class="hljs-string">"操作成功"</span> + x);        } <span class="hljs-keyword">catch</span> (Exception e) {            System.out.println(<span class="hljs-string">"数据修改时有误"</span> + e.toString());        }    }    <span class="hljs-comment">// 主程序</span>    <span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title">main</span>(String[] args) {        JDBCMain jc = <span class="hljs-keyword">new</span> JDBCMain();        <span class="hljs-comment">// 查询</span>        String name = <span class="hljs-string">"张三"</span>;        String sqlQuery = <span class="hljs-string">"select * from stu_info where name='"</span> + name + <span class="hljs-string">"'"</span>;        jc.query(sqlQuery);        <span class="hljs-comment">//添加</span>        String sqlAdd =<span class="hljs-string">"insert into stu_info values(7,'令仔',17,89,84)"</span>;        jc.add_update_Del(sqlAdd);        <span class="hljs-comment">//更改</span>        String sqlUpdate =<span class="hljs-string">"update stu_info set math =95 where name ='张三'"</span>;        jc.add_update_Del(sqlUpdate);        <span class="hljs-comment">//删除</span>        String sqlDelete =<span class="hljs-string">"delete from stu_info where name='张三'"</span>;        jc.add_update_Del(sqlDelete);    }}</code>

下面是源代码下载的链接:JDBC数据库连接测试

0 0
原创粉丝点击