es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ktor Hacer que la columna de entidad no sea nula (coincida con el tipo de propiedad)

Dependencias de MySQL y ktorm:

implementación grupo: 'org.ktorm', nombre: 'ktorm-core', versión: '3.4.1'
implementación grupo: 'mysql', nombre: 'mysql-connector-java', versión: '8.0.25'

Entidad de Student:

object StudentEntity : Table<Nothing>("estudiante") {
    val id = int("id").primaryKey()        //<- tipo no nulo
    val nombre = varchar("nombre")
    val edad = int("edad")
    val género = int("género")
}

obtener():

obtener("/estudiantes") {
    val estudiantes = baseDatos.desde(StudentEntity).select().map {
        val id = it[StudentEntity.id]!!        //<- nulo
        val nombre = it[StudentEntity.nombre]!!
        val edad = it[StudentEntity.edad]!!
        val género = it[StudentEntity.género]!!

        Estudiante(id, nombre, edad, género)
    }

    llamada.responder(estudiantes)
}

Actualización del 12/12/2021: No es compatible

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Dependencias de MySQL y ktorm

    Para usar MySQL con ktorm, es necesario agregar las dependencias ktorm-core y mysql-connector-java a su proyecto de la siguiente manera:

    implementation group: 'org.ktorm', name: 'ktorm-core', version: '3.4.1'
    implementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.25'
    

    Entidad Student

    El objeto StudentEntity define la estructura de la tabla de la base de datos para la tabla student. Tiene columnas para los campos id, name, age y gender.

    object StudentEntity : Table<nothing>("student") {
        val id = int("id").primaryKey()
        val name = varchar("name")
        val age = int("age")
        val gender = int("gender")
    }
    

    Función get()

    La función get() recupera todas las filas de la tabla student y las asigna a una lista de objetos Student. Luego, responde con la lista.

    get("/students") {
        val students = database.from(StudentEntity).select().map {
            val id = it[StudentEntity.id]!!
            val name = it[StudentEntity.name]!!
            val age = it[StudentEntity.age]!!
            val gender = it[StudentEntity.gender]!!
    
            Student(id, name, age, gender)
        }
    
        call.respond(students)
    }
    

    Tenga en cuenta que los campos id, name, age y gender son todos tipos no nulos en la clase Student. Sin embargo, son nulos en la base de datos. Por lo tanto, utilizamos el operador de afirmación no nulo (!!) para convertirlos en tipos no nulos.

Comments are closed.