10 {pool}
In RStudio:
library(shiny)
library(dplyr)
library(pool)
pool <- dbPool(
drv = RMySQL::MySQL(),
dbname = "shinydemo",
host = "shiny-demo.csa7qlmguqrf.us-east-1.rds.amazonaws.com",
username = "guest",
password = "guest"
)
onStop(function() {
poolClose(pool)
})
ui <- fluidPage(
textInput("ID", "Enter your ID:", "5"),
tableOutput("tbl"),
numericInput("nrows", "How many cities to show?", 10),
plotOutput("popPlot")
)
server <- function(input, output, session) {
output$tbl <- renderTable({
pool %>% tbl("City") %>% filter(ID == input$ID) %>% collect()
})
output$popPlot <- renderPlot({
df <- pool %>% tbl("City") %>% head(input$nrows) %>% collect()
pop <- df$Population
names(pop) <- df$Name
barplot(pop)
})
}
shinyApp(ui, server)