jdbc入门

JDBC的概述
jdbc入门
jdbc的api使用
jdbc的资源释放
jdbc的crud操作 增删改查操作
jdbc工具类的抽取
jdbc的preparedstatement

jdbc的概述
全称:Java database connectivity (Javau数据库连接)

jdbc的入门:
搭建开发环境
编写程序,在程序中加载数据库驱动
建立连接
创建用于向数据库发送的sql的statement对象
从代表结果集的resultset中取出数据
断开与数据库的连接,并释放相关资源。

创建数据库,表,插入数据:
create database jdbctest;
use jdbctest;
create table user(
uid int primary key auto_increment,
username varchar(20),
password varchar(20),
name varchar(20)
);

插入数据:
insert into user values (null,’aaa’,’111’,’张三’);
insert into user values (null,’bbb’,’222’,’李四’);
insert into user values (null,’ccc’,’333’,’王五’);

Junit是一个单元测试工具,目前在我们的eclipse、idea都可以进行使用
作用:
简化单元测试,写一点测试一点,能够快速定位追踪问题的所在

@Test:测试方法
解释:加了注解的方法可以像主方法一样使用

DriverManager:驱动管理类
主要作用:
注册驱动
实际开发中注册驱动会使用如下方式:
Class.forName(“com.mysql.jdbc.Driver”);
因为之前的加载驱动方式会导致驱动被注册2次
获得连接
Connection conn = DriverManager.getConnection(String url,String username,String password);
url jdbc:mysql://localhost:3306/jdbctest(数据库名字)
jdbc 协议
mysql 子协议
localhost 主机名/127.0.0.1
3306 端口号

url简写:jdbc:mysql:/// jdbctest

Connection 连接对象
主要作用:
创建执行sql语句的对象
Statement createStatement() 执行sql语句,有sql注入的漏洞
preparedstatement preparestatement(String sql) 预编译sql语句 很好的解决sql注入的漏洞
CallableStatement prepareCall(String sql) 执行sql中的存储过程

进行事务的管理
setAutoCommit (Boolean autoCommit) 设置事务是否自动提交
commit() 事务提交
rollback() 事务回滚

Statement 主要就是用来执行sql语句的
主要作用:
执行sql语句
boolean execute(String sql) 执行sql,执行select 语句返回true 否则false
ResultSet executeQuery(String sql) 执行sql中的select语句
int executeUpdate(String sql) 执行sql中的delete insert update语句

执行批处理
addBatch(String sql) 添加到批处理的操作
executeBatch() 执行批处理
clrearBatch() 清空批处理

resultset结果集封装的是select 查询到的数据

resultset结果集
结果集:其实就是查询语句(select)查询的结果的封装
主要作用:
结果集获取查询到的结果。
next() 是否存在下一行数据,如果存在的话就查询出来
针对不同的类型的数据可以使用getxxx获取数据,通过获取的方法:getObject();

jdbc的资源释放
程序运行完,切记在运行中释放资源,
要释放的资源:和数据库有交互的对象
ResultSet
Statement
Connection

为什么要释放?特别是connection对象,是非常稀有的资源
如果不释放:导致系统的宕机
尽量晚创建
尽量早释放

JDBC的CRUD操作
1、向数据库保存记录 insert
2、修改数据库记录的操作;update
3、删除数据库记录的操作 :delete

查询时最难的:
先查询所有记录
再查询一条记录

jdbc工具类的抽取

jdbc的sql注入漏洞

sql注入漏洞的解决
preparedStatement是 Statement的子接口

preparedStatement的使用 对sql进行预编译
保存操作
修改数据
删除数据
查询数据

C3p0数据库连接池使用
c3p0连接池比较常用的,开源的,需要引入jar包

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值