songwp

JDBC本质

只是一个接口 每个数据库的规范 就是实现类的接口
其实是官方 定义的一套操作所有关系型数据库的规则,就是接口,各个数据库厂商去实现这套接口,提供数据库驱动jar包,
我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类

1.mysql驱动包准备

  mysql-connector-java-5.1.47.jar

2.数据库的准备

   CREATE TABLE `users` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL DEFAULT '',
  `password` varchar(50) NOT NULL DEFAULT '',
  `email` varchar(50) NOT NULL DEFAULT '',
  `birthday` varchar(50) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4;

  INSERT INTO users VALUES ('1', 'zhansan', '123456', 'zhangsan@.com', '1992-0507');
  INSERT INTO users VALUES ('2', 'lisi', '123456', 'lisi@.com', '1996-0319');

3.加载驱动

  // 固定写法,加载驱动
 Class.forName("com.mysql.jdbc.Driver");

4.用户信息

   url的写法
   String url = "jdbc:mysql://localhost:3306/jdbc_data?useUnicode=true&characterEncoding=utf8&useSSL=true";
   用户名
   String username ="root";
   密码
   String password ="root";

5.连接成功,,返回一个数据库对象 Connection代表数据库

   Connection connection = DriverManager.getConnection(url, username, password);

6.执行sql的对象

  Statement 执行sql的对象
  Statement statement = connection.createStatement();

7.执行sql的对象 执行sql

   编写sql
   String sql ="select * from users";
   返回的结果集封装了我们全部的查询出来的结果
   ResultSet resultSet = statement.executeQuery(sql);
   while (resultSet.next()){
            System.out.println("id:"+resultSet.getObject("id"));
            System.out.println("name:"+resultSet.getObject("name"));
            System.out.println("password:"+resultSet.getObject("password"));
            System.out.println("email:"+resultSet.getObject("email"));
            System.out.println("birthday:"+resultSet.getObject("birthday"));
        }

8.释放连接资源

        resultSet.close();
        statement.close();
        connection.close();

总结

1.DriverManager:驱动管理对象

     注册驱动:告诉程序应该使用哪一种数据库驱动jar

2.Connection:数库库连接对象

     1.功能:
       获取执行sql的对象
         * statement createStatement()
         * *Preparedstatement prepareStatement(String sql)
     2.管理事务:
        *开启事务:setAutoCommit(boolean autoCommit):调用该方法设置参数为false 即开启事务
        *提交事务:commit()
        *回滚事务:rollback()
     3.Statement:执行sql的对象
        执行sql
          1.boolean execute(string sql):可以执行任意的sql 了解
          2.int executeUpdate(string sql):执行DML(执行增删改)(inset update delete)语句 DDL(create alter drop)语句。
          *返回值:影响的行数,可以通过这个影响的行数判断DML语句是否执行成功,返回值>0的则执行成功 反之 则失败
          3.ResultSet executeQuery(string sql):执行DQL(select)语句

3.ResultSet:结果集对象,封装查询结果

      列表就是一个结果对象
      结果集对象也是一种资源 也要关闭他。
        *boolean next():游标向下移动一行,判断当前行是否是最后一行末尾(是否有数据),如果是,则返回false 如果不是则返回true
        *getXxx(参数):获取数据
        *Xxx:代表数据类型 如: int getInt(), String getString()

相关文章: