java如何调用mysql数据
使用JDBC连接MySQL数据库
确保已安装MySQL JDBC驱动(如mysql-connector-java),并将其添加到项目依赖中。以下是基本连接代码示例:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class MySQLConnection {
private static final String URL = "jdbc:mysql://localhost:3306/数据库名";
private static final String USER = "用户名";
private static final String PASSWORD = "密码";
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL, USER, PASSWORD);
}
}
执行SQL查询操作
通过Statement或PreparedStatement执行查询,推荐使用预编译防止SQL注入:
import java.sql.*;
public class QueryExample {
public static void main(String[] args) {
String sql = "SELECT * FROM 表名 WHERE 条件字段 = ?";
try (Connection conn = MySQLConnection.getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setString(1, "参数值"); // 设置参数
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
System.out.println(rs.getString("字段名"));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
执行增删改操作
对于INSERT/UPDATE/DELETE语句使用executeUpdate()方法:
try (Connection conn = MySQLConnection.getConnection();
PreparedStatement pstmt = conn.prepareStatement(
"INSERT INTO 表名(字段1,字段2) VALUES(?,?)")) {
pstmt.setString(1, "值1");
pstmt.setInt(2, 123);
int affectedRows = pstmt.executeUpdate();
System.out.println("影响行数: " + affectedRows);
} catch (SQLException e) {
e.printStackTrace();
}
使用连接池优化性能
推荐使用HikariCP等连接池管理数据库连接:
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
public class ConnectionPool {
private static HikariDataSource dataSource;
static {
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/数据库名");
config.setUsername("用户名");
config.setPassword("密码");
config.setMaximumPoolSize(10);
dataSource = new HikariDataSource(config);
}
public static Connection getConnection() throws SQLException {
return dataSource.getConnection();
}
}
处理事务
通过Connection对象控制事务:
try (Connection conn = MySQLConnection.getConnection()) {
conn.setAutoCommit(false); // 关闭自动提交
// 执行多个SQL操作
updateAccount(conn, 100, "A");
updateAccount(conn, -100, "B");
conn.commit(); // 提交事务
} catch (SQLException e) {
conn.rollback(); // 回滚事务
e.printStackTrace();
}
使用ORM框架简化操作
推荐MyBatis或Hibernate等框架:
// MyBatis示例
SqlSessionFactory factory = new SqlSessionFactoryBuilder()
.build(Resources.getResourceAsStream("mybatis-config.xml"));
try (SqlSession session = factory.openSession()) {
UserMapper mapper = session.getMapper(UserMapper.class);
User user = mapper.selectUserById(1);
System.out.println(user.getName());
}






