设置连接mysql和jdbc的最佳方法/模板是什么?

时间:2009-05-04 12:19:16

标签: java jdbc

与mysql的jdbc建立连接的最佳方法是什么? 并执行简单的声明。怎么做? 谢谢。

5 个答案:

答案 0 :(得分:3)

MySQL / JDBC的基本样板如下所示:

获取连接

Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn = DriverManager.getConnection("jdbc:mysql://databaseName");

执行声明

Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * from tableName");
while (rs.next()) {
    System.out.println(rs.getString(1));
}

关闭语句和连接

rs.close();
stmt.close();
conn.close();

您只需要确保已安装驱动程序和/或在CLASSPATH中。

答案 1 :(得分:2)

这是二十一世纪 - 使用JPA(ORM)实现。但如果你坚持要回到金属上(冒着投票的风险) -

有很多方法可以从某个驱动程序获取JDBC连接。使用具有硬连线类名的反射是最常见的,也许是大多数脑损伤。如果您要对类名称进行硬连线处理,您可能会获得正常代码的好处(编译器捕获错别字,没有无关的异常处理,更易于阅读,显式依赖,更好的工具支持等)。

还要养成安全清理资源的习惯。

所以:

public static void main(String[] args) throws SQLException {
     Driver driver = new com.mysql.jdbc.Driver();
     Connection connection = driver.connect(
         "jdbc:mysql://mydatabase", 
         new java.util.Properties() {{
              put("user", "fred");
         }}
     );
     try {
         PreparedStatement statement = connection.prepareStatement(
             "SELECT insideLeg FROM user WHERE name=?"
         );
         try {
             statement.setString(1, "jim");
             ResultSet results = statement.executeQuery();
             try {
                 if (results.next() {
                     System.out.println("= "+results.getLong(1));
                 } else {
                     System.out.println("Missing.");
                 } 
             } finally {
                 results.close();
             }
         } finally {
             statement.close();
         }
     } finally {
         connection.close();
     }
}
真是一团糟!它甚至还没有使用交易。是的,使用ORM。这些天他们非常受人尊敬。

你不需要为每一个声明做所有这些。您不希望每次都创建实例化驱动程序。特别是围绕习语的执行是有用的。

答案 2 :(得分:1)

以下是creating a JDBC connection的sun文档。从那里很容易get access to a Statement object并运行一些简单的SQL。

对于生产级系统,您可能还需要创建connection pool

答案 3 :(得分:1)

这取决于你的情况。

如果您只需要从独立应用程序执行某些查询,那么您应该使用单一连接,如:

Class.forName ("yourDriverName");

Connection cn = DriverManager.getConnection ("db url");
Statement st = cn.createStatement ();
ResultSet rs = st.executeQuery ("select * from foo");
while (rs.next()) {
  doSmth ();
} 
rs.close ();
st.close ();
cn.close ();

但是,如果您正在开发真正的应用程序(特别是Web应用程序),那么请使用DataSource。阅读数据库和Web服务器的手册如何配置数据源。 DataSource允许您使用连接池 - 它可以提高性能。

配置DataSource并不困难。

答案 4 :(得分:0)

使用Spring Framework的JDBC抽象框架 - 您需要做的就是创建一个上下文XML文件,并使用JDBC模板类。只需几行XML + Java代码即可实现。优点是保持连接细节不受编译Java的影响。看到: http://www.springbyexample.org/examples/simple-spring-jdbc-template.html