2009-07-04 14 views
9

He estado luchando para obtener un programa Java para conectarme a MS SQL Server, y estoy comenzando a preguntarme si MySQL sería una mejor opción para mi proyecto (de aprendizaje).¿Cuál es la mejor base de datos para usar con un programa Java?

Los tutoriales de Sun se refieren a Java DB, pero nunca he oído hablar de ellos en ningún otro contexto, por lo que parece que no es la base de datos más útil para obtener información.

Agradezco cualquier idea sobre la forma más natural de conectar Java a una base de datos de uso común.

Respuesta

5

El tipo o el nombre de la base de datos no afectará su proceso educativo ya que trabajará con JDBC.

Creo que puede ir con cualquiera. Simplemente configúrelo de la manera adecuada en su máquina y conéctese con la cadena de conexión adecuada.

9

Quizás pueda describir los problemas que ha tenido al conectarse a MS SQL. Por supuesto que es posible, entonces es probable que algo pequeño que hayas hecho o dejado de hacer impida que la conexión funcione.

Hay muchos servidores de bases de datos de código abierto con controladores JDBC. Uno que podría considerar es HSQLDB que tiene un modo completamente en memoria por lo que ni siquiera tiene que pensar en configurar un servidor. Esta es probablemente una gran manera de aprender los conceptos básicos de SQL.

+1

Al lado de HSQLDB, H2 (http://www.h2database.com/) también puede ser una buena opción para aprender la programación de bases de datos. Personalmente prefiero H2 a HSQLDB debido a su buena interfaz web y mejor aislamiento de transacciones. –

1

Cualquier cosa con un controlador JDBC debería funcionar bien. No creo que alguna vez encuentres una respuesta definitiva a lo que es "lo mejor", es una pregunta muy subjetiva. Usamos InterBase en mi trabajo y no tengo problemas.

2

Recomiendo MySQL u Oracle. Desde Oracle también puede obtener una base de datos gratuita, sin embargo, el tamaño de la base de datos es limitado.

Razonando para esto es que esas son las bases de datos más utilizadas y es bueno tener algo de visibilidad para ellas. Use JDBC y su interfaz es similar, pero haga el código en la parte superior de la base de datos y también hay otras cosas que debe aprender. Especialmente si haces cualquier aplicación que es un poco más compleja. También ensuciarse las manos con las operaciones básicas con la base de datos siempre es bueno.

+0

Oracle es gratuito siempre que no lo ponga en producción. –

0

Si desea permanecer en Java, una opción es Berkeley DB Java Edition. Es el mismo software de BDB que era de Sleepycat, que tenía una excelente reputación en el mercado de bases de datos integradas.

0

Elija una base de datos que pueda averiguar cómo instalarla. La mayoría son bastante fáciles y te darán una buena idea de cómo es usar una base de datos. Una vez que tenga una aplicación en funcionamiento, intente transferirla a otra base de datos. Recomendaría usar JavaDB para el primero y luego uno de los otros db - Oracle, MySQL, Postgres, etc.

0

El mayor problema que he tenido con el uso de MSSql es cuando uso el anticuado JDBC -> Puente ODBC conductores; estos hacen un envoltorio Java a medias sobre las llamadas ODBC, que son escamosas y frágiles. Si está utilizando JDBC ODBC Bridge, reemplácelos con los controladores nativos JDBC más recientes de Microsoft, funcionan un millón de veces mejor.

5

Java DB es Apache Derby renombrado e incluido en el JDK.Está bien, y es mucho más fácil de instalar que ejecutar bases de datos de forma nativa.

¡Es muy importante utilizar un buen controlador para la base de datos! Eso podría resolver todos sus problemas de conexión.

También tenga en cuenta que si cambia de base de datos, lo más probable es que también necesite cambiar su SQL a menos que utilice una capa como Hibernate o JPA.

+0

Derby probablemente no es un gran DBMS para aprender. Es muy lento y le falta mucho en el área de SQL. La última vez que lo usé (hace 6 meses), esto incluía la instrucción DML "MERGE"/"INSERTAR ... EN DUPLICATE KEY" y las opciones LIMIT/OFFSET en las consultas. Entre muchas otras características faltantes. – BobMcGee

+0

Agradecería los enlaces a buenas páginas que describan la parte "dolorosamente lenta". LIMIT/OFFSET depende de la base de datos, por lo que probablemente se llame algo más. –

1

La forma más sencilla de conectarse a una base de datos relacional externa (a diferencia de una base de datos en memoria como berkeley db) es a través de JDBC. Debe familiarizarse con JDBC antes de continuar con otros métodos de almacenamiento. Para la mayoría de los proyectos, estarás bien usando mysql o postgresql. No se preocupe por decidir uno sobre el otro, para proyectos más pequeños las diferencias no son tan relevantes. Siempre que use jdbc, podrá cambiar entre los dos más adelante si realmente lo necesita.

Para comenzar, me gustaría descargar mysql y seguir el tutorial de jdbc en el sitio de Sun http://java.sun.com/docs/books/tutorial/jdbc/index.html).

En una fecha posterior puede decidir si necesita usar una herramienta de asignación de correspondencia de objetos, como hibernar, pero tampoco me preocuparía por eso, simplemente familiarícese con jdbc y mysql o postgresql.

Cuestiones relacionadas