java数据库连接混乱

时间:2013-12-01 22:50:02

标签: java

我是Big Java 4th的一些练习代码,用于将我的程序连接到derby数据库。我每次都会得到以下内容。

Usage: java -classpath driver_class_path;. TestDB database.properties作为输出,我无法弄清楚为什么它不会连接。

这是我的测试数据库:

public class TestDB 
{
   public static void main(String[] args) throws Exception
  {   
   if (args.length == 0)
    {   
     System.out.println(
           "Usage: java -classpath driver_class_path" 
           + File.pathSeparator 
           + ". TestDB database.properties");
     return;
  }
  else 
     SimpleDataSource.init(args[0]); `

  Connection conn = SimpleDataSource.getConnection();
  try
  {
     Statement stat = conn.createStatement();

     stat.execute("CREATE TABLE Test (Name CHAR(20))");
     stat.execute("INSERT INTO Test VALUES ('Romeo')");

     ResultSet result = stat.executeQuery("SELECT * FROM Test");
     result.next();
     System.out.println(result.getString("Name"));

     stat.execute("DROP TABLE Test");
  }
  finally
  {
     conn.close();
  }
   }
 }

这是提供的连接程序:

  public class SimpleDataSource
 {
  private static String url;
  private static String username;
  private static String password;

    /**
      Initializes the data source.
      @param fileName the name of the property file that 
      contains the database driver, URL, username, and password
    */
   public static void init(String fileName)
     throws IOException, ClassNotFoundException
   {  
  Properties props = new Properties();
  FileInputStream in = new FileInputStream(fileName);
  props.load(in);

  String driver = props.getProperty("jdbc.driver");
  url = props.getProperty("jdbc:url");
  username = props.getProperty("jdbc.username");
  if (username == null) username = "";
  password = props.getProperty("jdbc.password");
  if (password == null) password = "";
  if (driver != null)
     Class.forName(driver);
   }

   /**
    Gets a connection to the database.
    @return the database connection
   */
   public static Connection getConnection() throws SQLException
   {
    return DriverManager.getConnection(url, username, password);
    }
    } 

1 个答案:

答案 0 :(得分:0)

usage方法告诉您如何正确运行程序。让我把它翻译成英文,如果由于某种原因你得到这个代码的地方没有解释它。

  

用法:

这里我们将展示如何从命令提示符使用该程序。如果从IDE运行程序它会类似,但你会省略“java”,类路径和程序名称将单独配置。

  

的java

运行Java程序的命令

  

-classpath driver_class_path;。

将类路径指定为Derby驱动程序的位置,然后指定当前目录(程序所在的目录)

  

TESTDB

您的程序名称 - 即TestDB,因此请勿更改此

  

database.properties

要使用的属性文件的文件名。属性文件包含数据库连接参数。这是一个软件开发的好习惯!数据库密码(如果有)必须与您设置的密码匹配。