Guest User

Untitled

a guest
Aug 27th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1. case class User(id: Long, name: String, createdAt: Instant, updatedAt: Instant)
  2.  
  3. object User {
  4. implicit val rowMapper: RowMapper[User] =
  5. new RowMapper[User] {
  6. override def mapRow(rs: ResultSet): User =
  7. User(
  8. rs.getLong("id"),
  9. rs.getString("name"),
  10. rs.getInstant("created_at"),
  11. rs.getInstant("updated_at")
  12. )
  13. }
  14. }
  15.  
  16. object Main extends App {
  17. import com.libmacro.molder.syntax._
  18.  
  19. MySQLConnectorJava.initialize()
  20.  
  21. val config = new HikariConfig()
  22. config.setJdbcUrl("jdbc:mysql://localhost:3306/molder")
  23. config.setUsername("molder")
  24. config.setPassword("molder")
  25.  
  26. val dataSource = new HikariDataSource(config)
  27.  
  28. val db = Database(dataSource)
  29.  
  30. db.execute(
  31. DDLQuery
  32. .Builder(
  33. """
  34. |CREATE TABLE IF NOT EXISTS `user`(
  35. | `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  36. | `name` varchar(255) NOT NULL,
  37. | `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  38. | `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  39. | PRIMARY KEY (`id`)
  40. |) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  41. """.stripMargin)
  42. .build()
  43. )
  44.  
  45. println(
  46. db.select[User](
  47. SelectQuery
  48. .Builder("SELECT * FROM user WHERE id = ?")
  49. .withParams(1L.asSQL)
  50. .build()
  51. )
  52. )
  53.  
  54. println(
  55. db.selectList[User](
  56. SelectQuery
  57. .Builder("SELECT * FROM user")
  58. .build()
  59. )
  60. )
  61.  
  62. val userIds = (1 to 4).toVector
  63. println(
  64. db.selectList[User](
  65. SelectQuery
  66. .Builder(s"SELECT * FROM user WHERE id IN ${userIds.asPlaceHolders}")
  67. .withParams(userIds.map(_.asSQL):_*)
  68. .build()
  69. )
  70. )
  71.  
  72. println(
  73. db.update(
  74. UpdateQuery
  75. .Builder("UPDATE user SET name = ? WHERE id = ?")
  76. .withParams("db".asSQL, 2L.asSQL)
  77. .build()
  78. )
  79. )
  80.  
  81. println(
  82. db.insert(
  83. InsertQuery
  84. .Builder("INSERT INTO user(name) VALUES(?)")
  85. .withParams("bob".asSQL)
  86. .withReturnGeneratedKeys()
  87. .build()
  88. )
  89. )
  90.  
  91. println(
  92. db.delete(
  93. DeleteQuery
  94. .Builder("DELETE FROM user WHERE name = ?")
  95. .withParams("bob".asSQL)
  96. .build()
  97. )
  98. )
  99. }
Add Comment
Please, Sign In to add comment