>Java >Java시작하기 >java는 mysql에 몇 가지 방법으로 연결해야 합니까? 차이점은 무엇입니까?

java는 mysql에 몇 가지 방법으로 연결해야 합니까? 차이점은 무엇입니까?

王林
王林앞으로
2020-11-23 15:33:312783검색

java는 mysql에 몇 가지 방법으로 연결해야 합니까? 차이점은 무엇입니까?

mysql을 java와 연결하는 방법에는 다섯 가지가 있습니다.

(동영상 공유 학습: java 교육 동영상)

첫 번째 방법: 속성 클래스에 사용자 이름과 비밀번호를 캡슐화합니다.

먼저 가져오기 데이터베이스 연결 패키지에 대해서는 의심의 여지가 없습니다. JDBC 드라이버 드라이버를 만듭니다. 생성된 문자열 URL에 데이터베이스의 URL(예: MySQL 사용)을 저장합니다. mysql 버전이 8.0 미만인 경우 URL 저장 형식은 다음과 같습니다.

String url = "jdbc:mysql://localhost:3306/test"

mysql 버전이 8.0 이상인 경우 URL 저장 형식은 다음과 같습니다.

String url = "jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";

여기에서 사용된 mysql 버전은 8.0이므로 시간대는 마지막에 추가됩니다. 그렇지 않으면 기본값은 베이징 시간보다 8시간 느린 UTC 시간대입니다.

그런 다음 Properties 클래스에 mysql 데이터베이스에 해당하는 사용자와 비밀번호를 캡슐화하고 마지막으로 Connection 클래스를 통해 데이터베이스 연결을 생성합니다.

		Driver driver = new com.mysql.jdbc.Driver();
        String url = "jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";
        /*
        将用户名和密码封装在Properties中
         */
        Properties info = new Properties();
        info.setProperty("user","root");
        info.setProperty("password","ab20010322");

        Connection conn = driver.connect(url,info);

        System.out.println(conn);

두 번째 방법: 첫 번째 방법을 기반으로 사용합니다. 리플렉션을 사용하여 드라이버 구현

첫 번째 방법을

Driver driver = new com.mysql.jdbc.Driver();

로 변경:

Class clazz = Class.forName("com.mysql.jdbc.Driver");
Driver driver = (Driver) clazz.newInstance();

첫 번째 방법과 비교하면 두 구현은 동일한 기능을 갖지만 두 번째 방법은 리플렉션을 사용하여 드라이버를 구현하므로 이를 피할 수 있습니다. 세 번째 방법을 사용하면 타사 인터페이스를 통해 코드의 이식성이 향상됩니다. 두 번째 방법의 소스 코드는 다음과 같습니다.

 /*
        使用反射获取Driver类实例
        与Driver driver = new com.mysql.jdbc.Driver()功能相同,只是不适用第三方接口,使得程序具有更好的可移植性
         */
        Class clazz = Class.forName("com.mysql.jdbc.Driver");
        Driver driver = (Driver) clazz.newInstance();

        /*
        提供要连接的数据库
         */
        String url = "jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";

        /*
        提供需要的用户名和密码
         */
        Properties info = new Properties();
        info.setProperty("user","root");
        info.setProperty("password","ab20010322");

        Connection connection = driver.connect(url,info);

        System.out.println(connection);

세 번째 방법: Drive 대신 DriveManager(클래스)를 사용합니다

소스 코드는 다음과 같습니다.

        Class clazz = Class.forName("com.mysql.jdbc.Driver");
        Driver driver = (Driver) clazz.newInstance();
        /*
        提供连接信息
         */
        String url = "jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";
        String user = "root";
        String password = "ab20010322";
        /*
        注册驱动
         */
        DriverManager.registerDriver(driver);
        /*
        获取连接
         */
        System.out.println(DriverManager.getConnection(url,user,password));

네 번째 방법: 로드 방법 숨기기 드라이버

메서드 숨기기 세 번째 중학교에서는

Driver driver = (Driver) clazz.newInstance();
DriverManager.registerDriver(driver);


Class.forName("com.mysql.jdbc.Driver");

로 변경합니다. 이렇게 하면 드라이버 로딩 상태를 숨길 수 있습니다

소스 코드는 다음과 같습니다.

        String url = "jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";
        String user = "root";
        String password = "ab20010322";
        /*
        加载Driver
         */
        Class.forName("com.mysql.jdbc.Driver");//        Driver driver = (Driver) clazz.newInstance();//        DriverManager.registerDriver(driver);
        /*
        获取连接
         */
        System.out.println(DriverManager.getConnection(url,user,password));

방법 5: Put the jdbc.properties 구성 파일에는 데이터베이스에서 요구하는 기본 정보

위 4가지 연결 방식의 경우 데이터베이스 정보가 노출됩니다. 그렇게 하는 것은 안전하지 않습니다. 이때 데이터베이스가 필요로 하는 기본 정보를 jdbc.properties 구성 파일에 넣은 후, InputStream을 통해 읽어 와야 합니다. 이는 안전하며 가장 일반적으로 사용되는 데이터베이스 연결 방법입니다.
jdbc.properties 구성 파일은 다음과 같습니다.

user=root
password=123456url=jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
Driver=com.mysql.cj.jdbc.Driver

참고:

1 구성 파일은 src 폴더에 있어야 합니다

2. 사용자 및 비밀번호에 대한 데이터베이스 사용자 이름 및 비밀번호

3. mysql8.0 이상을 사용하는 경우 url 파일 구성 시 마지막에 시간대를 추가해야 합니다. 그렇지 않으면 오류가 보고됩니다.

소스 코드는 다음과 같습니다. 다음과 같습니다:

        InputStream inputStream = ConnectionTest.class.getClassLoader().getResourceAsStream("jdbc.properties");
        Properties info = new Properties();
        info.load(inputStream);
        
        String user =  info.getProperty("user");
        String password = info.getProperty("password");
        String url = info.getProperty("url");
        String driver = info.getProperty("Driver");

        /*
        加载驱动
         */
        Class.forName(driver);

        /*
        获取连接
         */
        Connection conn = DriverManager.getConnection(url,user,password);
        System.out.println(conn);

관련 권장 사항: Java 입문 튜토리얼

위 내용은 java는 mysql에 몇 가지 방법으로 연결해야 합니까? 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제