Last commit

This commit is contained in:
Julien Lengrand-Lambert
2020-05-29 15:43:12 +02:00
parent 9d5b04657f
commit 3f41796ae8
3 changed files with 110 additions and 18 deletions

View File

@@ -0,0 +1,76 @@
package nl.lengrand.imdb.queries
import nl.lengrand.imdb.dsl.Names
import org.jetbrains.exposed.sql.Database
import org.jetbrains.exposed.sql.select
import org.jetbrains.exposed.sql.transactions.transaction
fun main(){
val db = Database.connect(
"jdbc:mysql://localhost:3306/imdb?useSSL=false&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true",
driver = "com.mysql.jdbc.Driver",
user = "root",
password = ""
)
// Find a actors with a given name
transaction(db) {
var result = Names.select { Names.primaryName like "%cotillard" }.toList()
println(result.size)
}
// Trying with DAO
// Find all the movies someone played in
// Not possible currently, need join table
// Find all the batman movies
// transaction(db) {
// var result = Titles.select { Titles.primaryTitle like "%batman%"}.toList()
// println(result.size)
// println(result)
// println(result.first())
// }
// Find the rating for a specific movie
// println("Ratings query took : ${measureTimeMillis() {
// transaction(db) {
// var result = (Titles crossJoin Ratings).slice(Titles.primaryTitle, Titles.titleType, Ratings.averageRating, Ratings.numVotes).select {
// ((Titles.primaryTitle like "The Lego Batman Movie") and (Titles.titleType like "movie")
// and Titles.tconst.eq(Ratings.tconst))
// }.toList()
//
// println(result.size)
// println(result)
// println(result.first())
// }
// }}");
// println("Ratings query took : ${measureTimeMillis() {
// transaction(db) {
// var result = (Titles innerJoin Ratings).slice(Titles.primaryTitle, Titles.titleType, Ratings.averageRating, Ratings.numVotes).select {
// ((Titles.primaryTitle like "The Lego Batman Movie") and (Titles.titleType like "movie")
// and Titles.tconst.eq(Ratings.tconst))
// }.toList()
//
// println(result.size)
// println(result)
// println(result.first())
// }
// }}");
// println("Ratings query took : ${measureTimeMillis() {
// transaction(db) {
// var result = (Titles innerJoin Ratings).slice(Titles.primaryTitle, Titles.titleType, Ratings.averageRating, Ratings.numVotes).select {
// ((Titles.primaryTitle like "%batman%") and (Titles.titleType like "movie")
// and Titles.tconst.eq(Ratings.tconst))
// }.orderBy(Ratings.averageRating)
// .toList()
//
// println(result.size)
// println(result)
// println(result.last())
// }
// }}");
}

View File

@@ -0,0 +1,12 @@
package nl.lengrand.imdb.api
import nl.lengrand.imdb.dsl.Names
import org.jetbrains.exposed.sql.select
class NamesApi {
companion object{
fun get(searchTerm: String){
Names.select { Names.primaryName like "%cotillard" }.toList()
}
}
}

View File

@@ -1,5 +1,6 @@
package nl.lengrand.imdb
import nl.lengrand.imdb.dsl.Names
import nl.lengrand.imdb.dsl.Ratings
import nl.lengrand.imdb.dsl.Titles
import org.jetbrains.exposed.sql.Database
@@ -16,11 +17,14 @@ fun main(){
password = ""
)
// Find a actors with a given name
// transaction(db) {
// var result = Names.select { Names.primaryName like "%cotillard" }.toList()
// println(result.size)
// }
// Find a actors with a given name
transaction(db) {
var result = Names.select { Names.primaryName like "%cotillard" }.toList()
println(result.size)
}
// Trying with DAO
// Find all the movies someone played in
// Not possible currently, need join table
@@ -60,17 +64,17 @@ fun main(){
// }
// }}");
println("Ratings query took : ${measureTimeMillis() {
transaction(db) {
var result = (Titles innerJoin Ratings).slice(Titles.primaryTitle, Titles.titleType, Ratings.averageRating, Ratings.numVotes).select {
((Titles.primaryTitle like "%batman%") and (Titles.titleType like "movie")
and Titles.tconst.eq(Ratings.tconst))
}.orderBy(Ratings.averageRating)
.toList()
println(result.size)
println(result)
println(result.last())
}
}}");
// println("Ratings query took : ${measureTimeMillis() {
// transaction(db) {
// var result = (Titles innerJoin Ratings).slice(Titles.primaryTitle, Titles.titleType, Ratings.averageRating, Ratings.numVotes).select {
// ((Titles.primaryTitle like "%batman%") and (Titles.titleType like "movie")
// and Titles.tconst.eq(Ratings.tconst))
// }.orderBy(Ratings.averageRating)
// .toList()
//
// println(result.size)
// println(result)
// println(result.last())
// }
// }}");
}