新手学JAVA(八)----走进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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值