2012-05-01 52 views
5

我正在通过this MyBatis tutorial,解决了在SqlMapConfig.xml中设置dataSource的问题。本教程使用MySql,就像互联网上现有的其他教程似乎,但我使用SqlServer 2008.SqlServer/MyBatis SqlMapConfig数据源设置

请帮我转换下面的代码连接到本地SqlServer,或帮助我了解如何设置环境/ SqlMapConfig如何与连接工厂一起使用。

链接到info/tutorials也会很棒。

谢谢!

<?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> 

更新:

<?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> 

注: 我用的是最新的JDBC驱动程序4 SQL 2008,并有版本问题,具体错误:“异常数据:JAVA。 lang.UnsupportedClassVersionError(com/microsoft/sqlserver/jdbc/SQLServerDriver)错误的主要版本在偏移量= 6 .........“

切换到兼容驱动程序sqljdbc。通过对sqljdbc3/sqljdbc4.jar的jar来解决这个问题。

回答

4

要连接到SQL Server(或任何其他数据库在那里),你需要两个基本的东西:

  • 适当的JDBC驱动程序。
  • 配置数据源时的适当属性;

因为我想你可以去“the official”微软的JDBC驱动程序的SQL Server分发,你必须使用你的应用程序的类路径,然后配置在MyBatis的配置数据源的特性,这包括指定驱动程序类的驱动程序(com.microsoft.sqlserver.jdbc.SQLServerDriver,如果我没有弄错)和连接url(必须以jdbc:sqlserver://而不是jdbc:mysql://开头)。

你可以在官方页面找到更多的信息,它将提供appropriate links帮助你完成所有的工作(只要确保你阅读了你的SQL Server版本的文档; SQL Server 2012已经不在了,所以微软更新了他们的文档)。

然后根据您正在运行的查询类型(对于基本教程,因为这不应该是个问题),您必须确保您使用the proper SQL syntax

+0

太好了,谢谢。我有JDBC驱动程序照顾,但“适当的属性”是我很困惑。我可以添加一个属性,如,并将我的数据库信息放在那里?另外,你在哪里找到驱动程序和url值?链接? – JWiley

+0

..在那里感到困惑。我看到你得到的jdbc信息,教程中的用户名和密码字段让我困惑。 url属性是db连接字符串...正确吗? – JWiley

+1

@JWiley:连接字符串是url属性,是的!这是事情:当你在MyBatis配置中配置一个数据源时,你实际上配置了一个[DataSource](http://docs.oracle.com/javase/1.5.0/docs/api/javax/sql/DataSource.html )实例。属性是该特定实例的setter。 POOLED数据源类型表示[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)实例。 PooledDataSource为每个属性设置了setter。 – Bogdan