zoukankan      html  css  js  c++  java
  • scala调用jdbc连接数据库

    from:http://mkaz.com/solog/scala/using-scala-with-jdbc-to-connect-to-mysql.html

    Using Scala with JDBC to connect to MySQL

    Date: May 27, 2011

    A howto on connecting Scala to a MySQL database using JDBC. There are a number of database libraries for Scala, but I ran into a problem getting most of them to work. I attempted to use scala.dbc, scala.dbc2, Scala Query and Querulous but either they aren't supported, have a very limited featured set or abstracts SQL to a weird pseudo language.

    The Play Framework has a new database library called ANorm which tries to keep the interface to basic SQL but with a slight improved scala interface. The jury is still out for me, only used on one project minimally so far. Also, I've only seen it work within a Play app, does not look like it can be extracted out too easily.

    So I ended up going with basic Java JDBC connection and it turns out to be a fairly easy solution.

    Here is the code for accessing a database using Scala and JDBC. You need to change the connection string parameters and modify the query for your database. This example was geared towards MySQL, but any Java JDBC driver should work the same with Scala.

    Basic Query

      import java.sql.{Connection, DriverManager, ResultSet};
    
      // Change to Your Database Config
      val conn_str = "jdbc:mysql://localhost:3306/DBNAME?user=DBUSER&password=DBPWD"
    
      // Load the driver 
      classOf[com.mysql.jdbc.Driver]
    
      // Setup the connection
      val conn = DriverManager.getConnection(conn_str)
      try {
          // Configure to be Read Only
          val statement = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY)
    
          // Execute Query
          val rs = statement.executeQuery("SELECT quote FROM quotes LIMIT 5")
    
          // Iterate Over ResultSet
          while (rs.next) {
              println(rs.getString("quote"))
          }
      }
      finally {
          conn.close  
      }
    

    You will need to download the mysql-connector jar. Download the mysql connector jar from here.

    Or if you are using maven, the pom snippets to load the mysql connector, you'll need to check what the latest version is.

      <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.12</version>
      </dependency>
    

    To run the example, save the following to a file (query_test.scala) and run using, the following specifying the classpath to the connector jar:

    scala -cp mysql-connector-java-5.1.12.jar:. query_test.scala

    Insert, Update and Delete

    To perform an insert, update or delete you need to create an updatable statement object. The execute command is slightly different and you will most likely want to use some sort of parameters. Here's an example doing an insert using jdbc and scala with parameters.

      // create database connection
      val dbc = "jdbc:mysql://localhost:3306/DBNAME?user=DBUSER&password=DBPWD"
      classOf[com.mysql.jdbc.Driver]
      val conn = DriverManager.getConnection(dbc)
      val statement = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE)
    
      // do database insert
      try {
        val prep = conn.prepareStatement("INSERT INTO quotes (quote, author) VALUES (?, ?) ")
        prep.setString(1, "Nothing great was ever achieved without enthusiasm.")
        prep.setString(2, "Ralph Waldo Emerson")
        prep.executeUpdate
      }
      finally {
        conn.close
      }
    
  • 相关阅读:
    HDU
    P2458 [SDOI2006]保安站岗[树形dp]
    POJ 2155 Matrix[树状数组+差分]
    P1281 书的复制[二分]
    【清北学堂】广州OI学习游记
    P1736 创意吃鱼法[二维dp]
    P2161 [SHOI2009]会场预约[线段树/树状数组+二分/STL]
    P1972 [SDOI2009]HH的项链[离线+树状数组/主席树/分块/模拟]
    P1273 有线电视网[分组背包+树形dp]
    windows下安装MySQL
  • 原文地址:https://www.cnblogs.com/mengyan/p/2672944.html
Copyright © 2011-2022 走看看