//package app.example // //import org.aikrai.vertx.gen.AnnotationMapping //import org.aikrai.vertx.gen.ColumnMapping //import org.aikrai.vertx.gen.SqlAnnotationMapper //import org.aikrai.vertx.gen.SqlGenerator // ///** // * 表名注解示例 // */ //@Target(AnnotationTarget.CLASS) //@Retention(AnnotationRetention.RUNTIME) //annotation class TableName(val value: String) // ///** // * 列名注解示例 // */ //@Target(AnnotationTarget.FIELD) //@Retention(AnnotationRetention.RUNTIME) //annotation class Column(val value: String, val type: String = "VARCHAR(255)") // ///** // * 主键注解示例 // */ //@Target(AnnotationTarget.FIELD) //@Retention(AnnotationRetention.RUNTIME) //annotation class Id(val value: Boolean = true) // ///** // * 非空注解示例 // */ //@Target(AnnotationTarget.FIELD) //@Retention(AnnotationRetention.RUNTIME) //annotation class NotNull(val value: Boolean = true) // ///** // * 默认值注解示例 // */ //@Target(AnnotationTarget.FIELD) //@Retention(AnnotationRetention.RUNTIME) //annotation class DefaultValue(val value: String) // ///** // * 用户实体类示例 // */ //@TableName("tb_user") //class User { // @Id // @Column("id", "SERIAL") // @NotNull // var id: Long = 0 // // @Column("username") // @NotNull // var username: String = "" // // @Column("email") // var email: String? = null // // @Column("created_at", "TIMESTAMP") // @DefaultValue("CURRENT_TIMESTAMP") // var createdAt: String = "" //} // ///** // * SQL注解映射示例 // */ //class SqlAnnotationExample { // companion object { // /** // * 创建注解映射器 // */ // fun createMapper(): SqlAnnotationMapper { // val mapper = SqlAnnotationMapper() // // // 设置表名映射 // mapper.tableName = AnnotationMapping( // annotationClass = TableName::class, // propertyName = "value" // ) // // // 设置列名映射 // mapper.addColumnMapping( // ColumnMapping( // nameMapping = AnnotationMapping( // annotationClass = Column::class, // propertyName = "value" // ), // typeMapping = AnnotationMapping( // annotationClass = Column::class, // propertyName = "type" // ), // nullableMapping = AnnotationMapping( // annotationClass = NotNull::class, // propertyName = "value" // ), // defaultValueMapping = AnnotationMapping( // annotationClass = DefaultValue::class, // propertyName = "value" // ) // ) // ) // // // 设置主键映射 // mapper.primaryKeyMapping = AnnotationMapping( // annotationClass = Id::class, // propertyName = "value" // ) // // return mapper // } // // /** // * 测试SQL生成 // */ // fun testSqlGeneration() { // // 创建注解映射器 // val mapper = createMapper() // // // 生成各种SQL // val createTableSql = SqlGenerator.generateCreateTableSql(User::class, mapper) // val insertSql = SqlGenerator.generateInsertSql(User::class, mapper) // val updateSql = SqlGenerator.generateUpdateSql(User::class, mapper) // val deleteSql = SqlGenerator.generateDeleteSql(User::class, mapper) // val selectSql = SqlGenerator.generateSelectSql(User::class, mapper) // val selectByPkSql = SqlGenerator.generateSelectByPrimaryKeySql(User::class, mapper) // // // 打印SQL // println("Create Table SQL:") // println(createTableSql) // println("\nInsert SQL:") // println(insertSql) // println("\nUpdate SQL:") // println(updateSql) // println("\nDelete SQL:") // println(deleteSql) // println("\nSelect SQL:") // println(selectSql) // println("\nSelect By PK SQL:") // println(selectByPkSql) // } // } //} // ///** // * 主函数,用于演示 // */ //fun main() { // SqlAnnotationExample.testSqlGeneration() //}