问题描述
我正在使用MSsql数据库创建kotlin服务器端应用程序。与db的连接工作正常,但我无法使用DSL。
interface Department : Entity<Department> {
companion object : Entity.Factory<Department>()
val id: Int
var name: String
var location: String
}
object Departments : Table<Department>("t_department") {
val id = int("id").primaryKey().bindTo { it.id }
val name = varchar("name").bindTo { it.name }
val location = varchar("location").bindTo { it.location }
}
val Database.departments get() = this.sequenceOf(Departments)
fun main(args: Array<String>) {
Database.connectGlobally(
url = "jdbc:sqlserver://localhost:1433;instanceName=HomeLibrary;user=myuser;password=mypassword",)
Database.global.useConnection { conn ->
for (row in Departments.select()) {
println(row[Departments.name])
}
}
embeddedServer(Netty,port = 8080,module = Application::module).apply { start(wait = true) }
}
这是启动应用程序后的错误列表。 (我尝试在数据库中创建名称为t_department的表之后和之后调用select。结果是相同的。)
2020-08-23 01:31:34.127 [main] INFO me.liuwj.ktorm.database - Connected to jdbc:sqlserver://localhost\HomeLibrary:1433; ......
2020-08-23 01:31:34.813 [main] DEBUG me.liuwj.ktorm.database - sql: select * from t_department
2020-08-23 01:31:34.813 [main] DEBUG me.liuwj.ktorm.database - Parameters: []
Exception in thread "main" com.microsoft.sqlserver.jdbc.sqlServerException: Invalid object name 't_department'.
at com.microsoft.sqlserver.jdbc.sqlServerException.makeFromDatabaseError(sqlServerException.java:262)
at com.microsoft.sqlserver.jdbc.sqlServerStatement.getNextResult(sqlServerStatement.java:1632)
at com.microsoft.sqlserver.jdbc.sqlServerPreparedStatement.doExecutePreparedStatement(sqlServerPreparedStatement.java:602)
at com.microsoft.sqlserver.jdbc.sqlServerPreparedStatement$PrepStmtExecCmd.doExecute(sqlServerPreparedStatement.java:524)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7375)
at com.microsoft.sqlserver.jdbc.sqlServerConnection.executeCommand(sqlServerConnection.java:3200)
at com.microsoft.sqlserver.jdbc.sqlServerStatement.executeCommand(sqlServerStatement.java:247)
at com.microsoft.sqlserver.jdbc.sqlServerStatement.executeStatement(sqlServerStatement.java:222)
at com.microsoft.sqlserver.jdbc.sqlServerPreparedStatement.executeQuery(sqlServerPreparedStatement.java:446)
at me.liuwj.ktorm.database.Database.executeQuery(Database.kt:305)
at me.liuwj.ktorm.dsl.Query$rowSet$2.invoke(Query.kt:91)
at me.liuwj.ktorm.dsl.Query$rowSet$2.invoke(Query.kt:71)
at kotlin.UnsafeLazyImpl.getValue(Lazy.kt:81)
at me.liuwj.ktorm.dsl.Query.getRowSet(Query.kt)
at me.liuwj.ktorm.dsl.Query.iterator(Query.kt:131)
at com.homelibrary.ApplicationKt.main(Application.kt:38)
Process finished with exit code 1
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)