【问题标题】:SqlServer/MyBatis SqlMapConfig datasource setupSqlServer/MyBatis SqlMapConfig 数据源设置
【发布时间】:2012-05-01 14:05:19
【问题描述】:

我正在处理this MyBatis tutorial,并且遇到了在 SqlMapConfig.xml 中设置数据源的问题。该教程使用 MySql,就像互联网上存在的所有其他教程一样,但我使用的是 SqlServer 2008。

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

信息/教程的链接也很棒。

谢谢!

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

注意: 我在 SQL 2008 中使用了最新的 JDBC 驱动程序 4,并且遇到了版本问题,特别是错误:“异常数据:java.lang.UnsupportedClassVersionError (com/microsoft/sqlserver/jdbc/SQLServerDriver) 偏移量 = 6 处的主要版本错误 .. .......”

在 sqljdbc3/sqljdbc4.jar 上切换到兼容的驱动程序 sqljdbc.jar 以解决此问题。

【问题讨论】:

    标签: java sql-server mybatis


    【解决方案1】:

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

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

    对于驱动程序,我想您可以选择“the official”Microsoft JDBC Driver for SQL Server 分发版,您必须在应用程序的类路径中提供该驱动程序,然后在 MyBatis 配置中配置数据源属性,其中涉及指定驱动程序类( com.microsoft.sqlserver.jdbc.SQLServerDriver 如果我没记错的话)和连接 url(必须以 jdbc:sqlserver:// 而不是 jdbc:mysql:// 开头)。

    您可以在官方页面上找到更多信息,该页面将提供appropriate links 来帮助您完成这一切(只需确保您阅读了您的 SQL Server 版本的文档;SQL Server 2012 已发布,因此 Microsoft 更新了他们的文档) .

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

    【讨论】:

    • 太好了,谢谢。我已经处理了 JDBC 驱动程序,但是我对“适当的属性”感到困惑。我可以添加诸如 之类的属性并将我的数据库信息放在那里吗?另外,您在哪里找到驱动程序和 url 值?链接?
    • .. 搞糊涂了。我看到你从哪里得到 jdbc 信息,教程中的用户名和密码字段让我很困惑。 url 属性是数据库连接字符串...正确吗?
    • @JWiley:连接字符串是 url 属性,是的!事情是这样的:当你在 MyBatis config 中配置一个数据源时,你实际上配置了一个 DataSource 实例。属性是该特定实例的设置器。 POOLED 数据源类型表示org.apache.ibatis.datasource.pooled.PooledDataSource 实例。 PooledDataSource 对每个属性都有设置器。
    猜你喜欢
    • 2018-01-25
    • 2011-06-12
    • 1970-01-01
    • 2019-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-12
    • 1970-01-01
    相关资源
    最近更新 更多