使用JDBC第一次尝试与本地数据库连接获取查询结果并输出

import java.sql.*;

import java.sql.Connection;
import java.sql.DriverManager;

public class MyFirstJDBCTest {
    
    
    public static void main(String[] args) throws ClassNotFoundException,SQLException{
    
    
        //1.加载驱动
        //Class.forName("com.mysql.jdbc.Driver");固定写法,加载数据库驱动。将此句注释前运行时提醒The new driver class is `com.mysql.cj.jdbc.Driver'并且提醒这是自动完成的,不需要手动加载

        //2.连接数据库,提供数据库的url,向mysql提供用户信息
        String url = "jdbc:mysql://localhost:3306/schoola?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=UTC";
        //jdbc:mysql://localhost:3306/schoola 连接本地数据库schoola端口号3306
        //?useUnicode=true&characterEncoding=utf8&useSSL=true
        //useUnicode=true 使支持中文
        //characterEncoding=utf8 将中文字符集编码设置为utf8
        //useSSL=true 使用SSL安全连接,防止一些错误
        //serverTimezone=UTC 运行报错,提示时区问题,设置为UTC(统一标准世界时间)后解决
        String username = "root";//登录账户
        String password = "root";//登录密码

        //3.用2中的三个东西连接mysql,获取数据库对象
        Connection connection = DriverManager.getConnection(url,username,password);
        //Connection代表数据库

        //4.创建执行sql的对象,用此对象来处理sql语句
        Statement statement = connection.createStatement();

        //5.用执行sql的对象去执行sql语句,这里测试一个查询语句,可以得到结果,查看返回结果
        String sql = "select * from student";//声明一个变量存放sal语句
        ResultSet resultSet = statement.executeQuery(sql);
        //statement.executeQuery(sql)代表将变量名为sql查询语句执行,这句查询语句有返回结果,将结果放在结果集resultSet里
        //statement.execute();可以执行所有的sql语句,因为有个判断是什么sql语句的过程,执行效率稍微低一点
        //statement.executeQuery();只能执行sql查询语句
        //statement.executeUpdate();只能执行sql增改删语句 注意:增改删全部用executeUpdate
        //结果集resultSet中封装了查询出的全部结果,resultSet只有查询才有,因为只有查询才会出结果
        while(resultSet.next()){
    
    //用next遍历,resultSet.next()代表移动到下一个数据(一个数据就是一行、一个记录)
            System.out.print("id"+resultSet.getObject("id"));
            System.out.print(" name"+resultSet.getObject("name"));
            System.out.print(" sex"+resultSet.getObject("sex"));
            System.out.println(" age"+resultSet.getObject("age"));
            System.out.println("---------------------");
        }//将结果集中的内容输出
        //resultSet.getObject();在列(属性)类型不知道时使用,知道属性就不建议使用,知道类型时使用下面的
//        resultSet.getInt();
//        resultSet.getString();
//        resultSet.getFloat();等等

        //6.操作完成,释放连接
        resultSet.close();
        statement.close();
        connection.close();
    }
}

猜你喜欢

转载自blog.csdn.net/kitahiragawa/article/details/111625787