与MSSQL连接

问题描述

我正在使用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 (将#修改为@)