我有一个我似乎无法弄清楚的错误。我是Grails的新手,我正在尝试将表格放入我的数据库。我在MySQL中创建了数据库。然后我尝试创建表,但是当我启动应用程序并单击表时,我收到以下错误:
/racetrack/race/list
Class org.h2.jdbc.JdbcSQLException
Message Table "RACE" not found;
我的DevelopmentDataSource.groovy文件如下:
class DevelopmentDataSource {
boolean pooling = true
String dbCreate = "update"
String url = "jdbc:mysql://localhost/racetrack_dev"
String driverClassName = "com.mysql.jdbc.Driver"
String username = "ironmantis7x"
String password = "mantismonk07"
}
我在MySQL中检查过,数据库存在,但它没有任何表格。应该有两个 - race
和registration
。我该如何解决这个问题?请告诉我你需要看到我的Grails应用程序的其他部分。
答案 0 :(得分:4)
您正在使用古老的第一版 Grails入门。当前的Grails版本不支持该语法。使用第二版,您可以获得here。这已经相当过时,但会更好。
只需30美元,您就可以获得最新发布的Grails书籍,其中涵盖Grails 2.0+。它由两位核心Grails开发人员Jeff Brown和Graeme Rocher撰写。
答案 1 :(得分:0)
你还没有给Grails你的MySQL端口号:
url = "jdbc:mysql://localhost:3306/racetrack?autoreconnect=true"
在MySQL和DataSource.groovy
网址中检查数据库的名称。
如果在MySQL中创建名为racetrack
的数据库,则您的数据源代码应如下所示:
dataSource {
pooled = true
driverClassName = "com.mysql.jdbc.Driver"
username = "ironmantis7x"
password = "mantismonk07"
}
hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = false
cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory'
}
// environment specific settings
environments {
development {
dataSource {
dbCreate = "update" // one of 'create', 'create-drop', 'update', 'validate', ''
url = "jdbc:mysql://localhost:3306/racetrack?autoreconnect=true"
}
}
test {
dataSource {
dbCreate = "update"
url = "jdbc:mysql://localhost:3306/racetrack?autoreconnect=true"
}
}
production {
dataSource {
dbCreate = "update"
url = "jdbc:mysql://localhost:3306/racetrack?autoreconnect=true"
pooled = true
properties {
maxActive = -1
minEvictableIdleTimeMillis=1800000
timeBetweenEvictionRunsMillis=1800000
numTestsPerEvictionRun=3
testOnBorrow=true
testWhileIdle=true
testOnReturn=true
validationQuery="SELECT 1"
}
}
}
}