JDBC&DBCP

第1章 jdbc

1.1 JDBC概念

java data base connectivity java连接数据库技术

也就是说,有了jdbc之后,我们就可以使用java代码来操作数据库。

 

1.2 开发步骤

1. 注册驱动

DriverManager.registerDriver(new Driver());//不推荐,会注册两次

Class.forName(“com.mysql.jdbc.Driver”);//推荐,会注册1

2. 获得连接

Connection con = DriverManager.getConnection(String url, String uesrname, String password);

url:数据库地址格式有要求jdbc:mysql://ip地址:端口号/数据库

username:用户名

password:密码

3. 获取SQL语句执行平台

Statement st = con.createStatement();

4. 执行sql语句

int row = st.executeUpdate(String sql);//只能操作增删改语句,不能操作查询,返回值为受影响的行数

ResultSet rs = st.executeQuery(String sql);//执行查询

5. 处理结果集

一般增删改是不需要处理结果集

while(rs.next()) {

一顿rs.getXXX(String 列名);

rs.getXXX(int 列索引);//列索引从1开始

}

6. 释放资源

rs.close();

con.close();

st.close();

 

1.3 SQL注入攻击

我们对sql语句进行一定格式的拼接后,就可以达到条件恒为true的效果

使用预编译.

使用连接 con.prepareStatement(String sql);对sql语句进行预编译

 

1.4 预编译好处

1. 防止sql注入

2. 提高效率

 

第2章 DBUtils

2.1 概念

对jdbc进行了一层薄薄的封装

2.2 三个核心类

QueryRunner:用来执行SQL语句

ResultSetHandler:用来查询后处理结果集

DbUtils:释放资源

 

2.3 QueryRunner常用方法

update(Connection con,String sql,Object… args);执行增删改操作。con是连接,sqlsql语句 args替换占位符的参数

query(Connection con,String sql, ResultSetHandler<T> rsh,Object… params)执行查询操作根据传入的ResultSetHandler实现类的不同,会有不同的返回值类型

 

 

2.4 ResultSetHandler结果集

ArrayHandler查询到的第一行数据封装到一个Object数组中返回值类型是一个 Object[]

ArrayListHandler:将查询到的每一行数据封装到一个各自Object数组,然后再把这些数组封装到一个List集合中.返回值类型List<Object[]>

BeanHandler:将查询到的第一行数据封装到一个javaBean中,返回值类型是一个javaBean类型

BeanListHandler将查询到的每一行数据封装到一个javabean中,然后再将多个javabean封装到一个List集合

ColumnListHandler:将查询到的某一列的数据封装到一个List的集合

ScalarHandler对于结果只有一个数据的,可以使用此结果集

MapHandler:将查询到的第一行数据封装到Map集合中,key是列名,value第一行此列对应的值.

MapListHandler:将查询到的每一行数据封装到多个Map集合然后再将多个Map集合封装到一个List集合中

 

第3章 连接池

3.1 概念

预先创建很多个连接,放入到一个容器中,用的时候拿出来,用完再放回去

3.2 常见的连接池

dbcpc3p0

 

3.3DBCP 使用步骤

1. 创建BasicDataSource对象

2. 调用setXXX方法设置信息。包括驱动urlusernamepassword

3. 调用getConnection获得连接

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值