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. 学习HashMap源码

    HashMap简介 ​ HashMap是一种存储K-V类型的容器,HashMap底层数据结构为数组+链表+红黑树(jdk 1.8新增),它根据键的HashCode值存储数据,获取元素的时间复杂度为O( ...

  2. python+pytest接口自动化(10)-session会话保持

    在接口测试的过程中,经常会遇到有些接口需要在登录的状态下才能请求,否则会提示请登录,那么怎样解决呢? 上一篇文章我们介绍了Cookie绕过登录,其实这就是保持登录状态的方法之一. 另外一种方式则是通过 ...

  3. java中自己常用到的工具类-压缩解压zip文件

    package com.ricoh.rapp.ezcx.admintoolweb.util; import java.io.File; import java.io.FileInputStream; ...

  4. Cobalt Strike之HTA木马

    点击 attacks --> packages --> HTML Application 弹出的对话框method选择powershell (不要选第一个,不太兼容)点击确定 测试运行

  5. Python 细聊从暴力(BF)字符串匹配算法到 KMP 算法之间的精妙变化

    1. 字符串匹配算法 所谓字符串匹配算法,简单地说就是在一个目标字符串中查找是否存在另一个模式字符串.如在字符串 "ABCDEFG" 中查找是否存在 "EF" ...

  6. HTTP发展史,HTTP1.1与HTTP2.0的区别

    前言 我们知道HTTP是浏览器中最重要且使用最多的协议,它不仅是浏览器与服务端的通信语言,更是互联网的基石.随着浏览器的不断更新迭代,HTTP为了适应技术的更新也在不断进化,学习HTTP的最佳途径就是 ...

  7. Linux 的目录结构是怎样的?

    这个问题,一般不会问.更多是实际使用时,需要知道.Linux 文件系统的结构层次鲜明,就像一棵倒立的树,最顶层是其根目录:Linux的目录结构常见目录说明: /bin:存放二进制可执行文件(ls,ca ...

  8. Zookeeper 的典型应用场景 ?

    Zookeeper 是一个典型的发布/订阅模式的分布式数据管理与协调框架,开发人员 可以使用它来进行分布式数据的发布和订阅. 通过对 Zookeeper 中丰富的数据节点进行交叉使用,配合 Watch ...

  9. java-规约-OOP

    public class OOP { /** * 避免通过一个类的对象引用访问此类的静态变量或者静态方法 * 直接通过类名去访问 */ // 错误使用例子: public static void ma ...

  10. Oracle入门基础(五)一一多表查询

    SQL> --等值连接 SQL> --查询员工信息:员工号 姓名 月薪 部门名称 SQL> set linesize 80 SQL> desc dept 名称 是否为空? 类型 ...