> 데이터 베이스 > MySQL 튜토리얼 > JDBC 프로그래밍 및 추가, 삭제, 수정 및 쿼리에 MySQL을 사용하는 방법

JDBC 프로그래밍 및 추가, 삭제, 수정 및 쿼리에 MySQL을 사용하는 방법

WBOY
풀어 주다: 2023-05-30 21:37:11
앞으로
872명이 탐색했습니다.

Java 데이터베이스 프로그래밍 JDBC

Concept

  • JDBC는 SQL 문을 실행하는 데 사용되는 Java API입니다. 이 API는 몇 가지 인터페이스와 클래스로 구성됩니다. Java 개발자가 여러 관계형 데이터베이스에 균일하게 액세스할 수 있도록 하는 표준 API를 제공합니다

  • 핵심은 코드를 통해 MySQL 클라이언트를 구현하고 네트워크를 통해 서버와 상호 작용하는 것입니다. 우리의 구현을 용이하게 하기 위해 API 세트를 제공하며, 데이터베이스마다 제공하는 API가 다릅니다. 따라서 이러한 문제를 해결하기 위해 Java에서는 Java와 함께 제공되는 데이터베이스 작업 API인 JDBC를 제공합니다. API는 모든 데이터베이스 작업의 작업 모드를 다룹니다

  • 본질적으로 Java 자체는 JDBC API와 데이터베이스 API

단계를 사용하여

JDBC 프로그래밍 및 추가, 삭제, 수정 및 쿼리에 MySQL을 사용하는 방법 개체를 설명하는 DataSource 개체를 생성합니다. 데이터베이스 서버는 어디에 있습니까?

DataSource dataSource = new MysqlDataSource();
		//设置数据库所在的地址
        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/lmp?characterEncoding=utf8&useSSL=false");
        //设置登录数据库的用户名
        ((MysqlDataSource)dataSource).setUser("root");
        //设置登录数据库的密码
        ((MysqlDataSource)dataSource).setPassword("woshizhu123");
로그인 후 복사

Connection을 통해 데이터베이스에 연결합니다. (성공적으로 연결하려면 비밀번호를 입력하세요.)

//import java.sql.Connection;
 Connection connection  = dataSource.getConnection();
로그인 후 복사

sql 문을 연결합니다. (sql 문을 작성합니다.)

String sql = "insert into student values(1,'张三')";
로그인 후 복사

sql 문을 객체로 압축합니다.

PreparedStatement statement = connection.prepareStatement(sql);
로그인 후 복사

실행합니다. sql 문 (Enter를 눌러 sql 문 실행)

int ret = statement.executeUpdate();
로그인 후 복사

Execute update delete insert executeUpdate() 메소드 사용

  • Execute select ExecuteQuery() 메소드 사용

  • executeQuery() 메소드를 사용하여 resultSet 컬렉션 반환, 발견된 데이터가 포함되어 있습니다. 이 경우 처음에는 resultSet이 레코드의 어떤 행도 가리키지 않습니다. next를 사용하여 첫 번째 레코드를 가리킨 다음 next를 사용하여 다음 레코드를 가리킵니다

  • Release resources

     statement.close();
     connection.close();
    로그인 후 복사
  • JDBC를 사용하여 삽입 구현
public class TestJDBC {
    public static void main(String[] args) throws SQLException {
        Scanner scanner = new Scanner(System.in);
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java102?characterEncoding=utf-8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("woshizhu123");
        Connection connection = dataSource.getConnection();
        System.out.println("输入id");
        int id = scanner.nextInt();
        System.out.println("输入名字");
        String name = scanner.next();
        String sql = "insert into student values(?,?)";
        PreparedStatement statement = connection.prepareStatement(sql);
        statement.setInt(1,id);
        statement.setString(2,name);
        int ret = statement.executeUpdate();
        if(ret == 1){
            System.out.println("插入成功");
        }else {
            System.out.println("插入失败");
        }
        statement.close();
        connection.close();
    }
}
로그인 후 복사

JDBC를 사용하여 삭제(삭제) 구현

public class TestJDBCDelete
{
    public static void main(String[] args) throws SQLException {
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java102?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("woshizhu123");
        Connection connection = dataSource.getConnection();
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要删除的id");
        int id = scanner.nextInt();
        String sql = "delete from student where id = ?";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setInt(1,id);
        int ret = preparedStatement.executeUpdate();
        System.out.println(ret);
        preparedStatement.close();
        connection.close();
    }
로그인 후 복사

JDBC를 사용하여 수정(업데이트) 구현

public class TestJDBCUpdate {
    public static void main(String[] args) throws SQLException {
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java102?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("woshizhu123");
        Connection connection = dataSource.getConnection();
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要修改的学生id");
        int id = scanner.nextInt();
        System.out.println("请输入要修改的学生姓名");
        String name = scanner.next();
        String sql = "update student set name = ? where id = ?";
        PreparedStatement statement = connection.prepareStatement(sql);
        statement.setString(1,name);
        statement.setInt(2,id);
        int ret = statement.executeUpdate();
        System.out.println(ret);
        statement.close();
        connection.close();
    }
}
로그인 후 복사

JDBC를 사용하여 검색(선택) 구현

public static void testJDBCSelect() throws SQLException {
        //1创建DataSource对象
        DataSource dataSource = new MysqlDataSource();
        //2连接数据库
        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java_5_31?characterEncoding=utf-8&useSSL=true");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("listen");
        Connection connection = dataSource.getConnection();
        //3拼接sql
        String sql = "select * from student";
        PreparedStatement statement = connection.prepareStatement(sql);
        //4执行sql
        ResultSet resultSet = statement.executeQuery();
        //5遍历得到的集合
        while (resultSet.next()) {
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            int classId = resultSet.getInt("classId");
            System.out.println("id " + id + " name " + name + " classId " + classId);
        }
        //6关闭资源
        resultSet.close();
        statement.close();
        connection.close();
    }
로그인 후 복사

위 내용은 JDBC 프로그래밍 및 추가, 삭제, 수정 및 쿼리에 MySQL을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿