一、回顾

JDBC

连接:不要写sql。先写中文

约束:唯一约束 默认约束 非空约束 主键 自增

idea的安装

工具的概念:方便 被使用的

DB2 AS400

jdbc:

jdbc的连接步骤

1.加载驱动(注册驱动)—>反射—>异常

2.获取连接对象connection ---->url(jdbc格式) username(数据库登陆的) password(密码)

3.获取执行sql的对象

4.执行sql语句,并接受结果,返回受影响行数

5.处理结果

6.释放资源(关闭连接)

核心api

jdbc的核心思想

二、jdbc的链接

基本实现jdbc连接的步骤:
	    //    1.加载驱动
    Class.forName("com.mysql.jdbc.Driver");
//    2.获取连接
//    url:统一资源定位符  遵循jdbc的格式
//    jdbc:驱动类型://本机地址:端口号/数据库的名字 
//    jdbc:mysql://localhost(127.0.0.1):3306/库名   ====  url
//    root   用户名
//     root    密码
//    https://www.baidu.com/
    Connection connection = DriverManager.getConnection("","","");

//    3.获取执行sql的对象
	  Statement statement = (Statement) connection.createStatement();
//    4.执行sql
	sql: delete from t_jobs where job_id = "AC_ACCOUNT";
    String sql = "delete from t_jobs where job_id = 'AC_ACCOUNT';";
    int count = statement.executeUpdate(sql);
//    第二种   int count = statement.executeUpdate(“delete from t_jobs where job_id = 'AC_ACCOUNT';”);

//    5.处理结果
	    if (count==1){
        System.out.println("删除成功");
    }else{
        System.out.println("删除失败");
    }

//    6.释放资源:开启的时候  从前往后  关闭的时候  从后往前
    statement.close();
    connection.close();

三、jdbc的优化实现方式——DDL

//    固定的常量   可以写成静态变量
//    url   用户名  密码
//    1.定义数据库必要信息的静态变量
    private static String URL = "jdbc:mysql://127.0.0.1:3306/companydb";   //数据库链接的url
    private static String USER = "root";   //数据库的用户名
    private static String PASSWORD = "root";   //数据库的密码

    /*
    * 单元测试:
    * junti:在一个类里面可以执行多个方法,但是这个方法不可以有返回值类型(void),不可以进行输入,不可以存在参数。
    *
    * 注解:一个被封装的方法将那些特定形式的调用
    * 注释:对某一段的代码进行解释,不可以执行
    * 注解的写法:@Test
    * alt+shiet+s+ctrl
    * */

//    DDL----create  table  drop
    @Test
    public void test1(){
//        先把对象进行声明的实例化   初始化链接的所有对象
        Connection connection = null;
        Statement statement = null;
        try {
//            java.sql  java对执行sql语句的工具
//            2.注册数据库的驱动
            Class.forName("com.mysql.jdbc.Driver");
//            3.通过驱动管理设置链接的必要信息
            connection = (Connection) DriverManager.getConnection(URL,USER,PASSWORD);
//            4.创建执行sql的对象
            statement = (Statement) connection.createStatement();
//            5.通过执行对象执行sql
            String sql = "create table stu(id int(11) primary key,name varchar(20),sex varchar(5));";
            int count = statement.executeUpdate(sql);

            System.out.println("你的操作影响了"+count+"行");   //如果提示影响了0行  去数据库中刷新
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            // 6.释放资源  判断当前链接是否还继续存在
          if (statement!=null){
              try {
                  statement.close();
              } catch (SQLException e) {
                  e.printStackTrace();
              }
          }
//          释放连接
          if (connection!=null){
              try {
                  connection.close();
              } catch (SQLException e) {
                  e.printStackTrace();
              }
          }
        }
    }

四、jdbc的实现方式——DML

@Test
    public void test2(){

        Connection connection = null;
        Statement statement = null;
        try {
            //        1.注册驱动
//            Class.forName("com.mysql.jdbc.Driver");
//           2. 获取链接的对象
            connection = (Connection) DriverManager.getConnection(URL,USER,PASSWORD);
//            3.创建执行sql的对象
            statement = (Statement) connection.createStatement();
//            4.执行sql  返回结果
            String sql = "insert into stu(id,name,sex) values(10,'王老五','male');";
            int count = statement.executeUpdate(sql);
            System.out.println("你的操作影响了"+count+"行");
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
//            关闭资源
            if (statement!=null){
                try {
                    statement.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (connection!=null){
                try {
                    connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }

五、jdbc的实现方式——DQL

 @Test
    public void test4(){
//  resultSet
        Connection connection = null;
        Statement statement = null;
//        迭代的过程  结果集
        ResultSet resultSet = null;

        try {
            Class.forName("com.mysql.jdbc.Driver");
            connection = (Connection) DriverManager.getConnection(URL,USER,PASSWORD);
            statement = (Statement) connection.createStatement();
//            执行查询全部的sql
            String sql = "select * from stu;";
//            执行的方法选择查询   update  query
            resultSet = statement.executeQuery(sql);

//            看看结果   迭代的两种方法
//            第一种
//            while(resultSet.next()){
                使用列名称  一些使用过程中  会将数据表的字段写成一个类的形式
//                int id =resultSet.getInt("id");
//                String name = resultSet.getString("name");
//                String sex = resultSet.getString("sex");
//                System.out.println(id+"\t"+name+"\t"+sex+"\t");
//            }
//            第二种
            if (resultSet.next()){
//                使用列索引
                int id = resultSet.getInt(1);
                String name = resultSet.getString(2);
                String sex = resultSet.getString(3);
                System.out.println(id+"\t"+name+"\t"+sex+"\t");
            }

        } catch (Exception e) {
            e.printStackTrace();
        }finally {

            if (resultSet!=null){
                try {
                    resultSet.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }

            if (statement!=null){
                try {
                    statement.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (connection!=null){
                try {
                    connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }

    }

六、ResultSet结果集

结果集获取存储数据的方式:
resultSet:以表结构进行临时结果的存储,通过jdbc的API将其中数据依次获取
	数据行指针:初始位置的第一行数据前,每调用一次boolean.next()方法,那么将数据结果集中的执行下移一行
	rs.getXXX(整数)  代表根据数据表中列的序号进行获取(索引)
	rs。getXXX(字符串)  代表数据表中列的名的进行获取(列名)
	
	Boolean.next()   //判断结果集中下一行中是否存在数据,存在返回true  不存在false

遍历方法:
	getInt(XX)  **   //获取当前行的第XX列的值  
    getInt(列名)  **   //获取当前行列的值
    getDouble(列)  //。。
    。
    getString(列名)  //。。
   
    
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐