一、JDBC简介

  JDBC(Java DataBase Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一的访问,它由一组用Java语言编写的类和接口组成。使用JDBC访问数据库的基本步骤如下:

    1、加载JDBC驱动程序

    2、建立数据库连接

    3、创建操作数据库SQL的对象

    4、执行语句并分析执行结果

    5、关闭连接

  在使用JDBC操作数据库之前,我们需要先向项目中加入JDBC驱动文件,将其放到项目中的lib文件夹下即可。

  放入JDBC驱动文件(下)后,eclipse会自动将其加载到项目中(上)。

二、使用JDBC访问MySQL数据库

  我们在MySQL数据库中建立了test库,test库中含有test表,表中的数据如下:

1、通过Statement对象执行静态SQL语句

 package test;

 import java.sql.*;                                        //导入Java提供的数据库操作包

 public class MySql {
public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai"; //数据库连接地址,此处表示连接本机3306端口的MySQL数据库里的test库,使用上海时区
Connection con;
Statement statement;
ResultSet rs;
int i;
String string; try {
Class.forName("com.mysql.cj.jdbc.Driver");                //加载JDBC驱动程序
con = DriverManager.getConnection(url, "root", "root");        //建立与数据库的连接,后两个参数分别为账号和密码
statement = con.createStatement();                    //创建Statement对象 rs = statement.executeQuery("select * from test");           //执行sql查询语句,返回结果集
System.out.println("查询结果为:");
while(rs.next()) {                              //循环操作结果集
string = rs.getString("id") + "——" + rs.getString("name");
System.out.println(string);
} i = statement.executeUpdate("insert into test value(4,'wxc')");   //执行sql更新语句,返回影响行数
System.out.println("影响行数为:" + i); rs.close();                                  //关闭结果集
statement.close();                              //关闭Statement对象
con.close();                                 //关闭与数据库的连接
} catch (Exception e) {
e.printStackTrace();
}
}
}

  执行结果如下:

2、通过PreparedStatement对象执行预编译SQL语句

 public class MySql {                                    //大部分操作与执行静态SQL语句类似,相同部分此处不再赘述
public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai";
Connection con;
String sql;
PreparedStatement preparedStatement;
ResultSet rs;
int i;
String string; try {
Class.forName("com.mysql.cj.jdbc.Driver");
con = DriverManager.getConnection(url, "root", "root"); sql = "select * from test where id = ?";             //编写sql查询语句,问号为占位符,之后会被参数取代
preparedStatement = con.prepareStatement(sql);         //创建PreparedStatement对象
preparedStatement.setString(1, "3");               //设置参数,第一个参数表示选择第几个占位符,第二个参数表示要输入的值
rs = preparedStatement.executeQuery();
System.out.println("查询结果为:");
if(rs.next()) {
string = rs.getString("id") + "——" + rs.getString("name");
System.out.println(string);
} sql = "delete from test where id = ?";
preparedStatement = con.prepareStatement(sql);
preparedStatement.setString(1, "3");
i = preparedStatement.executeUpdate();
System.out.println("影响行数为:" + i); rs.close();
preparedStatement.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

  执行结果如下:

使用JDBC操作MySQL数据库的更多相关文章

  1. JDBC操作MySQL数据库案例

    JDBC操作MySQL数据库案例 import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepared ...

  2. Java使用Jdbc操作MySql数据库(一)

    这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. ...

  3. 原生Jdbc操作Mysql数据库开发步骤

    原生Jdbc操作Mysql数据库开发步骤 原生的Jdbc就是指,不使用任何框架,仅用java.sql包下的方法实现数据库查询等的操作. 下面是开发步骤:        1.导入数据库驱动包       ...

  4. java数据库 JDBC操作MySQL数据库常用API 部门表和员工表 创建表 添加数据 查询数据

    package com.swift.department; import java.sql.Connection; import java.sql.PreparedStatement; import ...

  5. JavaWeb用Jdbc操作MySql数据库(一)

    一.添加开发包.在JavaWeb中用jdbc操作数据库,使用方法与java一样,但是在处理开发包的问题上有点差别.JavaWeb不能将mysql-connector-java-5.1.7-bin.ja ...

  6. 原生jdbc操作mysql数据库详解

    首先给大家说一下使用JDBC链接数据库的步骤 1.加载链接数据库驱动 2.建立数据库链接 3.创建数据库操作对象 4.编写sql语句,执行sql语句 5.获取结果集 6.释放资源 我这边采用的是mav ...

  7. Java学习笔记(十一)——通过JDBC操作mysql数据库

    [前面的话] 时间总是好快,每次都感觉还没有怎么好好去过,对于好多事情,希望自己可以做的更多一点.心情能够好一点,平淡一点就行了. 学习过程中的知识点总结,基础知识,选择阅读. [JDBC定义] 定义 ...

  8. Java第三十五天,用JDBC操作MySQL数据库(一),基础入门

    一.JDBC的概念 Java DataBase Connectivity 从字面意思我们也不难理解,就是用Java语言连接数据库的意思 JDBC定义了Java语言操作所有关系型数据库的规则(接口).即 ...

  9. JavaEE系列之(三)JDBC操作MySQL数据库

    一.JDBC简介        JDBC(Java Data Base Connectivity)java数据库连接        SUN公司为了简化.统一对数据库的操作,定义了一套Java操作数据库 ...

随机推荐

  1. Robot Framework自动化_Selenium2Library 关键字

    Robot Framework自动化_Selenium2Library 关键字 培训老师:肖能尤 2016/06/12 课程目的 一.Robot framework Selenium2Library ...

  2. python_pycharm下拉前置标示

    在pycharm中是自动补全的变量的类别p:parameter 参数m:method方法c:class 类v:variable 变量f:function 函数 从定义的角度上看,我们知道函数(func ...

  3. Maven安装和使用

    一.安   装 1.解压好后,添加系统环境变量 变量名:MAVEN_HOME 属性值:D:\apache-maven-3.3.3  //也就是解压的路径 path中添加:%MAVEN_HOME%\bi ...

  4. 对于 Netty ByteBuf 的零拷贝(Zero Copy) 的理解

    此文章已同步发布在我的 segmentfault 专栏. 根据 Wiki 对 Zero-copy 的定义: "Zero-copy" describes computer opera ...

  5. java并发之非阻塞算法介绍

    在并发上下文中,非阻塞算法是一种允许线程在阻塞其他线程的情况下访问共享状态的算法.在绝大多数项目中,在算法中如果一个线程的挂起没有导致其它的线程挂起,我们就说这个算法是非阻塞的. 为了更好的理解阻塞算 ...

  6. sql server 阻塞查询

    在生产环境下,有时公司客服反映网页半天打不到,除了在浏览器按F12的Network响应来排查,确定web服务器无故障后.就需要检查数据库是否有出现阻塞 当时数据库的生产环境中主表数据量超过2000w, ...

  7. Kali Linux安装Google中文输入法(只需5步)

    前言: 之前我在kali上安装过中文输入法,并且写了一篇博文(Kali Linux安装中文输入法全纪录),这篇博文里的步骤是当时一边摸索一边记录下的,思路有点混乱,而且还同时安装了两种输入法.今天又安 ...

  8. 第八章——降维(Dimensionality Reduction)

    机器学习问题可能包含成百上千的特征.特征数量过多,不仅使得训练很耗时,而且难以找到解决方案.这一问题被称为维数灾难(curse of dimensionality).为简化问题,加速训练,就需要降维了 ...

  9. 你不知道的JavaScript--Item6 var预解析与函数声明提升(hoist )

    1.var 变量预编译 JavaScript 的语法和 C .Java.C# 类似,统称为 C 类语法.有过 C 或 Java 编程经验的同学应该对"先声明.后使用"的规则很熟悉, ...

  10. pdb 调试

    以前写python一直用pycharm,调试啥的比较方便,最近要在远程服务器上调试一些程序,只有一个控制台就可以用pdb进行调试了.常用的只有几个命令. break 或 b 设置断点 continue ...