JDBC

基本流程

  1. 首先向项目中导入jar包

  2. 创建如下代码

                Class.forName("com.mysql.jdbc.Driver");String url = "jdbc:mysql://localhost:3306/mybase";String username="root";String password="123";con = DriverManager.getConnection(url, username, password);
  1. 使用方法
        String sql = "select * from user where name=?";   // sql语句PreparedStatement stmt = connection.prepareStatement("");   // 预编译stmt.setString(1, "lll");  // 给?占位符赋值ResultSet result = stmt.executeQuery();   // 取得查询的结果集对象while(result.next()){  // 遍历结果集,如果结果集中没有对象的话result.next()会返回nullString str = result.getString(1);  // 取出结果集中的对象(列,列名)}stmt.executeUpdate();   // 数据更新使用的方法connection.close();   // 关闭资源stmt.close();

加载properties配置文件

  • 将数据库的信息配置在properties中可以增加代码的灵活性,修改的时候不需要去改动代码.

  • 可以将properties文件放在src文件夹下面,这样编译完以后properties文件就会编译到bin文件夹中,可以通过类加载器获取.

  • InputStream in = JDBCUtilsConfig.class.getClassLoader().getResourceAsStream("database.properties");

JDBC工具类DBUtils

  • 封装了JDBC的操作,减少代码量

基本操作

  • 首选创建DBUtils对象,传递的参数为DateSource

private static QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());

  • 数据的更新操作, 可变参数的位置可以依次传递参数,也可以传递一个数组

  • qr.update(sql,Object... param)

  • DBUtils实现了查询结果自动封装到Bean Object List Map 操作,所以使得对数据库的操作变得更加简单

query( String sql, ResultSetHandler<T> rsh, Object... params) // query的构造函数,可以传递ResultSetHandler来实现查询结果的自动封装

  • ArrayHandler // 将结果集中的第一条记录封装到一个Object[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值

  • ArrayListHandler // 将结果集中的每一条记录都封装到一个Object[]数组中,将这些数组在封装到List集合中。

  • BeanHandler // 将结果集中第一条记录封装到一个指定的javaBean中。

  • BeanListHandler // 将结果集中每一条记录封装到指定的javaBean中,将这些javaBean在封装到List集合中

  • ColumnListHandler // 将结果集中指定的列的字段值,封装到一个List集合中

  • ScalarHandler // 它是用于单数据。例如select count(*) from 表操作。

  • MapHandler // 将结果集第一行封装到Map集合中,Key 列名, Value 该列数据

  • MapListHandler // 将结果集第一行封装到Map集合中,Key 列名, Value 该列数据,Map集合存储到List集合

qr.query(conn, sql, new ArrayHandler(), params); // 然后返回值为对应的Handler返回的类型

连接池

实际开发中“获得连接”或“释放资源”是非常消耗系统资源的两个过程,为了解决此类性能问题,通常情况我们采用连接池技术,来共享连接Connection。这样我们就不需要每次都创建连接、释放连接了,这些操作都交给了连接池,当需要使用Connection时候,可以直接从连接池中获取Connection,当我们用完了Connection时,调用close()方法把这个Connection放回到池中,减少了系统的开销.

转载于:https://www.cnblogs.com/liyuhui-Z/p/7725434.html

数据库JDBC的基本内容相关推荐

  1. java 数据库排序_Java如何排序数据库表的数据内容?

    在Java编程中,如何排序数据库表的数据内容?假定数据库名称是:testdb,其中有一个表:employee,这个表中有4条记录. 创建数据库表的语句 - use testdb; create tab ...

  2. java 实验十 数据库实验_数据库实验十[荟萃内容]

    <数据库实验十[荟萃内容]>由会员分享,可在线阅读,更多相关<数据库实验十[荟萃内容](9页珍藏版)>请在人人文库网上搜索. 1.北京建筑大学理学院 信息与计算科学专业 实验报 ...

  3. mysql制作html静态网页6_将数据库中的所有内容生成html静态页面的代码

    将数据库中的所有内容生成html静态页的代码,比较简单了,有需要的朋友可以参考下. 复制代码 代码如下: require_once("conn.php"); if($_GET['a ...

  4. php数据库可转java数据库,php转java 系列2 Spring boo 链接数据库jdbc

    php转java 系列2 Spring boo 链接数据库jdbc JDBC 首先创建一个新项目,在创建项目时要注意导入依赖, 在项目创建成功后就会看到在 pom.xml 文件中找到,但是如果在创建项 ...

  5. 数据库+jdbc实现学生教师管理

    数据库+JDBC实现学生教师管理系统 这次主要是假期自学了数据库,自己做了一个简单的项目来加深自己的理解,本次程序没有加Swing窗体,后续会更新新的加swing窗体的程序, 主要功能: 1,学生老师 ...

  6. Android studio根据文本提取出的关键词在sqlite数据库中查找相关内容

    Android studio根据文本提取出的关键词在sqlite数据库中查找相关内容 一.介绍 二.Android studio连接.操作和查看sqlite数据库 三.在数据库中查找相关内容 四.运行 ...

  7. 【mysql创建数据库以及表添加内容】

    mysql创建数据库以及表添加内容 第一步 先打开cmd 第二步 输入mysql -u root -p,然后就进入mysql 第三步 创建数据库 create database [数据库名],这里我用 ...

  8. 【全年汇总】2023年CCF数据库/数据挖掘/内容检索会议截稿时间汇总(持续更新)

    本博文是根据CCF会议推荐的数据库/数据挖掘/内容检索领域相关会议目录撰写. 一.截稿时间总览 截稿时间的总时间轴内容将会持续更新...... 往年投稿及录用情况及链接详见图片后面的内容. 二.会议详 ...

  9. 读取Excel文件并用jdbc连接将内容导入MySQL数据库

    Excel文件 依赖 <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --><dependency>< ...

  10. MySQL数据库+jdbc -- 笔记

    MySQL数据库 @Draven Mysql 1.连接数据库 1.1.下载可视化软件 1.2.连接数据库 1.3.连接命令 1.4.基本语法操作 2.操作数据库 2.1.操作数据库(了解) 2.2.数 ...

最新文章

  1. QT:(4)解决在VS15下配置QT后没有QT GUI Application选项
  2. 迁移博客到香港虚拟空间
  3. Oracle Goldengate Windows平台Oracle-Oracle单向复制
  4. 强势推荐8个功能强大,鲜为人知的实用软件
  5. 同等质量下那种图片格式小_八个PPT图片处理必会的神技巧,帮你轻松做出高质量PPT...
  6. 接口隔离原则_是时候深入学习一下“接口隔离原则”了
  7. 秋天 | 等疫情过后,我们继续背起相机去旅行
  8. 刷题bingo挑战赛1
  9. python 数据库接口_Python3笔记050 - 11.1 数据库接口
  10. 学习笔记:MySQL字符串类型
  11. 通过原码、反码、补码彻底搞清左移、右移、无符号右移
  12. 算法案例之有效字母异位词
  13. 从Slice_Header学习H.264(三.3)--相关细节之 FMO
  14. 常用的科研论文作图软件
  15. 供应链管理的三个层次
  16. 文档词频矩阵_对论文“从词向量到文档距离”的理解
  17. Error in Summary.factor ‘min’ not meaningful for factors
  18. 在 cmd 中启动 Android 模拟器
  19. linux下刻录光盘读取不了_如何在Linux下刻录数据光盘
  20. 关于bitcoin core钱包api

热门文章

  1. Firefox 按一下Alt键 出现菜单!
  2. linux ftp命令参数全集
  3. test luasql's postgresql driver performance (not better than pgbench)
  4. 搭建appium的android环境
  5. 芒果 TV Redis 服务解决方案
  6. Android开发指南(32) —— Multimedia and Camera - Audio Capture
  7. 挖矿从入门到入狱,百度运维获利 10 万被判 3 年。网友:人生已毁
  8. 寒心!一个开发者就这样离开了!
  9. 做梦都没想到,就这样得到了一位大佬的青睐
  10. 大公司和小公司的抢人战,孰胜孰负?