mysql 데이터베이스: jdbc:mysql://localhost:3306/test
IDE: IDEA 2022
JDK: JDK8
mysql: mysql 5.7
JDBC: 5.1.37
mysql에 연결하려면 정적 로딩 드라이버 방법을 사용하세요
이 방법은 유연성이 낮고 의존성이 강합니다
public void connection01() throws SQLException { // 注册驱动 Driver driver = new Driver(); // 创建Properties对象,用于保存mysql账号和密码键值对 Properties properties = new Properties(); properties.setProperty("user", "root"); properties.setProperty("password", "123456"); String url = "jdbc:mysql://localhost:3306/test"; // 得到mysql的连接 Connection connection = driver.connect(url, properties); // 得到可以与mysql语句进行交互的对象 Statement statement = connection.createStatement(); // 关闭与 mysql语句进行交互的对象 statement.close(); // 关闭与mysql的连接 connection.close();
리플렉션을 사용하여 종속성이 줄어들고 더 유연한 첫 번째 방법을 기반으로 드라이버를 동적으로 로드합니다. 성능 향상
public void connection02() throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException { // 使用反射动态加载mysql驱动件程序 Class<?> aClass = Class.forName("com.mysql.jdbc.Driver"); Driver driver = (Driver) aClass.newInstance(); // 创建Properties对象,用于保存mysql账号和密码键值对 Properties properties = new Properties(); properties.setProperty("user", "root"); properties.setProperty("password", "123456"); String url = "jdbc:mysql://localhost:3306/test"; // 得到mysql的连接 Connection connection = driver.connect(url, properties); // 得到可以与mysql语句进行交互的对象 Statement statement = connection.createStatement(); // 关闭与 mysql语句进行交互的对象 statement.close(); // 关闭与 mysql语句进行交互的对象 connection.close(); }
통합 관리를 위해 DriverManager 사용
public void connection03() throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException { // 使用反射动态加载mysql驱动件程序 Class<?> aClass = Class.forName("com.mysql.jdbc.Driver"); Driver driver = (Driver) aClass.newInstance(); String user = "root"; String password = "123456"; String url = "jdbc:mysql://localhost:3306/test"; // 使用DriverManager加载Driver DriverManager.registerDriver(driver); // 得到mysql的连接 Connection connection = DriverManager.getConnection(url, user, password); // 得到可以与mysql语句进行交互的对象 Statement statement = connection.createStatement(); // 关闭与 mysql语句进行交互的对象 statement.close(); // 关闭与 mysql语句进行交互的对象 connection.close(); }
사실 Class.forName("com.mysql.jdbc.Driver")은 하위 계층에 Driver 인스턴스를 자동으로 로드했습니다.
그래서 Driver 드라이버 = (Driver) aClass.newInstance(); 이 문장은 생략 가능
이 방법도 개발에서 가장 많이 사용되는 방법입니다
public void connection04() throws ClassNotFoundException, SQLException { // 使用反射动态加载mysql驱动件程序 Class<?> aClass = Class.forName("com.mysql.jdbc.Driver"); String user = "root"; String password = "123456"; String url = "jdbc:mysql://localhost:3306/test"; // 得到mysql的连接 Connection connection = DriverManager.getConnection(url, user, password); // 得到可以与mysql语句进行交互的对象 Statement statement = connection.createStatement(); // 关闭与 mysql语句进行交互的对象 statement.close(); // 关闭与 mysql语句进行交互的对象 connection.close(); }
mysql5.16 이후에는 생략 가능 .forName("com.mysql.jdbc.Driver"); 드라이버를 로드하려면
jdk1.5 이상부터 jdbc4가 사용되었으므로 드라이버를 등록하기 위해 더 이상 명시적으로 class.forName()을 호출할 필요가 없습니다. 드라이버 jar 패키지 아래에서 자동으로 META를 호출합니다. -INFservicesjava.sql.Driver 텍스트에 클래스 이름을 등록합니다.
더 명확하고 CLAss.forName("com.mysql.jdbc.Driver")을 작성하는 것이 좋습니다. 호환성이 더 좋습니다
여기서 속성 구성 파일도 사용됩니다. 동적 정보의 동적 읽기를 실현하고 유연성을 향상시킵니다
이 방법을 사용하는 것이 좋습니다
src/com/mysql/mysql.properties 구성 파일 내용은 다음과 같습니다. 팔로우
url=jdbc:mysql://localhost:3306/test user=root password=123456
mysql 프로그램 연결
public void connection05() throws SQLException, ClassNotFoundException, IOException { // 使用Properties读取配置文件下的内容 Properties properties = new Properties(); properties.load(new FileInputStream("src/com/mysql/mysql.properties")); String url = properties.getProperty("url"); String user = properties.getProperty("user"); String password = properties.getProperty("password"); // 得到mysql的连接 Connection connection = DriverManager.getConnection(url, user, password); // 得到可以与mysql语句进行交互的对象 Statement statement = connection.createStatement(); // 关闭与 mysql语句进行交互的对象 statement.close(); // 关闭与 mysql语句进行交互的对象 connection.close(); }
위 내용은 JDBC를 Mysql에 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!