2009-07-04 43 views
9

Tôi đã đấu tranh để có được một chương trình Java để kết nối với MS SQL Server, và tôi bắt đầu tự hỏi nếu MySQL sẽ là một lựa chọn tốt hơn cho dự án (học tập) của tôi.Cơ sở dữ liệu tốt nhất để sử dụng với chương trình java là gì?

Hướng dẫn của Sun tham khảo Java DB, nhưng tôi chưa bao giờ nghe nói về điều đó trong bất kỳ bối cảnh nào khác, do đó, có vẻ như đây không phải là cơ sở dữ liệu hữu ích nhất để tìm hiểu.

Tôi đánh giá cao mọi thông tin chi tiết về cách tự nhiên nhất để kết nối Java với cơ sở dữ liệu thường được sử dụng.

Trả lời

5

Loại hoặc tên Cơ sở dữ liệu sẽ không ảnh hưởng đến quá trình giáo dục của bạn vì bạn sẽ làm việc với JDBC.

Tôi nghĩ bạn có thể đi với bất kỳ. Chỉ cần thiết lập nó theo cách thích hợp trên máy của bạn và kết nối với chuỗi kết nối thích hợp.

9

Có lẽ bạn có thể mô tả các sự cố bạn gặp phải khi kết nối với MS SQL. Tất nhiên nó có thể, vì vậy nó có thể là một cái gì đó nhỏ mà bạn có hoặc đã không làm đó là ngăn chặn các kết nối từ làm việc.

Có nhiều máy chủ cơ sở dữ liệu nguồn mở với trình điều khiển JDBC. Một trong đó bạn có thể xem xét là HSQLDB trong đó có một chế độ hoàn toàn trong bộ nhớ, do đó bạn thậm chí không cần phải suy nghĩ về việc thiết lập một máy chủ. Đây có lẽ là một cách tuyệt vời để tìm hiểu những điều cơ bản của SQL.

+1

Bên cạnh HSQLDB, H2 (http://www.h2database.com/) cũng có thể là một lựa chọn tốt để học lập trình cơ sở dữ liệu. Cá nhân tôi thích H2 để HSQLDB vì gui web tốt của nó và cô lập giao dịch tốt hơn. –

1

Bất cứ điều gì với một trình điều khiển JDBC nên hoạt động tốt. Tôi không nghĩ rằng bạn sẽ bao giờ tìm thấy một câu trả lời dứt khoát cho những gì là "tốt nhất" nó là một câu hỏi rất chủ quan. Chúng tôi sử dụng InterBase tại nơi làm việc của tôi và không có vấn đề gì.

2

Tôi khuyên bạn nên sử dụng MySQL hoặc Oracle. Từ Oracle bạn cũng có thể nhận được cơ sở dữ liệu miễn phí, tuy nhiên kích thước của cơ sở dữ liệu bị hạn chế.

Lý do cho việc này là những cơ sở dữ liệu được sử dụng nhiều nhất và rất tốt để có được khả năng hiển thị cho những cơ sở dữ liệu đó. Sử dụng JDBC và nó tương tự như giao diện, nhưng làm mã trên đầu trang của cơ sở dữ liệu và có những thứ khác bạn cần phải học là tốt. Đặc biệt nếu bạn làm bất kỳ ứng dụng nào phức tạp hơn một chút. Cũng nhận được tay bẩn với các hoạt động cơ bản với cơ sở dữ liệu luôn luôn là tốt.

+0

Oracle chỉ miễn phí miễn là bạn không đưa nó vào sản xuất. –

0

Nếu bạn muốn ở lại trong Java, một lựa chọn là Berkeley DB Java Edition. Đó là phần mềm BDB tương tự từ Sleepycat, có danh tiếng sterling trong thị trường cơ sở dữ liệu nhúng.

0

Chọn một cơ sở dữ liệu mà bạn có thể tìm ra cách cài đặt. Hầu hết là khá dễ dàng và nó sẽ cung cấp cho bạn một ý tưởng tốt về những gì sử dụng một cơ sở dữ liệu là như thế. Khi bạn có ứng dụng đang hoạt động, hãy thử chuyển nó sang cơ sở dữ liệu khác. Tôi khuyên bạn nên sử dụng JavaDB cho cái đầu tiên và sau đó là một trong các db khác - Oracle, MySQL, Postgres, v.v.

0

Vấn đề lớn nhất mà tôi đã có khi sử dụng MSSql là khi sử dụng JDBC cũ -> ODBC Bridge trình điều khiển; chúng thực hiện một trình bao bọc Java được chấp nhận một nửa xung quanh các cuộc gọi ODBC, các lệnh này không ổn định và dễ vỡ. Nếu bạn đang sử dụng JDBC ODBC Bridge, hãy thay thế chúng bằng các trình điều khiển JDBC nguyên gốc mới nhất từ ​​microsoft- chúng hoạt động tốt hơn gấp hàng triệu lần.

5

Java DB là Apache Derby được đổi tên và đưa vào JDK.Nó là ok, và nó là dễ dàng hơn nhiều để cài đặt hơn so với cơ sở dữ liệu tự nhiên chạy.

Điều rất quan trọng là sử dụng trình điều khiển tốt cho cơ sở dữ liệu! Điều đó có thể giải quyết tất cả các vấn đề kết nối của bạn.

Cũng lưu ý rằng nếu bạn chuyển đổi cơ sở dữ liệu, bạn rất có thể cũng cần phải thay đổi SQL của bạn trừ khi bạn sử dụng một lớp như Hibernate hoặc JPA.

+0

Derby có lẽ không phải là một DBMS tuyệt vời để học hỏi. Nó rất chậm và thiếu rất nhiều trong vùng SQL. Cuối cùng tôi đã sử dụng nó (6 tháng trước), điều này bao gồm câu lệnh DML "MERGE"/"INSERT ... ON DUPLICATE KEY" và tùy chọn LIMIT/OFFSET trên truy vấn. Trong số nhiều tính năng còn thiếu khác. – BobMcGee

+0

Tôi đánh giá cao các liên kết đến các trang tốt mô tả phần "chậm chạp". LIMIT/OFFSET là cơ sở dữ liệu phụ thuộc, vì vậy nó có thể được gọi là cái gì khác. –

1

Cách đơn giản nhất để kết nối với cơ sở dữ liệu quan hệ bên ngoài (trái ngược với cơ sở dữ liệu bộ nhớ như db berkeley) là thông qua JDBC. Bạn nên làm quen với JDBC trước khi bạn tiếp tục với bất kỳ phương pháp lưu trữ nào khác. Đối với hầu hết các dự án, bạn sẽ sử dụng mysql hoặc postgresql. Đừng lo lắng về việc quyết định cái khác, cho các dự án nhỏ hơn sự khác biệt không liên quan. Miễn là bạn đang sử dụng jdbc, bạn sẽ bị ble chuyển đổi giữa hai sau này nếu bạn thực sự cần.

Để bắt đầu, tôi sẽ tải xuống mysql và làm theo hướng dẫn jdbc trên trang web mặt trời http://java.sun.com/docs/books/tutorial/jdbc/index.html).

Vào một ngày sau, bạn có thể quyết định bạn cần sử dụng công cụ ánh xạ đối tượng-quan hệ, như ngủ đông, nhưng tôi cũng không lo lắng về điều đó, chỉ cần làm quen với jdbc và mysql hoặc postgresql.

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