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

原文地址:https://www.cnblogs.com/bi-hu/p/14761566.html