前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据库JDBC的基本内容

数据库JDBC的基本内容

作者头像
李家酒馆酒保
发布2017-12-28 10:50:10
5550
发布2017-12-28 10:50:10
举报
文章被收录于专栏:李家的小酒馆李家的小酒馆

JDBC

基本流程

  1. 首先向项目中导入jar包
  2. 创建如下代码
代码语言:javascript
复制
                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. 使用方法
代码语言:javascript
复制
        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()会返回null
            String 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放回到池中,减少了系统的开销.

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-10-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JDBC
    • 基本流程
      • 加载properties配置文件
        • JDBC工具类DBUtils
          • 基本操作
        • 连接池
        相关产品与服务
        数据库
        云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档