我正在开发一个 grails webapp,它将从我已经设置并使用 groovy 连接到的 mySQL 数据库中“获取”数据,并在表中显示所述数据(现在正在运行的线程总数)以及在图表中。我已经到处搜索了,我发现:
def sql = Sql.newInstance("jdbc:mysql://localhost:3306/mydatabase",
"root", pw, "com.mysql.jdbc.Driver")
sql.eachRow("SELECT second, threads FROM threadcount " ){
println it.seconds
println it.threads
}
将从我的表“threadcount”中获取我的数据并将其打印在控制台中。上面的代码是我现在在我的控制器文件中编写的。这很好,它可以工作,但我希望能够在网页上显示它。我还阅读了一些 grails 教程,并了解到从我的数据库中获取数据的另一种方法是执行以下操作。
def current = {
def allProjects = Threadcount.list()
[dbContent:allProjects]
}
在我的 grails 视图文件中,我有这个:
<html>
<head>
<title>Active Threads</title>
</head>
<body>
<table border = "1">
<g:each in = "${dbContent}" status = "i" var = "thisProject">
<tr>
<th>SECOND</th>
<th>THREADS</th>
</tr>
<tr>
<td>${thisProject.second}</td>
<td>${thisProject.threads}</td>
</tr>
</g:each>
</table>
</body>
</html>
但无论我做什么或是否使用 sql.query、sql.row、sql.eachRow 或 Threadcount.list(),我都无法显示我的所有数据。我的数据库中有 14 个主菜。使用 Threadcount.list() 方法,我只得到我的 mySQL 表的第一行,当我使用任何 sql 时。方法我什至没有让第一行出现。我刚刚收到以下错误消息:
没有这样的属性:类的 dbConent2:threadsapp.ThreadcountController
至于我的问题。我究竟做错了什么?或者有什么更好的方法来做到这一点?为什么
dbContent2<<it.toRowResult()
[dbContent:dbContent2]
也不行?
在这一点上,我不知道还能尝试什么,这就是我来这里的原因。在此先感谢,对于冗长而冗长的问题,我们深表歉意
PS这里是我读到的一些关于 groovy 和 sql
groovy sql
groovy 数据库特性的网站