2012-05-01 29 views
5

Estoy trabajando a través de this MyBatis tutorial, y estoy a un problema con la configuración de la fuente de datos dentro de SqlMapConfig.xml. El tutorial está utilizando MySql, como cualquier otro tutorial existente en Internet parece, pero estoy usando SqlServer 2008.SqlServer/MyBatis configuración de origen de datos SqlMapConfig

Ayúdeme a convertir el siguiente código para conectarse a un SqlServer local, o ayúdenme a comprender cómo configurarlo entornos/cómo el SqlMapConfig funciona con la fábrica de conexiones.

Los enlaces a información/tutoriales también serían geniales.

Gracias!

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE configuration 
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
    "http://mybatis.org/dtd/mybatis-3-config.dtd"> 

<configuration> 

    <typeAliases> 
     <typeAlias alias="Contact" type="com.name.model.Contact"/> 
    </typeAliases> 

    <environments default="development"> 
     <environment id="development"> 
      <transactionManager type="JDBC"/> 
      <dataSource type="POOLED"> 
       <property name="driver" value="com.mysql.jdbc.Driver"/> 
       <property name="url" value="jdbc:mysql://localhost:3306/blog"/> 
       <property name="username" value="root"/> 
       <property name="password" value="root"/> 
      </dataSource> 
     </environment> 
    </environments> 

    <mappers> 
     <mapper resource="com/name/data/Contact.xml"/> 
    </mappers> 

</configuration> 

Actualizado:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE configuration 
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
    "http://mybatis.org/dtd/mybatis-3-config.dtd"> 

<configuration> 

    <typeAliases> 
     <typeAlias alias="Contact" type="com.name.model.Contact"/> 
    </typeAliases> 

    <environments default="development"> 
     <environment id="development"> 
      <transactionManager type="JDBC"/> 
      <dataSource type="POOLED"> 
       <property name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/> 
      <property name="url" value="jdbc:sqlserver://localhost(or name of server):1433;databaseName=yourdbname; catalogName=sameasdbname"/> 
      <property name="username" value="root"/> 
      <property name="password" value="root"/> 
      </dataSource> 
     </environment> 
    </environments> 

    <mappers> 
     <mapper resource="com/name/data/Contact.xml"/> 
    </mappers> 

</configuration> 

NOTA: que estaba usando la última versión del controlador JDBC 4 con SQL 2008, y tenían problemas de versiones, específicamente el error: "Datos de la excepción: java. lang.UnsupportedClassVersionError (com/microsoft/sqlserver/jdbc/SQLServerDriver) versión principal incorrecta en offset = 6 ......... "

Cambie al controlador compatible sqljdbc. jar sobre sqljdbc3/sqljdbc4.jar para arreglar esto.

Respuesta

4

para conectarse a SQL Server (o cualquier otra base de datos por ahí) se necesitan dos cosas básicas:

  • un controlador JDBC apropiado.
  • propiedades apropiadas al configurar el origen de datos;

Para el conductor supongo que se puede ir a "the official" Controlador JDBC de Microsoft para la distribución de SQL Server que se debe poner a disposición en la ruta de clase de la aplicación, a continuación, configure las propiedades del origen de datos en la configuración de MyBatis que implica que especifican la clase del controlador (com.microsoft.sqlserver.jdbc.SQLServerDriver si no me equivoco) y la URL de conexión (que debe comenzar con jdbc:sqlserver:// en lugar de jdbc:mysql://).

Puede encontrar más información en la página oficial que le proporcionará appropriate links para ayudarle con todo (solo asegúrese de leer la documentación de su versión de SQL Server; SQL Server 2012 está fuera para que Microsoft actualice sus documentos).

Luego, dependiendo de qué tipo de consultas esté ejecutando (para un tutorial básico ya que ese no debería ser un problema) debe asegurarse de usar the proper SQL syntax.

+0

Genial, gracias. Tengo el controlador JDBC atendido, pero las "propiedades apropiadas" son lo que me confunde. ¿Puedo agregar una propiedad como y poner allí mi información de DB? Además, ¿dónde encontraste el controlador y los valores de la URL? ¿enlazar? – JWiley

+0

... confundido allí. Veo de dónde sacaste la información jdbc, los campos de nombre de usuario y contraseña del tutorial me confundieron. La propiedad url ES la cadena de conexión db ... ¿correcto? – JWiley

+1

@JWiley: ¡La cadena de conexión es la propiedad de url, sí! Aquí está la cosa: cuando configura una fuente de datos en la configuración de MyBatis, realmente configura un [DataSource] (http://docs.oracle.com/javase/1.5.0/docs/api/javax/sql/DataSource.html) instancia. Las propiedades son setters en esa instancia específica. Un tipo de fuente de datos POOLED significa una [org.apache.ibatis.datasource.pooled.PooledDataSource] (http://www.jarvana.com/jarvana/view/org/mybatis/mybatis/3.0.2/mybatis-3.0.2 -javadoc.jar!/org/apache/ibatis/datasource/pooled/PooledDataSource.html) instancia. PooledDataSource tiene definidores para cada propiedad. – Bogdan

Cuestiones relacionadas