zoukankan      html  css  js  c++  java
  • java JDBC 提高程序可移植性

    介绍jdbc一般的程序: 【程序编程相关:jb+oracle+weblogic c

    很多java初学者在开始接触jdbc编程的时候,在网上与大部分的教材上都是这样 【推荐阅读:Java线程入门——什么是线程

    import java.sql.*; 【扩展信息:关于J2ME与C#通过HTTP进行通信时

    //可以运行的完整程序

    public class databasedemo

    {

     public static void main(string args[])

     {

      connection con;

      statement stmt;

      resultset rs;

      

      //load the driver class

      try

      {//直接在程序里面写字符串 com.microsoft.jdbc.sqlserver.sqlserverdriver

       //降低了程序的可移植性.

    }catch(classnotfoundexception e) 【程序编程相关:jb+oracle+weblogic c

       class.forname("com.microsoft.jdbc.sqlserver.sqlserverdriver"); 【推荐阅读:Java线程入门——什么是线程

       system.out.println(e.getmessage()); 【扩展信息:关于J2ME与C#通过HTTP进行通信时

      {

      }

      

      //get database connection ,statement and the resultset

      try

      {

       con=drivermanager.getconnection("jdbc:microsoft:sqlserver://localhost:1433;databasename=pubs", "sa", "");

       

       stmt=con.createstatement();

       rs=stmt.executequery("select * from authors");

       

       while(rs.next())

       {

        for(int i=1;i<=rs.getmetadata().getcolumncount();i++)

        {

         system.out.print(rs.getstring(i)+" | ");

        }

        system.out.println();

       }

      }catch(sqlexception e)

      {

       system.out.println(e.getmessage());

      }

     }

     

    }

    这个程序明显有一个问题,就是程序的可移植性很差,加入我现在不用sql server了,我要使用sybase或orcale

    而程序已经大包了,怎么办.
    ...在这里我们可以像在vc ado中的 uld文件一样.使用我们的properties文件.把属性与对应的值写入属性文件.例如我们在属性文件 basic.properties 输入一些内容:

    drivermanager:com.microsoft.jdbc.sqlserver.sqlserverdriver 【程序编程相关:jb+oracle+weblogic c

    connectionurl:jdbc:microsoft:sqlserver://localhost:1433;databasename=pubs 【推荐阅读:Java线程入门——什么是线程

    password: 【扩展信息:关于J2ME与C#通过HTTP进行通信时

    userid:sa

    //注意属性与值之间要有一个冒号,英文模式,不是中文冒号.

    我们可以通过 java.util包里面的properties类来读取文件属性的值.

    java.util.properties  pro=new java.util.properties  pro();

    try

    {

       pro.load(new  fileinputstream("basic.properties"));

    }catch(ioexception e){.......}

    consql=pro.getproperty("connectionurl");

     driverstr=pro.getproperty("drivermanager");

     userid=pro.getproperty("userid");

     password=pro.getproperty("password");

    这样我们就可以得到properties中的属性值.当我们的应用程序要改用其他的数据库管理系统的时候我们只要

    修改 properties文件就可以了.

    把上面的程序完善一些(可以运行的)

    /*

     aa.java

    */

    import java.util.*;

    import java.io.*;

    import java.sql.*;


    { 【程序编程相关:jb+oracle+weblogic c

    public class aa 【推荐阅读:Java线程入门——什么是线程

     { 【扩展信息:关于J2ME与C#通过HTTP进行通信时

     public static void main(string args[])

      string consql;

      string driverstr;

      string userid;

      string password;

      connection con;

      statement stmt;

      resultset rs;

      properties pro=new properties();;

      //load the properties file and get the proterties

      try

      {

         

       pro.load(new  fileinputstream("basic.properties"));

      }catch(ioexception e)

      {

       system.out.println(e.getmessage());

      }

      

      consql=pro.getproperty("connectionurl");

      driverstr=pro.getproperty("drivermanager");

      userid=pro.getproperty("userid");

      password=pro.getproperty("password");

      system.out.println(consql+"/n"+driverstr+"/n"+userid+"/n"+password);

      // load the driver class

      try

      {

       class.forname(driverstr);

      }catch(classnotfoundexception e)

      {

       system.out.println(e.getmessage());

      }

      

      // get the database connection

      try

      {

       con=drivermanager.getconnection(consql,userid,password);

       string querystr="select * from authors";

       stmt=con.createstatement();

       rs=stmt.executequery(querystr);

       

       while(rs.next())

       {

        for(int i=1;i<=rs.getmetadata().getcolumncount();i++)

        {

         system.out.print(rs.getstring(i)+" | ");

        }

        system.out.println();

       }

      }catch(sqlexception e)

      {

       system.out.println(e.getmessage());

      }

      

     }

     

    }

    注意了::::属性文件要与你的java源文件放在同一个目录下面.

  • 相关阅读:
    套接口编程
    传输层
    1 简介
    共享池2
    jquery.dataTables列中内容居中问题?求解?
    bootstrap-multiselect.js多选下拉框初始化时默认选中初始值
    datatable 动态显示/隐藏列
    bootstrap table 主子表 局部数据刷新(刷新子表)
    bootstrap table 怎么实现前两列固定冻结?
    bootstrapTable表格表头换行
  • 原文地址:https://www.cnblogs.com/encounter/p/2189079.html
Copyright © 2011-2022 走看看