2012-07-11 63 views
6

Làm cách nào để kết nối với cơ sở dữ liệu derby (đi kèm với netbeans)? Tôi đang sử dụng Tomcat làm máy chủ. Trước đó tôi đã sử dụng các câu lệnh sau để kết nối với cơ sở dữ liệu derby, nhưng sau đó tôi đã sử dụng glassfish làm máy chủ.kết nối với cơ sở dữ liệu derby với tomcat làm máy chủ

Context context = new InitialContext(); 
DataSource ds = (DataSource)context.lookup("java:comp/env/jdbc/PollDatasource"); 
Connection connection = ds.getConnection(); 

Nhưng bây giờ sử dụng Tomcat làm máy chủ, tôi không biết cách thực hiện việc này.

Lưu ý: Tomcat và Derby đang pre cài đặt với NetBeans IDE mà tôi hiện đang sử dụng

+0

Bạn có * định cấu hình * JNDI dataSource không? – adatapost

+0

@AVD chưa được định cấu hình –

+0

Vui lòng tham khảo [url] này (http://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html) và @Raknel post. – adatapost

Trả lời

10

Trong Tomcat tìm conf/context.xml, sau đó chỉnh sửa và viết một cái gì đó như thế này:

<Resource name="jdbc/PollDatasource" auth="Container" type="javax.sql.DataSource" 
    driverClassName="com.YourDriver" 
    url="jdbc:derby://localhost:1527/nameOfTheDatabase;create=true" 
    username="username" password="password" maxActive="20" 
    maxIdle="10" maxWait="-1" /> 

Lưu ý 1: với URL ở trên người lái xe sẽ được org.apache.derby.jdbc.ClientDriver

Lưu ý 2: Bạn cũng có thể thêm thông tin trên vào META-INF/context.xml của dự án. Điều này trở thành ứng dụng cụ thể.Nếu bạn thêm thông tin trong context.xml của tomcat sẽ trở thành toàn cục.

Lưu ý 3: Tải jar từ this website .Download db-derby-10.9.1.0-bin.zip.It chứa nhiều tập tin, bao gồm derby.jar và derbyclient.jar (cùng với tài liệu nhiều). derbyclient.jar chứa bạn của chúng tôi org.apache.derby.jdbc.ClientDriver.class. derby.jar chứa org.apache.derby.jdbc.EmbeddedDriver. Giữ jar đã tải xuống trong thư mục lib của Tomcat.

và trong web.xml ứng dụng của bạn "tài nguyên-ref":

<resource-ref> 
    <description>my connection</description> 
    <res-ref-name>jdbc/PollDatasource</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
    </resource-ref> 

Bạn có thể muốn xem xét những câu hỏi này:

+0

'driverClassName' là gì? –

+1

Đây là tên của trình điều khiển JDBC, cụ thể cho cơ sở dữ liệu. Đối với ứng dụng của bạn sẽ là org.apache.derby.jdbc.EmbeddedDriver. Bạn có thể tải xuống điều này trong jar từ: http://mvnrepository.com/artifact/org.apache.derby/derby – Raknel

+0

Tôi đã thêm các thẻ này nhưng nhận được [exception] (http://stackoverflow.com/questions/11516747/org -apache-tomcat-dbcp-dbcp-sqlnestedexception-what-is-this-and-why-do-i-get-t) –

4

Bạn cần phải:

1) Sao chép derbyclient-*.jar đến ${TOMCAT_HOME}/lib.

2) Chỉnh sửa server.xml của bạn và thêm các dòng sau vào GlobalNamingResources phần:

<Resource auth="Container" 
      driverClassName="org.apache.derby.jdbc.EmbeddedDriver" 
      maxActive="8" maxIdle="4" 
      name="jdbc/my-ds" type="javax.sql.DataSource" 
      url="jdbc:derby:mydb;create=true" 
      username="myuser" password="mypassword" /> 

3) Trong định nghĩa ngữ cảnh của bạn, thêm:

<Context docBase="myapp" 
      path="/myapp" 
      reloadable="true" 
      ...> 
    <ResourceLink name="jdbc/my-ds" 
        global="jdbc/my-ds" 
        type="javax.sql.DataSource" /> 
</Context> 

4) Khởi động lại Tomcat.

+0

[Tôi đã thêm các thẻ này nhưng có ngoại lệ.] (Http://stackoverflow.com/questions/11516747/org-apache-tomcat-dbcp-dbcp-sqlnestedexception-what-is-this-and-why-do-i -get-t) Mặc dù tôi đã chỉnh sửa 'context.xml' của tomcat và' web.xml' trong dự án của tôi. –

+0

Bỏ phiếu này vì tôi đã vô tình tìm thấy nó và nó rất phù hợp với ứng dụng hiện tại của tôi. – thonnor

Các vấn đề liên quan