JAVA学习第二阶段模块二

模块二 JDBC和XML

JDBC

  • 什么是JDBC?

    • 一套操作关系型数据库的规则(接口)
    • 数据库厂商需要实现这套接口,并且提供数据库驱动jar包
    • 我们去使用这套接口,真正执行的是对应的驱动包中的实现类
    • Java代码访问数据库的标准规范(接口),具体的实现方式由数据库厂商完成
    • 面向接口编程,不依赖于任何数据库
  • 第一步 注册驱动(可省略)

Class.forName("com.mysql.jdbc.Driver");
// Driver类是由mysql驱动包提供的一个实现类,实现了java.sql.Driver
public class Driver extends NonRegisteringDriver implements java.sql.Driver {
    public Driver() throws SQLException {
    }
	// 静态代码块 随着类的加载而加载,只加载一次
    static {
        try {
            //DriverManager就是驱动管理类,registerDriver方法就是用来注册驱动的
            DriverManager.registerDriver(new Driver());
        } catch (SQLException var1) {
            throw new RuntimeException("Can't register driver!");
        }
    }
}
  • 第二步 获得连接,连接对象
    • URL:jdbc:mysql//localhost:3306/db4?characterEncoding=UTF-8
    • 协议名://主机:端口号/数据库名?参数=参数值
      //url:jdbc:mysql://localhost:3306/db4
      //user:root
      //password:123456
      public static Connection getConnection(String url,
              String user, String password) ;
      
      DriverManager.getConnection("","","");
      
      Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db4", "root", "123456");
      //com.mysql.jdbc.JDBC4Connection@1aa7ecca 对象由mysql包提供
      System.out.println(connection);
      
  • 第三步 获取语句执行平台
    Connection connection =
        DriverManager.getConnection("jdbc:mysql://localhost:3306/db4", "root", "123456");
    //com.mysql.jdbc.JDBC4Connection@1aa7ecca
    System.out.println(connection);
    
    //获取Statement对象
    Statement statement = connection.createStatement();
    
    //返回受影响的行数
    int i = statement.executeUpdate("create table test(id int,name varchar(20));");
    System.out.println(i);
    
    //关闭流
    statement.close();
    connection.close();
    

  • 第四步 处理结果集

    • ResultSet接口方法
      方法名功能介绍
      boolean next() 方法判断是否下一条数据
      xxx getXXx(String or int)如果传递的参数是String类型,则表示通过列名查询
      如果传递的参数是int类型,则表示通过列号查询
      public static void main(String[] args) throws Exception {
          Class.forName("com.mysql.jdbc.Driver");
          Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db4", "root", "123456");
          Statement statement = connection.createStatement();
          ResultSet resultSet = statement.executeQuery("select * from jdbc_user;");
          while (resultSet.next()){
              System.out.print(resultSet.getInt("id"));
              System.out.print(resultSet.getString("username"));
              System.out.print(resultSet.getString("password"));
              System.out.println(resultSet.getDate("birthday"));
          }
          resultSet.close();
          statement.close();
          connection.close();
      }
      
    • 第五步 释放资源
      public static void main(String[] args) {
          Connection connection = null;
          Statement statement = null;
          ResultSet resultSet = null;
          try {
              Class.forName("com.mysql.jdbc.Driver");
              connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db4", "root", "123456");
              statement = connection.createStatement();
              resultSet = statement.executeQuery("select * from jdbc_user;");
              while (resultSet.next()) {
                  System.out.print(resultSet.getInt("id"));
                  System.out.print(resultSet.getString("username"));
                  System.out.print(resultSet.getString("password"));
                  System.out.println(resultSet.getDate("birthday"));
              }
          } catch (SQLException | ClassNotFoundException e) {
              e.printStackTrace();
          } finally {
              try {
                  resultSet.close();
                  statement.close();
                  connection.close();
              } catch (SQLException e) {
                  e.printStackTrace();
              }
          }
      }
      

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值