NutzCN Logo
问答 使用SimpleDataSource的异常
发布于 3041天前 作者 qq_74967e40 2652 次浏览 复制 上一个帖子 下一个帖子
标签: dao

因为遗留问题,某一个项目是用的JFinal,但是我想用Nutz来初始化数据库
于是乎用了

SimpleDataSource ds = new SimpleDataSource();
ds.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/dm");
ds.setUsername("root");
ds.setPassword("root123");
Dao dao = new NutDao(ds);	
Daos.createTablesInPackage(dao, "com.dm.domain", false);

但是一直报
java.lang.RuntimeException: java.sql.SQLException: No suitable driver found for jdbc:mysql://127.0.0.1:3306/dm

是url写的有错吗?

4 回复

我跟踪了代码
发现DriverManager里的getConnection方法里调用的

for(DriverInfo aDriver : registeredDrivers) {
// If the caller does not have permission to load the driver then
// skip it.
if(isDriverAllowed(aDriver.driver, callerCL)) {
try {
println("    trying " + aDriver.driver.getClass().getName());
Connection con = aDriver.driver.connect(url, info);
if (con != null) {
// Success!
println("getConnection returning " + aDriver.driver.getClass().getName());
return (con);
}
} catch (SQLException ex) {
if (reason == null) {
reason = ex;
}
}

} else {
println("    skipping: " + aDriver.getClass().getName());
}

}

上面的方法没有进去,因为registeredDrivers是空的

连mysql的驱动jar都不加, 能行吗....

Class.forName("org.gjt.mm.mysql.Driver");

100%报类不存在

原因是用了JDK1.7,换成1.8就行了
或者用1.7的话 加上兽总的补丁
在代码之前写上

Class.forName("org.gjt.mm.mysql.Driver");
添加回复
请先登陆
回到顶部