专栏首页IT那个小笔记JDBC——基本使用

JDBC——基本使用

基本使用

  1. 什么是JDBC
  2. JDBC的连接
  3. DDL操作
  4. DML操作
  5. DQL操作

什么是JDBC

JDBC代表Java数据库连接(Java Database Connectivity),它是用于Java编程语言和数据库之间的数据库无关连接的标准Java API。即它是一种规范里面有相应的类或接口,不同的数据库去提供各自的实现。在使用时通过JDBC就能连接各种数据库了

JDBC连接

1.下载对应数据库平台提供的驱动包即实现包

2.放到项目中通过builder path加载包

3.加载驱动(我的是mysql-connector-java)

/* 旧版 */
Class.forName("com.mysql.jdbc.Driver");
/* 新版 */
Class.forName("com.mysql.cj.jdbc.Driver");

4.获取连接对象

/* url中写上地址端口还有要连接的数据库,新版必须得加上时区 */
String url = "jdbc:mysql://localhost:3306/mydb?serverTimeZone=Asia/Shanghai"
/* 用哪个用户连接 */
String userName = "root";
/* 用户密码 */
String password = "123456";
/* 传入这三个参数创建连接对象,需要做异常处理*/
Connection con = DriverManage.getConnection(url,userName,password);

执行DDL

1.通过连接对象来创建语句对象

String sql = "create table test(id int primary key,age int)";
Statament sta = con.createStatement();
sta.executeUpdate(sql);

2.用完需要关掉连接对象和语句对象

/* 注意先后 */
sta.close();
con.close();

执行DML

插入

String sql = "insert into test values(1,23)";
Statament sta = con.createStatement();
sta.executeUpdate(sql);

删除

String sql = "delete from test where id = 1";
Statament sta = con.createStatement();
sta.executeUpdate(sql);

修改

String sql = "update test set age = "18" where id = 1";
Statament sta = con.createStatement();
sta.executeUpdate(sql);

执行DQL

1.结果集

  • 数据库查询的结果集返回的一个类型ResultSet

2.结果集常用方法

/* 游标执行一次往下移动一行,当有记录时返回true没了返回false */
next();
/* 去获取列字段的值 */
getInt(1) //当前游标指定行下,第一列的值
getInt("列名") // 当前游标指定行下,指定列名的列的值
getString(1)// 列的值的类型是int就用getInt,是字符就用getString()

3.获取表中指定行的信息

String sql = "select * from student where id = 1";
Statament sta = con.createStatement();
ResultSet result = sta.executeQuery(sql);
if(result.next()){ 
  int a = result.getInt("id");  
  String b = result.getString("name");
  int c = result.getInt("age");
  System.out.println("id为"+a+",名字为"+b+",年龄为"+c);
}

4.获取多行记录

String sql = "select * from student";
Statament sta = con.createStatement();
ResultSet result = sta.executeQuery(sql);
List stu = new ArrayList();
while(result.next()){ 
  Student stu = new Student();// Student类中属性对应着列字段,通过循环将一列一列的记录对象添加到列表
  stu.setId(result.getInt("id"));  
  stu.setName(result.getString("name"));
  stu.(result.getInt("age"));
  stuList.add(stu);
}

总结

通过JDBC的基础操作可以完成用java代码对数据库进行各种增删查改的操作,但是我们每次操作都需要进行加载驱动、创建连接对象、创建语句模块、最后还要挨个关闭。这样对于只是做一条语句的执行太麻烦。我们可以对这些操作放到一个类中,通过调用类中对应的方法来执行想要的操作。

本文分享自微信公众号 - IT那个小笔记(qq1839646816),作者:木瓜煲鸡脚

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ServletContext

    context.setAttribute(String name,Object value);

    木瓜煲鸡脚
  • 常用类

    也就是public static void main(String[] args){ }

    木瓜煲鸡脚
  • 数据库简述

    MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和...

    木瓜煲鸡脚
  • 浅谈SAP Cloud for Sales 自动化

    在Jerry还在本科进行计算机理论知识学习时,我曾经把软件开发里的质量工程师(Quality Engineer)理解成是每天只是简单地做着运行开发人员编写好的软...

    Jerry Wang
  • SpringBoot系列教程web篇之重定向

    前面介绍了spring web篇数据返回的几种常用姿势,当我们在相应一个http请求时,除了直接返回数据之外,还有另一种常见的case -> 重定向;

    一灰灰blog
  • 采用深度学习技术的婴儿监视装置注意着婴儿床的一举一动

    六个月大的 BabbyCam 首席测试工程师 Elise Lui,早就努力地将深度学习运用在各个层面。 身兼 Elise Lui 的父亲、NVIDIA 工程师,...

    GPUS Lady
  • Spring5参考指南:Bean的生命周期管理

    Spring中的Bean是随着Spring容器产生的,当Spring容器关闭的时候,相应的Bean也会消失。当然这个和Bean自身的作用域范围也有关系,但是通常...

    程序那些事
  • python selenium cookie

    brower.get("https://www.taobao.com") for cookie in tbCookies: brower.add_cooki...

    用户5760343
  • 感谢云+社区的端午节粽子

    收到的粽子有一袋猪肉粽,一袋蜜枣粽,一袋赤豆粽,一袋豆沙粽,一袋两个,还有两个咸鸭蛋。猪肉粽和咸鸭蛋应该都是南方的端午习俗食物,北方以前端午节是没有这两样东西的...

    Dylan Liu
  • 详解如何把.py文件转.apk

    Kivy是一套Python下的跨平台开源应用开发框架,官网,我们可以用它来将Python程序打包为安卓的apk安装文件。以下是在win7 64位环境中的具体配...

    用户6367961

扫码关注云+社区

领取腾讯云代金券