我正在使用tomcat 8.0,mybatis 3.2.2,当我在mybatis-config.xml中使用数据源时,我的应用程序工作正常
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@localhost:1521:XE"/>
<property name="username" value="uid"/>
<property name="password" value="pwd"/>
</dataSource>
</environment>
我按照许多论坛中提供的程序和解决方案,特别是stachoverflow,但它没有帮助。以下是我遵循的步骤。我在Tomcat8.0 \ lib下安装了mysql-connector-java-5.1.38.jar,在WEB-INF \ lib文件夹下放置了ojdbc6.jar。我使用的是java 1.8。请帮助确定我错过的地方
Tomcat8.0 \ conf
下的server.xml<GlobalNamingResources>
<Resource name="jdbc/MYDB"
auth=Container
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
username="uid"
password="pwd"
url="jdbc:oracle:thin:@localhost:1521:XE"
/>
Tomcat8.0 \ CONF \ context.xml中
<Context>
<ResourceLink name="jdbc/MYDB" global="jdbc/MYDB" type="javax.sql.DataSource"/>
</Context>
myapp / WebContent / WEB-INF /
中的web.xml<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/MYDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
带有JNDI名称引用的mybatis-config.xml
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="JNDI">
<property name="data_source" value="java:comp/env/jdbc/MYDB"/>
</dataSource>
</environment>
DBUtil.java具有以下代码
String resource = "path of mybatis-config.xml";
InputStream inputStream;
try {
inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
但是当我运行应用程序(访问数据库)时,我得到了 原因:java.sql.SQLException:无法为连接URL'null'创建类''的JDBC驱动程序 。 。 。 引起:java.lang.NullPointerException 在com.mysql.fabric.jdbc.FabricMySQLDriver.parseFabricURL(FabricMySQLDriver.java:97)
请让我知道我错过的地方,以及这个问题。
答案 0 :(得分:0)
我看到的主要问题是您正在为Oracle数据库使用MySQL JDBC驱动程序。这是一个Oracle驱动程序:oracle.jdbc.driver.OracleDriver
,这是一个oracle连接字符串:jdbc:oracle:thin:@localhost:1521:XE
但你提到这个:
我已将Tomcat8.0 \ lib下的mysql-connector-java-5.1.38.jar和WEB-INF \ lib文件夹下的ojdbc6.jar放置。
您需要在ojdbc6.jar
下放置Tomcat8.0\lib
(Oracle DB的JDBC驱动程序)并删除mysql-connector-java-5.1.38.jar
(MySQL DB的JDBC驱动程序)。