一、环境准备
在开始使用Java连接MySQL数据库之前,需要先做一些环境准备:
1、下载并安装MySQL:从MySQL官网上下载,安装后启动MySQL服务。
2、下载并安装Java开发工具包(JDK):从Oracle官网下载,并配置环境变量。
3、下载并添加MySQL的JDBC驱动器:下载地址为http://dev.mysql.com/downloads/connector/j/,将其中的mysql-connector-java-x.x.xx.jar文件添加到classpath中。
二、连接MySQL数据库
下面是一个简单的Java程序,用于连接MySQL数据库:
import java.sql.*; public class MySQLDemo { public static void main(String[] args) { Connection conn = null; Statement stmt = null; try { //连接MySQL数据库 Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "用户名", "密码"); System.out.println("连接成功!"); //执行SQL查询 stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM user"); while (rs.next()) { System.out.println(rs.getInt("id") + "\t" + rs.getString("name") + "\t" + rs.getInt("age")); } } catch (ClassNotFoundException e) { System.out.println("ClassNotFoundException:" + e.getMessage()); } catch (SQLException e) { System.out.println("SQLException:" + e.getMessage()); } finally { try { if (stmt != null) stmt.close(); if (conn != null) conn.close(); } catch (SQLException e) { System.out.println("SQLException:" + e.getMessage()); } } } }
上述程序包含以下几个步骤:
1、加载JDBC驱动器:在程序代码中加载MySQL的JDBC驱动器,使用Class.forName()方法。
2、连接MySQL数据库:使用DriverManager.getConnection()方法连接MySQL数据库,需要传入数据库URL、用户名和密码。
3、执行SQL查询:通过Connection对象创建Statement对象,并使用executeQuery()方法执行SELECT查询语句。
4、关闭资源:在finally块中关闭Statement和Connection对象。
三、支持事务处理
MySQL支持事务处理,Java程序也可以通过JDBC API实现对MySQL的事务处理。下面是一个示例代码:
import java.sql.*; public class MySQLTransactionDemo { public static void main(String[] args) { Connection conn = null; Statement stmt = null; try { //连接MySQL数据库 Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "用户名", "密码"); System.out.println("连接成功!"); //开启事务处理 conn.setAutoCommit(false); //执行SQL插入语句 stmt = conn.createStatement(); stmt.executeUpdate("INSERT INTO user(name, age) VALUES('张三', 20)"); stmt.executeUpdate("INSERT INTO user(name, age) VALUES('李四', 22)"); //提交事务 conn.commit(); System.out.println("插入成功!"); } catch (ClassNotFoundException e) { System.out.println("ClassNotFoundException:" + e.getMessage()); } catch (SQLException e) { //回滚事务 try { if (conn != null) conn.rollback(); } catch (SQLException ex) { System.out.println("SQLException:" + ex.getMessage()); } System.out.println("SQLException:" + e.getMessage()); } finally { try { if (stmt != null) stmt.close(); if (conn != null) conn.close(); } catch (SQLException e) { System.out.println("SQLException:" + e.getMessage()); } } } }
在上述示例代码中,我们调用了Connection对象的setAutoCommit(false)方法,将自动提交事务关闭。之后,我们执行了两个SQL插入语句,如果其中一个插入失败,则会执行rollback()方法回滚之前的操作。如果两个插入操作都成功,则执行commit()方法提交事务。
四、使用连接池
为了提高应用程序的性能和可靠性,使用连接池是一个不错的选择。连接池允许程序重复利用现有的数据库连接,而不是每次都创建新的连接。下面是一个使用连接池的示例代码:
import java.sql.*; import org.apache.commons.dbcp2.*; public class MySQLPoolDemo { public static void main(String[] args) { Connection conn = null; try { //创建连接池 BasicDataSource ds = new BasicDataSource(); ds.setDriverClassName("com.mysql.jdbc.Driver"); ds.setUrl("jdbc:mysql://localhost:3306/test"); ds.setUsername("用户名"); ds.setPassword("密码"); //获取连接 conn = ds.getConnection(); System.out.println("连接成功!"); //执行SQL查询 Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM user"); while (rs.next()) { System.out.println(rs.getInt("id") + "\t" + rs.getString("name") + "\t" + rs.getInt("age")); } //释放连接 conn.close(); System.out.println("已释放连接!"); } catch (SQLException e) { System.out.println("SQLException:" + e.getMessage()); } } }
使用连接池的主要步骤如下:
1、导入连接池的jar包:本示例中使用了Apache Commons DBCP连接池。
2、创建连接池:使用BasicDataSource类创建连接池,并设置数据库URL、用户名和密码。
3、获取连接:使用ds.getConnection()方法获取连接。
4、执行SQL查询:通过Connection对象创建Statement对象,并使用executeQuery()方法执行SELECT查询语句。
5、释放连接:在finally块中关闭Connection对象。
总结
本文介绍了如何使用Java连接MySQL数据库。我们讲解了基本的连接MySQL数据库的步骤,以及如何支持事务处理和使用连接池。这些知识点是Java应用程序开发中非常重要的一部分,希望本文能够给Java初学者提供帮助。