zoukankan      html  css  js  c++  java
  • JCBD

    导入源码查看过底层代码啊:

    DriverManager

    该类的主要作用就是创建连接,在上一节的代码中使用了反射的机制注册了驱动,这里需要注意的是不同的数据库在forName中的参数写法不同,MySQL的写法:com.mysql.jdbc.Driver新版MySQL驱动的写法是:com.mysql.cj.jdbc.Driver
    获取连接Connection时,调用了DriverManager类中的getConnection方法,该方法在DriverManager类中有几个重载方法

    getConnection(String url);
    getConnection(String url,String user, String password);
    getConnection(String url,java.util.Properties info);
    getConnection(String url, java.util.Properties info, Class<?> caller);

    该方法的作用就是获取数据库的连接,上面前三个中最终都调用了第4个方法并将数据库连接的一些信息传了过去

    其中java.util.Properties该类是一个跟配置文件相关的类继承了HashTable类。(用来装用户名和密码): 如下代码可知啊

    java.util.Properties info = new java.util.Properties();
    info.setProperty("user", "root");
    info.setProperty("password","root");

    将用户名和密码封装到了info对象中,此时可以调用getConnection(String url,java.util.Properties info);这个方法将info作为参数传递过去。


    Statement

    该接口的作用是操作sql语句,并返回相应结果的对象。
    常用的方法如下:

    • ResultSet executeQuery(String sql) 根据查询语句返回结果集只能执行select语句。
    • int executeUpdate(String sql) 根据执行的DML(insert update delete)语句,返回受影响的行数。(一般返回>0 判断即可)
    • boolean execute(String sql) 此方法可以执行任意sql语句。返回boolean值,表示是否返回ResultSet结果集。仅当执行select语句,且有返回结果时返回true, 其它语句都返回false;

    如果执行增删改操作时,使用executeUpdate方法即可:

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.Statement;
    
    public class Main {
        public static void main(String[] args) {
            try {
                String sql = "INSERT INTO t_user(name,password,email,birthday) VALUES('hgy','123456','134@qq.com','1993-11-30')";
                Class.forName("com.mysql.jdbc.Driver");
                Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jcbd","root","root");
              Statement statement = conn.createStatement();
              int x = statement.executeUpdate(sql);
              if (x > 0){   //x是statement.executeUpdate操作后返回的受影响语句的条数
                  System.out.println("成功!");
              }
            } catch (Exception e) {
                e.printStackTrace();
            }
                                            /*
                                            * 这里用了增删改的增啊  其他自测啊!
                                            * */
        }
    
    }

    ResultSet

    该接口的作用主要用来封装结果集。
    常用的封装数据的方法:getObject(String ColomnName); 根据列名取值(返回的是Object类)。

    除了上的方法之外还有:

    getObject(int columnIndex); 根据序号取值,索引从1开始

    只不过该方法在使用起来可读性不强,不建议使用。
    在做查询操作时,可能会返回多条数据结果,此时可以定义一个JavaBean类,将数据封装到该JavaBean中,多条数据的话将此JavaBean放到集合中。

     JavaBean: 这个东东就是一个概念:

    1、所有属性为private
    2、提供默认构造方法
    3、提供getter和setter
    4、实现serializable接口

    完了

    具体自己操作啊  之前学安卓就是用的这个概念!

    差不多了 哎···

    本文来自博客园,作者:咸瑜,转载请注明原文链接:https://www.cnblogs.com/bi-hu/p/14761566.html

  • 相关阅读:
    Casting
    hdu 1164 Eddy's research I
    hdu 1212 Big Number
    CF271 C. Secret
    hdu 1065 I Think I Need a Houseboat
    单档——状态码显示设置,状态码更改链表更新
    单身金额统计,更新显示到单头
    开窗设计器——条件,参数,返回值接收显示
    单档——单头内容新增、修改后同步更新到其他相关数据表
    TIPTOP之分割split函数方法、getIndexOf、subString、replace、临时表创建;
  • 原文地址:https://www.cnblogs.com/bi-hu/p/14761566.html
Copyright © 2011-2022 走看看