我正在使用Eclipse和Maven,在myBatis-config.xml中我有以下代码。代码的H2部分工作,因为我可以使用我的程序连接到H2并访问数据库。我的代码的Oracle部分不起作用。我正在使用ORACLE DATABASE XE 11.2,应用程序表达工作区: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>
答案 0 :(得分:-1)
您好,阅读MyBatis官方网站的文档,我可以获得以下信息:
如果使用multi-db功能,您需要以下列方式通知databaseIdProvider属性:
如果使用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配置文件的情况下直接指定Configuration实例。例如: mybatis.org/spring/es/factorybean.html