JDBC详解

jdbc

一、jdbc是什么?

Java DateBase connectivity,java数据库连接,java语言连接数据库
JDBC本质:sun公司定义了一套操作所有关系型数据库的规则(接口),各个数据库厂商去实现这套数据库,提供数据库驱动jar包我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。

二、使用步骤

1.导入驱动jar包
*导包到项目目录
*Add As Libraray
2.注册驱动
3.获取数据库连接对象connection
4.定义数据库
5.获取执行数据库语句的对象 Statement
6.执行数据库,接受返回的结果
7.处理结果
8.释放资源

!详解各个对象
1.DriverManager:驱动管理对象
*功能
1.注册驱动:告诉程序使用哪一个数据库驱动jar
static void registDriver(Driver driver):注册于给定的驱动程序 DriverManager。
写代码时使用:class.forName(“com.mysql.Driver”),该类中存在静态代码块
2.获取数据库连接
*方法:static Connection getConnectionn(String url,String user,String password)
*参数:
*url:指定连接的路径
*语法:jdbc:mysql://ip地址(域名):端口号/数据库名称
*例子:jdbc:mysql://localhost:3306/studentmysql
*细节:如果连接的是本机的mysql服务器,且mysql默认端口号是 3306,则url可以写成jdbc:mysql://studentmysql
*user:用户名
*password:密码
2.Connection:数据库连接对象
*功能:
*获取执行sql的对象
*Statement createStatement()
*preparedStatement prepareStatement(String sql)
*管理事务
*开启事务:steAutoCommit(boolean autoCommit)调用该方法设置参数为false,即开启事务(steAutoCommit,自动提交)
*提交事务:commit()
*回滚事务:rollback()
3.Statement:执行数据库的对象
*执行sql
*boolean execute(String sql):可以执行任意的sql
*int executeUpdate(String sql):执行DML(insert\delete\update)语句,DDL(create\drop\alter)
*返回值:影响的行数,可以通过影响行数判断DML语句是否执行成功,返回值>0则执行成功,反之则失败。
*RequestSet executeQuery(String sql):执行DQL(select)语句
*案例
![

4.ResultSet:结果对象
* boolean next():游标向下移动一行,判断当前行是否是最后一行末尾(是否有数据),如果是,返回false,否则返回true。
*getXxx():获取数据
*Xxxv:代表数据类型 如:int getInt(),String getString()
*参数:
*int:代表列的编号,从1开始。 如getString(1)
*String:代表列名称。如getDouble(“balance”)
*使用步骤
*游标向下移动一行
*判断是否有数据
*获取数据
*案例

5.PreparedStatement:执行数据库的对象
*SQL注入问题:在拼接SQL时,有一些SQL的特殊关键字参与字符串的拼接,造成安全问题。
*如 用户名:‘xjsinbdslksdd’(随便输入的),密码输入:a’ or a’=‘a’
*sql:select *from user where username=‘xjsinbdslksdd’ and password =a’ or a’=‘a’,表达式为恒等式true
*解决SQL注入问题:使用PreparedStatement对象解决
*预编译的SQL:参数使用?作为占位符
*使用步骤:
*导入驱动jar包
*注册驱动
*获取数据库连接对象connection
*定义数据库
注意:sql的参数使用?作为占位符。如:selectfrom user where username= ? and password =?;
*获取执行数据库语句的对象 prepareStatement Connection.prepareStatement(String sql)
*给?赋值
*方法:setXxx(参数1,参数2)
*参数1:?的位置编号,从1开始
*参数2:?的值
*执行数据库,接受返回的结果,不需要传递sql语句
*处理结果
*释放资源

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值