JDBC
一.什么是持久化数据
断电也能保存下来的数据

二.基本操作
创建maven工程
1.加载驱动
在pom.xml文件中配置JDBC驱动版本
https://mvnrepository.com/artifact/mysql/mysql-connector-java

Class.forName("com.mysql.jdbc.Driver");

JDBC的配置
8.0+:com.mysql.cj.jdbc.Driver;
8.0-:com.mysql.jdbc.Driver;

2.获取与数据库的连接

Connection conn = null;
//配置JDBC地址、用户、密码
String url = "jdbc:mysql://127.0.0.1:3306/scoot";(访问协议)
String user = "root";
String passwd = "123456";
conn = DriverManager.getConnection(url,user,passwd);

3.获取statement

Statement stm = conn.createStatement();(不建议使用Statement)

可以使用PreparedStatement,预编译

PreparedStatement sqlPs = jConnect.prepareStatement(sql);

Statement存在的问题:
(1)会造成sql注入:只要在sql语句中加入特定的恒等式,查询的数据就会把整张表的数据拿到,有安全隐患
(2)每查询一次就会编译一次,极大的消耗性能

4.执行sql语句,获取结果集ResultSet

ResultSet result = stm.executeQuery("select empno as en,ename,hiredate from `emp`");

5.遍历查询结果

while(result.next()){int empon = result.getInt("en");
//       int empon = result.getInt(1);String ename = result.getString("ename");Date date = result.getDate("hiredate");System.out.println(empon + "," + ename + "," + date);
}

6.获取查询数据
(1)数据可以根据列名获取,别名获取
(2)数据可以根据列所在位置获取,从1开始
(3)数据的获取要符合数据类型的对应和数据库支持的类型保持一致

三.增删改查
(1)在JDBC当中,数据的修改默认是没有事务的
(2)在JDBC当中完成事务
setAutoCommit(false) 把自动提交关掉
commit() 手动提交
rollback() 回滚
(3)批量插入数据
addBatch() 添加需要批量执行的数据
executeBatch() 执行批量添加的数据

实例:

package com.kop.insert;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Arrays;public class exerciseJDBC {public static void main(String[] args) {Connection jConnect = null;try {//加载jdbc驱动Class.forName("com.mysql.jdbc.Driver");//定义需要连接的数据库,账号,密码String jdbcUrl = "jdbc:mysql://127.0.0.1:3306/scoot";String jdbcUser = "root";String jdbcPasswd = "123456";jConnect = DriverManager.getConnection(jdbcUrl,jdbcUser,jdbcPasswd);//关闭事务自动提交jConnect.setAutoCommit(false);String sql = "INSERT INTO `dept` (`deptno` , `dname` , `loc`) VALUES (? , ? , ?)";//            String sql = "DELETE from `dept` where `deptno` = ?";//把sql放到statement中编译PreparedStatement sqlPs = jConnect.prepareStatement(sql);for (int i = 50; i < 100 ; i += 10) {//                sqlPs.setObject(1,50);
//                sqlPs.setObject(1,60);
//                sqlPs.setObject(1,70);
//                sqlPs.setObject(1,80);
//                sqlPs.setObject(1,90);sqlPs.setObject(1,i);sqlPs.setObject(2,"JavaSyswork");sqlPs.setObject(3,"CHENGDU");//批量导入需要修改的数据sqlPs.addBatch();}//批量提交需要修改的数据int[] sqlArray = sqlPs.executeBatch();jConnect.commit();System.out.println(Arrays.toString(sqlArray));} catch (ClassNotFoundException e) {if(jConnect != null){try {jConnect.rollback();} catch (SQLException ex) {ex.printStackTrace();}}e.printStackTrace();} catch (SQLException e) {e.printStackTrace();} finally {if (jConnect != null) {try {jConnect.close();} catch (SQLException e) {e.printStackTrace();}}}}
}

JAVA-JDBC(Mysql)相关推荐

  1. Spring Cloud config ------ jdbc(mysql)配置库

    在前面文章基础上进行,请参考: Spring Cloud config ------ 基础使用 Spring Cloud config ------ 认证和安全 Spring Cloud config ...

  2. flink jdbc(mysql)修改为阿里云AnalyticDB方言

    前言 阿里云 AnalyticDB(mysql) 以下简称 adb数据库,是可以直接使用 Mysql的连接方式,但 adb与 mysql语法并不完全相同,有一些特殊的语法有些出入,比如我在使用 ups ...

  3. Eclipse:Java连接数据库(mysql)

    在实现连接数据库操作之前,我们要下载一个用于连接数据库的驱动包 下载地址:MySQL :: Download Connector/J 在项目文件下创建一个文件夹命名:lib,将下载后压缩包内的mysq ...

  4. JAVA连接数据库(mysql)-executeUpdate,executeQuery和execute的使用

    JAVA连接数据库-executeQuery,executeUpdate和execute的使用 Java连接mysql数据库为例 注:这里我用的是mysql8.0以上版本 连接数据库的步骤: //1. ...

  5. Java JDBC 连接MySQL数据库方法(IJ版)

    Java JDBC 连接MySQL数据库方法(IJ版) 首先说一下IJ建立项目步骤: 1.新建一个Empty Project 2.新建一个Module 3.在src里新建一个Package 4.在Pa ...

  6. 头歌Educoder——Java高级特性 - JDBC(上)

    第1关:JDBC连接数据库 任务描述 本关任务:使用jdbc连接数据库并完成创建数据库和创建表的操作. 相关知识 JDBC API提供以下接口和类: DriverManager:此类管理数据库驱动程序 ...

  7. java jdbc 连接mysql数据库 实现增删改查

    好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...

  8. Java实习生常规技术面试题每日十题Java基础(七)

    目录 1. Java设计模式有哪些? 2.GC是什么?为什么要有GC? 3. Java中是如何支持正则表达式. 4.比较一下Java和JavaSciprt. 5.Math.round(11.5) 等于 ...

  9. JSP连接数据库(MySQL)

    JSP链接数据库(MySQL) 最近在学JSP,记录一下关于JSP链接数据库的一些笔记. 首先通过两个JSP网页模拟一个验证查询的功能: 1.index.jsp(简单的一个验证表单): <%@ ...

  10. Java 全集(上)

    Java面试题全集(上) 2013年年底的时候,我看到了网上流传的一个叫做<Java面试题大全>的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是错误 ...

最新文章

  1. Android TV开发焦点动作控制小技巧
  2. python中os.system.获取输出信息_python中os.system()的返回值
  3. ●BZOJ 4556 [Tjoi2016Heoi2016]字符串
  4. 今日代码(20210225)--数据处理
  5. 【Computer Organization】The Core Design Thinking of single cycle CPU
  6. slf4j + log4j原理实现及源码分析
  7. 探究.NET的bin引用程序集运行机制看.NET程序集部署原理
  8. React中使用Vditor详解(自定义图片)
  9. 理财非保本浮动收益型什么意思?
  10. Node.js 的Web 服务器--Fenix
  11. 如何进行可视化大屏视觉设计?
  12. Julia :HDF5数据文件读写与更新
  13. VB代码 VB小程序
  14. Unity3d开发环境如何
  15. 计算机无法u盘启动,电脑无法从u盘启动怎么办呢?
  16. 基于Matlab的数字水印设计—基于DCT域的水印算法实现
  17. 我们造出了打破次元壁的锤子,然后呢?
  18. 2014秋冬季校招时间表,持续更新
  19. NDK实践(一)在linux环境下编译ffmpe
  20. 小程序接入h5页面_小程序与H5如何互相跳转

热门文章

  1. 2021-10-29 visual Foxpro连接数据库sql_server并且执行sql语句
  2. 头肩底形态什么意思?萌新入市必看,教你快速理解头肩底形态
  3. 5G模块RM500U-CN在ubuntu20.04上的驱动安装
  4. cisco2960升级ios并更新配置
  5. node-js上手安装。
  6. 全国计算机一级考点wps,抓考点:2018计算机一级WPS office考试大纲
  7. 文件夹大小列表 TreeSize Free + Folder Size for Windows
  8. R4S 玩转docker(一)
  9. 在word中表格分页显示表头
  10. java--poi读取excel图片和内容(支持03,07版本)