java如何连接sql数据库
连接SQL数据库的方法
Java连接SQL数据库通常使用JDBC(Java Database Connectivity)技术。以下是几种常见数据库的连接方式。
连接MySQL数据库
确保已安装MySQL JDBC驱动(mysql-connector-java.jar),并将其添加到项目依赖中。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class MySQLConnection {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/database_name";
String username = "root";
String password = "password";
try {
Connection connection = DriverManager.getConnection(url, username, password);
System.out.println("Connected to MySQL database!");
connection.close();
} catch (SQLException e) {
System.out.println("Connection failed!");
e.printStackTrace();
}
}
}
连接PostgreSQL数据库
需要postgresql.jar驱动文件。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class PostgreSQLConnection {
public static void main(String[] args) {
String url = "jdbc:postgresql://localhost:5432/database_name";
String username = "postgres";
String password = "password";
try {
Connection connection = DriverManager.getConnection(url, username, password);
System.out.println("Connected to PostgreSQL database!");
connection.close();
} catch (SQLException e) {
System.out.println("Connection failed!");
e.printStackTrace();
}
}
}
连接SQL Server数据库
需要mssql-jdbc.jar驱动文件。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class SQLServerConnection {
public static void main(String[] args) {
String url = "jdbc:sqlserver://localhost:1433;databaseName=database_name";
String username = "sa";
String password = "password";
try {
Connection connection = DriverManager.getConnection(url, username, password);
System.out.println("Connected to SQL Server database!");
connection.close();
} catch (SQLException e) {
System.out.println("Connection failed!");
e.printStackTrace();
}
}
}
使用连接池提高性能
对于生产环境,建议使用连接池管理数据库连接。以下是使用HikariCP连接池的示例:
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import java.sql.Connection;
import java.sql.SQLException;
public class ConnectionPoolExample {
public static void main(String[] args) {
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/database_name");
config.setUsername("root");
config.setPassword("password");
config.addDataSourceProperty("cachePrepStmts", "true");
config.addDataSourceProperty("prepStmtCacheSize", "250");
config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
try (HikariDataSource ds = new HikariDataSource(config);
Connection connection = ds.getConnection()) {
System.out.println("Connection obtained from pool");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
注意事项
确保数据库服务正在运行,防火墙允许连接端口通过。
不同数据库的JDBC URL格式和默认端口可能不同:

- MySQL默认端口3306
- PostgreSQL默认端口5432
- SQL Server默认端口1433
在生产环境中,应将数据库凭据存储在配置文件中而非硬编码。






