2013-02-24 165 views
0

我想寫一個java程序,它將數據存儲在獨立的sql數據庫中。然而,我不知道如何用java創建一個sql數據庫以及如何建立這個連接。任何人都可以給我一些建議嗎?Java和數據庫連接

+3

谷歌是你最好的朋友.. – xyz 2013-02-24 06:35:51

+0

[看這個鏈接](https://www.google.com/search?q=java%20and%20sql) – 2013-02-24 06:37:17

+0

我不知道這個話題的任何術語。谷歌顯示了很多不同的想法,我不確定應該選擇哪一個。 – OneZero 2013-02-24 06:37:40

回答

1

你考慮過Apache Derby嗎?

的Apache Derby,一個Apache DB子項目,是完全用Java和可用在Apache 許可證2.0版下實現的開源關係 數據庫。一些主要優勢包括:

  • Derby的佔用空間很小 - 基本引擎和嵌入式JDBC驅動程序的大小約爲2.6 MB。
  • Derby基於Java,JDBC和SQL標準。
  • Derby提供了一個嵌入式JDBC驅動程序,可讓您將Derby嵌入到任何基於Java的解決方案中。
  • Derby還通過Derby Network Client JDBC驅動程序和Derby Network Server支持更爲熟悉的客戶端/服務器模式。
  • 德比易於安裝,部署和使用。

如果您是德比的新手,請查看快速入門頁面。

這就是說,我忘了H2。 +1爲瑞恩的建議。

2

添加H2到類路徑,它是那樣簡單:

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.Statement; 

public class Jdbc { 
    public static void main(String[] args) throws Exception { 
     Connection connection = DriverManager.getConnection("jdbc:h2:mem:"); 
     Statement statement = connection.createStatement(); 
     statement.execute("create table chair(id int primary key auto_increment, legs int not null, color varchar(255))"); 
     statement.execute("insert into chair (legs, color) values (4, 'red')"); 
     statement.execute("insert into chair (legs) values (6)"); 
     ResultSet rs = statement.executeQuery("select * from chair"); 
     while (rs.next()) { 
      String color = rs.getString("color") == null ? "" : rs.getString("color") + " "; 
      System.out.println("Got a " + color + "chair with " + rs.getInt("legs") + " legs"); 
     } 
     connection.close(); 
    } 
} 

除了能夠在內存中或作爲獨立的服務器完全運行,H2還配備了一個內置的,基於Web的sql工作臺。

注意:您應該從JDBC tutorial開始,幫助您避免重大缺陷,如連接泄漏。