zoukankan      html  css  js  c++  java
  • 简单的CRUD(一)

    一、JDBC的概述--(来源于百度)

      JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。

      JDBC 可做三件事:与数据库建立连接、发送操作数据库的语句并处理结果。

      JDBC API提供了以下接口和类:

    • DriverManager: 这个类管理数据库驱动程序的列表。确定内容是否符合从Java应用程序使用的通信子协议正确的数据库驱动程序的连接请求。识别JDBC在一定子协议的第一个驱动器将被用来建立数据库连接。

    • Driver: 此接口处理与数据库服务器通信。很少直接直接使用驱动程序(Driver)对象,一般使用DriverManager中的对象,它用于管理此类型的对象。它也抽象与驱动程序对象工作相关的详细信息

    • Connection : 此接口与接触数据库的所有方法。连接对象表示通信上下文,即,与数据库中的所有的通信是通过此唯一的连接对象。

    • Statement : 可以使用这个接口创建的对象的SQL语句提交到数据库。一些派生的接口接受除执行存储过程的参数。

    • ResultSet: 这些对象保存从数据库后,执行使用Statement对象的SQL查询中检索数据。它作为一个迭代器,可以通过移动它来检索下一个数据。

    • SQLException: 这个类用于处理发生在数据库应用程序中的任何错误。

    二、CRUD

      crud是指在做计算处理时的增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写。

      crud主要被用在描述软件系统中数据库或者持久层(dao层)的基本操作功能。

    三、实现简单的CRUD

    1.实现条件

      1、jar包, mysql-connector-java-5.1.26-bin.jar

      2、数据库MySQL

    2.具体代码

      1.dao层接口

     1 public interface ILoginUserDao {
     2     /**
     3      * 增加
     4      * @param loginUser
     5      */
     6     void save(LoginUser loginUser);
     7 
     8     /**
     9      * 删除
    10      * @param id
    11      */
    12     void delete(Integer id);
    13 
    14     /**
    15      * 更新
    16      * @param loginUser
    17      */
    18     void update(LoginUser loginUser);
    19 
    20     /**
    21      * 查询
    22      * @return
    23      */
    24     List query();
    25 }

      2.dao层实现

      1 public class LoginUserDao implements ILoginUserDao {
      2     @Override
      3     public void save(LoginUser loginUser) {
      4         System.out.println("----save----");
      5         // 首先加载jdbc实现类
      6         try {
      7             // 1.加载驱动
      8             Class.forName("com.mysql.jdbc.Driver");
      9             // 2.创建链接
     10             Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/user", "root", "admin");
     11             // 3.创建编译语句
     12             Statement statement = connection.createStatement();
     13             // 4.执行sql语句
     14             String sql = "INSERT INTO loginuser(username, password) VALUES ('王五', '6666')";
     15             int i = statement.executeUpdate(sql);
     16             // 5.释放资源
     17             statement.close();
     18             connection.close();
     19 
     20         } catch (Exception e) {
     21             e.printStackTrace();
     22         }
     23     }
     24 
     25     @Override
     26     public void delete(Integer id) {
     27         System.out.println("----delete----");
     28         try {
     29             // 1.加载驱动
     30             Class.forName("com.mysql.jdbc.Driver");
     31             // 2.创建链接
     32             Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/user", "root", "admin");
     33             // 3.创建编译语句
     34             Statement statement = connection.createStatement();
     35             // 4.执行语句
     36             String sql = "DELETE FROM loginuser WHERE id = 2";
     37             int i = statement.executeUpdate(sql);
     38             // 5.释放资源
     39             statement.close();
     40             connection.close();
     41         } catch (Exception e) {
     42             e.printStackTrace();
     43         }
     44     }
     45 
     46     @Override
     47     public void update(LoginUser loginUser) {
     48         System.out.println("----update----");
     49         try {
     50             // 1.加载驱动
     51             Class.forName("com.mysql.jdbc.Driver");
     52             // 2.创建链接
     53             Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/user", "root", "admin");
     54             // 3.创建编译语句
     55             Statement statement = connection.createStatement();
     56             // 4.执行sql语句
     57             String sql = "UPDATE loginuser SET username = '王五', password = '55555' WHERE id = 1";
     58             int i = statement.executeUpdate(sql);
     59             // 5.释放资源
     60             statement.close();
     61             connection.close();
     62         } catch (Exception e) {
     63             e.printStackTrace();
     64         }
     65     }
     66 
     67     @Override
     68     public List query() {
     69         System.out.println("----query----");
     70         // new一个list集合对象
     71         List<LoginUser> list = new ArrayList<>();
     72         try {
     73             // 1.加载驱动
     74             Class.forName("com.mysql.jdbc.Driver");
     75             // 2.创建链接
     76             Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/user", "root", "admin");
     77             // 3.创建编译语句
     78             Statement statement = connection.createStatement();
     79             // 4.执行sql语句
     80             String sql = "SELECT id, username, password FROM loginuser WHERE id > 4";
     81             ResultSet resultSet = statement.executeQuery(sql);
     82             // 取出查询内容
     83             while (resultSet.next()) {
     84                 String username = resultSet.getString("username");
     85                 String password = resultSet.getString("password");
     86                 // 创建LoginUser对象
     87                 LoginUser loginUser = new LoginUser();
     88                 loginUser.setUsername(username);
     89                 loginUser.setPassword(password);
     90                 // 添加到集合
     91                 list.add(loginUser);
     92             }
     93             // 5.释放资源
     94             resultSet.close();
     95             statement.close();
     96             connection.close();
     97 
     98         } catch (Exception e) {
     99             e.printStackTrace();
    100         }
    101         return list;
    102     }
    103 }

    3.注意事项

      1、使用DriverManager获取连接.

      Connection conn = DriverManager.getConnection(String url,String user,String password);

      2、增加、删除、修改执行sql语句 statement.executeUpdate(sql) 使用的是 executeUpdate;

      而查询使用的是 executeQuery ==》ResultSet resultSet = statement.executeQuery(sql);

  • 相关阅读:
    js格式化输出json对象
    webpack打包优化
    设置了responseType:Blob之后,如果返回json错误信息,如果获取?
    Webpack打包之后[-webkit-box-orient: vertical]样式丢失
    如果axios请求失败,如何获取后端接口返回的状态码及错误信息
    查看端口被占用情况
    用python编写简单爬虫
    python下载指定页面的所有图片
    Vue路由懒加载原理及实现
    PnpWebpackPlugin解析
  • 原文地址:https://www.cnblogs.com/zt19994/p/8275774.html
Copyright © 2011-2022 走看看