当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:16:00  来源:本站整理

<b>简单的JDBC操纵程序for Java DB</b>[Java编程]

赞助商链接



  本文“<b>简单的JDBC操纵程序for Java DB</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

本日下载了jdk1.6.0,今后要渐渐来学习1.6中的新特点和此中的一些经典实例.先看看关于java DB的这个最简例子:
Simple JDBC Application (源码SimpleApp.java、文档及derby.jar,derbynet.jar,derbyclient.ar文件请从jdk1.6.0中找)

这个例子是一个最小限度的JDBC 利用程序. 关于这个程序:

  • 以内嵌式情势(缺省的)或作为一个服务器环境中的客户端运行,这依靠于传送给程序的参数
  • 假如运行在内嵌式情势,则启动Derby 引擎
  • 假如运行在客户端情势,则衔接到 Derby 网络服务器
  • 成立并衔接到数据库
  • 成立一个表
  • 插入数据
  • 更新数据
  • 查询数据
  • 删除表
  • 关闭衔接
  • 假如运行在内嵌式情势,则关闭 Derby.

以下是源码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
/*
 * @author janet
 */
public class SimpleApp
{
    /* 缺省的情势是内嵌式的*/
    public String framework = "embedded";
    public String driver = "org.apache.derby.jdbc.EmbeddedDriver";
    public String protocol = "jdbc:derby:";
    public static void main(String[] args)
    {
        new SimpleApp().go(args);
    }
    void go(String[] args)
    {
        /* 处理参数,肯定这个程序作为内嵌式利用还是作为客户端利用*/
        parseArguments(args);
        System.out.println("SimpleApp starting in " + framework + " mode.");
        try
        {
            /*
               装载驱动程序,假如是内嵌式情势,这将启动Derby, 因为它还没有运行.
             */
            Class.forName(driver).newInstance();
            System.out.println("Loaded the appropriate driver.");
            Connection conn = null;
            Properties props = new Properties();
            props.put("user", "user1");
            props.put("password", "user1");
            //create=true将成立数据库derbyDB
            conn = DriverManager.getConnection(protocol +"derbyDB;create=true", props);
            System.out.println("Connected to and created database derbyDB");
            conn.setAutoCommit(false);//设置自动提交情势
            Statement s = conn.createStatement();
            /*
               成立一个表,加入几条记录并更新一条.
             */
            s.execute("create table derbyDB(num int, addr varchar(40))");
            System.out.println("Created table derbyDB");
            s.execute("insert into derbyDB values (1956,'Webster St.')");
            System.out.println("Inserted 1956 Webster");
            s.execute("insert into derbyDB values (1910,'Union St.')");
            System.out.println("Inserted 1910 Union");
            s.execute(
                "update derbyDB set num=180, addr='Grand Ave.' where num=1956");
            System.out.println("Updated 1956 Webster to 180 Grand");
            s.execute(
                "update derbyDB set num=300, addr='Lakeshore Ave.' where num=180");
            System.out.println("Updated 180 Grand to 300 Lakeshore");
            /*
               查询并校验后果.
             */
            ResultSet rs = s.executeQuery(
                    "SELECT num, addr FROM derbyDB ORDER BY num");
            if (!rs.next())
            {
                throw new Exception("Wrong number of rows");
            }
            if (rs.getInt(1) != 300)
            {
                throw new Exception("Wrong row returned");
            }
            if (!rs.next())
            {
                throw new Exception("Wrong number of rows");
            }
            if (rs.getInt(1) != 1910)
            {
                throw new Exception("Wrong row returned");
            }
            if (rs.next())
            {
                throw new Exception("Wrong number of rows");
            }
            System.out.println("Verified the rows");
            s.execute("drop table derbyDB");//删除表
            System.out.println("Dropped table derbyDB");
           
            rs.close();
            s.close();
            System.out.println("Closed result set and statement");
            conn.commit();
            conn.close();
            System.out.println("Committed transaction and closed connection");
           
            boolean gotSQLExc = false;
            if (framework.equals("embedded"))
            {
                try
                {
                    DriverManager.getConnection("jdbc:derby:;shutdown=true");//关闭数据库服务
                }
                catch (SQLException se)
                {
                    gotSQLExc = true;
                }
                if (!gotSQLExc)
                {
                    System.out.println("Database did not shut down normally");
                }
                else
                {
                    System.out.println("Database shut down normally");
                }
            }
        }
        catch (Throwable e)
        {
            System.out.println("exception thrown:");
            if (e instanceof SQLException)
            {
                printSQLError((SQLException) e);
            }
            else
            {
                e.printStackTrace();
            }
        }
        System.out.println("SimpleApp finished");
    }
    static void printSQLError(SQLException e)
    {
        while (e != null)
        {
            System.out.println(e.toString());
            e = e.getNextException();
        }
    }
    private void parseArguments(String[] args)
    {
       
// System.setProperty("derby.system.home", "c:\\DBdata");//这样可以设置数据库数据的存放目录

int length = args.length; for (int index = 0; index < length; index++) { if (args[index].equalsIgnoreCase("jccjdbcclient")) { framework = "jccjdbc"; driver = "com.ibm.db2.jcc.DB2Driver"; protocol = "jdbc:derby:net://localhost:1527/"; } if (args[index].equalsIgnoreCase("derbyclient")) { framework = "derbyclient"; driver = "org.apache.derby.jdbc.ClientDriver"; protocol = "jdbc:derby://localhost:1527/"; } } } }
  以上是“<b>简单的JDBC操纵程序for Java DB</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .