WEB---JDBC

JDBC(Java语言操作数据库)

在这里插入图片描述
本质:由官方定义的一套操作关系型数据库的规则(即接口),由各个数据库厂商实现这套接口,提供数据库驱动的JAR包,可以使用这套接口编程,真正执行的是jar包中的实现类

步骤:

  • 1.导入驱动jar包 *
    2.注册驱动 *
    3.获取数据库连接对象 Connection *
    4.定义sql *
    5.获取执行sql语句对象 Statement *
    6.执行sql.接收返回结果 *
    7.处理结果 *
    8.释放资源

对象

DriverManager:驱动管理对象

  • 注册驱动
    明确程序使用哪个数据库驱动jar包
    写代码:Class.forName(“com.mysql.jdbc.Driver”); 查看源码,在com.mysql.jdbc.Driver 中存在静态代码块, 静态代码块中注册的是
    DriverManager.registerDriver
  • 获取数据库连接
    DriverManager.getConnection

Connection:数据库连接对象

  • 获取执行sql的对象
    .createStatement()
    .prepareStatement(String sql)
  • 管理实务
    开启事务
    .setAutoCommit(false);
    提交事务
    .commit();
    回滚事务
    .rollback();

Statement:执行SQL对象

  • 执行sql语句【静态sql语句】
    .executeUpdate( sql ); //执行DML(insert ,update,delete)语句,DDL(create,alter,drop)语句【返回值为int类型,为影响的行数,返回值>0执行成功】
  • .executeQuery( sql ); //执行DQL(select)语句 【返回结果集对象】
  • SQL注入问题
    在拼接sql时,一些sql关键字参与字符串的拼接,会造成安全性问题

ResultSet:结果集对象

  • .next(); //光标下移【返回boolean值,判断是否有数据】
  • .getXxx(列名或列标号); //获取对应数据

prepareStatement(sql):执行SQL对象

  • 执行sql语句
  • 解决sql注入问题,执行预编译sql语句,参数使用?作为占位符
    给?赋值:setXxx(?位置,?的值)

数据库连接池

一个存放数据库连接的容器(集合)【节约资源,用户访问高效】
当系统初始化好,容器被创造,容器会申请一些连接对象;当用户来访问数据库时,从容器获取连接对象,访问结束释放会连接池

**

DataSource,标准接口

**

  • 获取连接对象:getConnection( )
  • 归还连接对象:如果是从连接池获取的,那么调用Close()就是归还
    一般不实现,有数据库厂商实现
  • C3P0:数据库连接池技术
    导入包:本身的包和驱动器包
    2.定义配置文件(命名必须为:c3p0-config.xml)放在src目录下
    创建数据库连接池对象
    获取连接
  • Druid:数据库连接池实现技术,由阿里巴巴提供
    1.导入jar包
    2.定义配置文件
    3.加载配置文件pro
    4.创建数据连接池对象 ds=DruidDataSourceFactory.createDataSource(pro);
    5.获取连接

Spring JDBC

Spring框架对JDBC的简单封装
步骤

  • 1.导入JAR包
  • 2.创建JdbcTemplate对象,依赖于数据源DataSource
  • 3.调用Jdbc Template对象方法
  • .update(sql,1); //增删改
  1. 查询

temp.queryForMap(sql,1); //结果集对象只能一个长度 【列名:Key,值:Value】

.queryForList(sql,1,2); //结果集没有限制

query():查询结果,将结果封装为JavaBean对象
query的参数:RowMapper * 一般我们使用BeanPropertyRowMapper实现类。可以完成数据到JavaBean的自动封装 * new BeanPropertyRowMapper<类型>(类型.class)

.queryForObject(sql, Long.class); //一般用于查询聚合函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Abner G

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值