JDBC

  • 数据库驱动

    • 我们的程序会通过数据库驱动和数据库打交道

  • JDBC

    • Sun公司简化开发人员的操作,提供的规范

  • 第一个JDBC项目

    • 创建一个Java项目

    • 导入jar包

    • 编写测试代码

      • 1 create database `jdbcStudy` character set utf8mb4 collate utf8mb4_bin;
        2
        3 use `jdbcStudy`;
        4
        5
        6 insert into `users`(`id`,`NAME`,`PASSWORD`,`email`,`birthday`)
        7 values(1,'zhangsan','123456','zs@sina.com','1980-12-04'),
        8 (2,'lisi','123456','lisi@sina.com','1981-12-04'),`jdbcstudy`
        9 (3,'wangwu','123456','wangwu@sina.com','1979-12-04');

        建表添加数据

    •  1 public static void main(String[] args) {
      2 //加载驱动
      3 try {
      4 Class.forName("com.mysql.cj.jdbc.Driver");
      5 } catch (ClassNotFoundException e) {
      6 e.printStackTrace();
      7 }
      8 //用户信息和url
      9 String url = "jdbc:mysql://localhost:3306/jdbcstudy?useUnicod=true&characterEncoding=utf8";
      10 String userName = "root";
      11 String password = "123456";
      12
      13 //连接成功,数据库对象
      14 try {
      15 Connection connection = DriverManager.getConnection(url, userName, password);
      16
      17 //执行SQL的对象
      18 Statement statement = connection.createStatement();
      19
      20 //执行SQL的对象执行SQL
      21 String sql = "select * from users";
      22
      23 ResultSet resultSet = statement.executeQuery(sql);
      24
      25 while (resultSet.next()){
      26 System.out.print("id="+resultSet.getObject("id"));
      27 System.out.print("\tname="+resultSet.getObject("name"));
      28 System.out.print("\tpassword="+resultSet.getObject("password"));
      29 System.out.print("\temail="+resultSet.getObject("email"));
      30 System.out.println("\tbirth="+resultSet.getObject("birthday"));
      31 }
      32
      33 //释放连接
      34 resultSet.close();;
      35 statement.close();
      36 connection.close();
      37
      38 } catch (SQLException e) {
      39 e.printStackTrace();
      40 }
      41
      42 }

  • SQL注入

    • SQL存在漏洞,会被攻击导致数据泄露

  • PreparedStatement

    • Connection connection = null;
      PreparedStatement pstm = null;
      try {
      connection = JdbcUtils.getConnection();
      //区别
      //使用问好占位符代替参数
      String sql = "insert into users(id,`NAME`) values(?,?)";
      pstm = connection.prepareStatement(sql);//预编译sql,先写sql然后不执行
      //手动赋值
      pstm.setInt(1, 8);
      pstm.setString(2, "SANJIN"); //执行
      int i = pstm.executeUpdate();
      if (i > 0) {
      System.out.println("插入成功");
      }
      } catch (Exception e) {
      e.printStackTrace();
      } finally {
      try {
      JdbcUtils.release(connection, pstm, null);
      } catch (SQLException throwables) {
      throwables.printStackTrace();
      }
      }

MySQL入门学习day3随笔3的更多相关文章

  1. MySQL入门学习day3随笔2

    用户创建及权限部分 1 create user Cra2iTeT identified by '123456'-- 创建用户 2 3 alter user 'Cra2iTeT'@'%' identif ...

  2. Mysql入门学习day2随笔2

    事务 什么是事务 要么都成功,要么都失败 事务原则 原子性:针对一个事务,两个步骤一起成功或一起失败 一致性:最终一致性,例如A.B之间的转账,无论两个账户如何操作,两账户的总价值不会变 隔离性:针对 ...

  3. 【数据库】9.0 MySQL入门学习(九)——获得数据库和表的信息、日期计算、查询、选择特殊列

    1.0 SELECT语句用来从数据表中检索信息. SELECT what_to_select FROM which_table WHERE conditions_to_satisfy; what_to ...

  4. 【数据库】7.0 MySQL入门学习(七)——MySQL基本指令:帮助、清除输入、查询等

    1.0 help == ? 帮助指令,查询某个指令的解释.用法.说明等.详情参考博文: [数据库]6.0 MySQL入门学习(六)——MySQL启动与停止.官方手册.文档查询 https://www. ...

  5. 【数据库】4.0 MySQL入门学习(四)——linux系统环境下MySQL安装

    1.0 我的操作系统是CentOS Linux release 7.6.1810  (Core) 系统详细信息如下: Linux version 3.10.0-957.1.3.el7.x86_64 ( ...

  6. 【数据库】3.0 MySQL入门学习(三)——Windows系统环境下MySQL安装

    1.0 我的操作系统是window10 专业版 64位.,不过至少windows7以上系统都是一样的. 关于MySQL如何下载,请参考博文: [数据库]2.0 如何获得MySQL以及MySQL安装 h ...

  7. MySQL学习day3随笔

    索引在数据量不大的时候体现不出来,数据很多的时候区别明显 1 select * from app_user where `name`='用户9999';-- 0.053 sec 2 select * ...

  8. 【数据库】2.0 MySQL入门学习(二)——如何获得MySQL以及MySQL安装

    1.0 如何获得MySQL: www.oracle.com https://dev.mysql.com/downloads/ 2.0 例如进入Oracle官网,找到MySQL: 进入页面后,切换到“资 ...

  9. 【转】MYSQL入门学习之十三:自定义函数的基本操作

    转载地址:http://www.2cto.com/database/201212/177382.html 一.自定义函数(UDF)的特性和功能  www.2cto.com           函数能分 ...

随机推荐

  1. SpringMVC工作流程 --通透较详细

    SpringMVC工作流程 SpringMVC工作流程 流程说明(重要): (1)客户端发送一个http请求给前端控制器(DispatcherServlet): (2)前端控制器(DispacherS ...

  2. Linux不常用参数(持续更新)

    一.系统级别 1.1 > 使其他机器无法ping通你的主机 echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all---------------- ...

  3. CVE-2012-1823(PHP-CGI远程代码执行)

    基于vulhub漏洞环境: 安装vulhub漏洞环境 https://blog.csdn.net/qq_36374896/article/details/84102101 CGI模式下的参数: -c ...

  4. 论文翻译:2021_Acoustic Echo Cancellation with Cross-Domain Learning

    论文地址:https://graz.pure.elsevier.com/en/publications/acoustic-echo-cancellation-with-cross-domain-lea ...

  5. HashMap?ConcurrentHashMap?

    Java团长在csdn 2019-02-06 19:58:00  104241  收藏 666     来源:crossoverJie(ID:crossoverJie) 前言 Map 这样的 Key ...

  6. SpringMvc用什么对象从后台向前台传递数据的?

    通过ModelMap对象,可以在这个对象里面调用put方法,把对象加到里面,前台就可以通过el表达式拿到.

  7. consumer 是推还是拉?

    Kafka 最初考虑的问题是,customer 应该从 brokes 拉取消息还是 brokers 将消 息推送到 consumer,也就是 pull 还 push.在这方面,Kafka 遵循了一种大 ...

  8. 使用Pycharm获取Resources目录里的内容

    def get_resource_path(path: str) -> str: """\ 获取Resources目录里的资源 :param path: :retu ...

  9. Spark学习摘记 —— RDD转化操作API归纳

    本文参考 在阅读了<Spark快速大数据分析>动物书后,大概了解到了spark常用的api,不过书中并没有给予所有api具体的示例,而且现在spark的最新版本已经上升到了2.4.5,动物 ...

  10. mplab使用小知识

    选择Debugger->Select Tool->MPLAB SIM可以使用MPALB中的软件调试 StopWatch可以观察程序运行时间 注意:在测试时需要注意红圈内晶振是不是和单片机上 ...