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. k8s学习笔记一(搭建&部署helloworld应用)

    kubernetes 目录 kubernetes 虚拟机创建三个节点 k8s install 部署hello world 应用 issue 汇总 node 一直处理NotReady状态 重启系统后虚拟 ...

  2. rancher更新集群证书

    进入rancher 等待更新完成 查看证书到期时间 >>>在rancher容器内部执行查看集群证书信息 for i in ls /var/lib/rancher/k3s/server ...

  3. 记mysql5.7错误only_full_group_by

    错误截图为上 mysql版本:5.7.35-0ubuntu0.18.04.1 "this is incompatible with sql_mode=only_full_group_by&q ...

  4. 还在担心CC攻击? 让我们来了解它, 并尽可能将其拒之服务之外.

    还在担心CC攻击? 让我们来了解它, 并尽可能将其拒之服务之外. CC攻击是什么? 基本原理 CC原名为ChallengeCollapsar, 这种攻击通常是攻击者通过大量的代理机或者肉鸡给目标服务器 ...

  5. 如何选择 Linux 操作系统版本?

    一般来讲,桌面用户首选 Ubuntu :服务器首选 RHEL 或 CentOS ,两者中首选 CentOS .根据具体要求:· 安全性要求较高,则选择 Debian 或者 FreeBSD .· 需要使 ...

  6. 32 位和 64 位的 JVM,int 类型变量的长度是多数?

    32 位和 64 位的 JVM 中,int 类型变量的长度是相同的,都是 32 位或者 4个字节.

  7. 创建POJO

    创建一个名为student.java的POJO. 第一步,在包里面创建一个student类,右键点击包,点击新建,再点击创建一个类. 第二步,输入类名,点击完成. 第三步,输入数据类型和主键名,再写一 ...

  8. 剑指Offer30——包含min函数的栈

    剑指Offer30--包含min函数的栈 1. 题目简述 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数在该栈中,调用min.push及pop的时间复杂度是O(1). 2. 题 ...

  9. BMZCTF 2020祥云杯到点了

    2020祥云杯到点了 下载附件得到三个word文档,我们打开第一个文档然后将隐藏文字显示出来 得到提示 我们查看属性应该就是日期了我们先把他记录下来 然后打开第二个文档 输入刚刚的密码 在第二个wor ...

  10. PID参数整定

    PID参数整定方法很多,常见的工程整定方法有临界比例度法.衰减曲线法和经验法.云南昌晖仪表制造有限公司以图文形式介绍以临界比例度法和衰减曲线法整定调节器PID参数方法.临界比例度法一个调节系统,在阶跃 ...