Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Eclipse中使用JDBC通过myBatis连接到Oracle XE_Eclipse_Oracle_Maven_Jdbc_Oracle Xe - Fatal编程技术网

在Eclipse中使用JDBC通过myBatis连接到Oracle XE

在Eclipse中使用JDBC通过myBatis连接到Oracle XE,eclipse,oracle,maven,jdbc,oracle-xe,Eclipse,Oracle,Maven,Jdbc,Oracle Xe,我将Eclipse与Maven一起使用,在myBatis-config.xml中,我有以下代码。代码的H2部分可以工作,因为我可以用我的程序连接到H2并访问数据库。我的代码中的Oracle部分不起作用。我使用的是ORACLE数据库XE 11.2,ApplicationExpress,工作区为:test,用户名为:name,密码为:123。当我在Eclipse中运行测试类时,我可以通过H2测试,但是当我使用oracle运行相同的测试时,它会得到一个错误。为参数对象选择键或设置结果时出错。案例:ja

我将Eclipse与Maven一起使用,在myBatis-config.xml中,我有以下代码。代码的H2部分可以工作,因为我可以用我的程序连接到H2并访问数据库。我的代码中的Oracle部分不起作用。我使用的是ORACLE数据库XE 11.2,ApplicationExpress,工作区为:test,用户名为:name,密码为:123。当我在Eclipse中运行测试类时,我可以通过H2测试,但是当我使用oracle运行相同的测试时,它会得到一个错误。为参数对象选择键或设置结果时出错。案例:java.sql.SQLSyntaxErrorException:ORA-02289:序列不存在

<environment id="H2">
    <transactionManager type="JDBC" />
    <dataSource type="POOLED">
        <property name="driver" value="org.h2.Driver" />
        <property name="url" value="jdbc:h2:tcp://localhost:9096/sample/testDB" />
        <property name="username" value="sa" />
        <property name="password" value="123" />
    </dataSource>
</environment>

<environment id="ORACLE">
    <transactionManager type="JDBC" />
    <dataSource type="POOLED">
        <property name="driver" value="oracle.jdbc.OracleDriver" />
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" />
        <property name="username" value="system" />
        <property name="password" value="123" />
    </dataSource>
</environment>

您好,阅读MyBatis官方网站上的文档,我可以获得以下信息:

如果使用multi-db功能,则需要以以下方式通知databaseIdProvider属性:

<bean id="vendorProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
    <property name="properties">
        <props>
            <prop key="SQL Server">sqlserver</prop>
            <prop key="DB2">db2</prop>
            <prop key="Oracle">oracle</prop>
            <prop key="MySQL">mysql</prop>
        </props>
    </property>
</bean>

<bean id="databaseIdProvider" class="org.apache.ibatis.mapping.VendorDatabaseIdProvider">
    <property name="properties" ref="vendorProperties"/>
</bean>

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="mapperLocations" value="classpath*:sample/config/mappers/**/*.xml" />
    <property name="databaseIdProvider" ref="databaseIdProvider"/>
</bean>
如果使用multi-db功能,则需要以以下方式通知databaseIdProvider属性:

<bean id="vendorProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
    <property name="properties">
        <props>
            <prop key="SQL Server">sqlserver</prop>
            <prop key="DB2">db2</prop>
            <prop key="Oracle">oracle</prop>
            <prop key="MySQL">mysql</prop>
        </props>
    </property>
</bean>

<bean id="databaseIdProvider" class="org.apache.ibatis.mapping.VendorDatabaseIdProvider">
    <property name="properties" ref="vendorProperties"/>
</bean>

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="mapperLocations" value="classpath*:sample/config/mappers/**/*.xml" />
    <property name="databaseIdProvider" ref="databaseIdProvider"/>
</bean>
希望对你有所帮助

你好

注意:自1.3.0以来,已添加配置属性。可以直接将其指定为配置实例,而无需MyBatis XML配置文件。例如:

如果用户名是name,不要将系统放入配置中。实际上,不要对系统执行任何操作。请使用name和123进行尝试,相同的错误。