Java数据库连接(JDBC)

JDBC:
JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。
快速入门:

  1. 导入驱动jar包,复制到项目中并右键Add as Library
  2. 注册驱动Class.forName(“com.mysql.jdbc.Driver”);
  3. 获取数据库连接对象Connection Connection conn = DriverManager.getConnection
  4. 定义SQL String sql=“UPDATE card SET card=card+500 WHERE NAME=‘li’”;
  5. 获取执行SQL语句的对象Statement
  6. 执行SQL,接受返回结果Statement stmt = conn.createStatement();
  7. 处理结果
  8. 释放资源conn.close(); stmt.close();

详解各个对象:

  1. DriverManager:驱动管理对象
    功能:注册驱动和获取数据库连接
获取数据库连接的静态方法
注册驱动Class.forName("com.mysql.jdbc.Driver");
static Connection getConnection(String ur1,String user,String password);
url:指定连接的路径 jdbc:mysql://ip地址:端口号/数据库名称
  1. Connection:数据库连接对象
获取执行SQL的对象
Statement createStatement();
PreparedStatement PreparedStatement(String sql);

管理事务:
开启事务:void setAutoCommit(boolean autoCommit)参数为false时,表示开启事务
提交事务:commit();
回滚事务:rollback();

  1. Statement:执行SQL的对象
执行SQL
boolean execute(String sql)可以执行任意的SQL语句
int executeUpdate(String sql)执行DML(insert,update,delete),DDL(create,alter,drop)语句,返回值为影响的行数
ResultSet executeQuery(String sql)执行DQL(select)语句
  1. ResultSet:结果集对象
next()游标向下移动一行
getXXX(参数)获取数据
  1. PreparedStatement:执行SQL的对象(比前者强)
    SQL注入问题:在拼接SQL时,有一些SQL的特殊关键字参与字符串的拼接。会造成安全性问题
    解决SQL注入问题:使用PreparedStatement对象来解决
    使用方法:

    1. 定义SQL时,使用?作为占位符 如select * from where username=? and password=?;
    2. 给?赋值:setxxx(参数1,参数2) 参数1为?的位置,从1开始 参数2:?的值
      抽取JDBC工具类:JDBCUtils 简化书写
      分析:
  2. 抽取注册驱动

  3. 抽取一个方法获取连接对象

  4. 抽取一个方法释放资源

JDBC控制事务
使用Connection对象来管理事务:

 1. 开启事务:setAutoCommit(boolean autoCommit)调用该方法设置参数为false,开启事务
 2. 回滚:commit()
 3. 提交:rollback()

数据库连接池
概念:就是一个存放数据库连接的容器(集合),可以节约资源,提高用户的访问效率

C3P0:
实现:导入两个c3p0 jar包和数据库驱动jar包,定义配置文件c3p0-config.xml或者c3p0.properties
标准接口:DataSource
获取DataSource ds=new ComboPooledDataSource();不使用参数为默认配置,参数为指定的配置

java.sql包下的
获取连接:getConnection()
归还连接:如果连接对象Connection是从连接池中获取的,那么调用close方法则会归还连接

Druid:
实现:

  1. 导入druid jar包;
  2. 定义配置文件properties形式的,名字任意;
  3. 加载配置文件 Properties.load(InputStream);
  4. 获取连接池对象DataSource ds=DruidDataSourceFactory.createDataSource(pro);
  5. 使用getConnection获取连接

Spring JDBC:Spring框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发

使用步骤:
1. 导入jar包
2. 创建JdbcTemplate对象。依赖于数据源DataSource
	JdbcTemplate template=new JdbcTemplate(ds);
3. 调用JdbcTemplate的方法来完成CURD的操作
	 - updata()执行DML语句。增删改语句
	 - queryForMap()查询结果将结果集封装为map集合 注意:这个方法查询的结果集长度只能是1
	 - queryForList()查询结果将结果集封装为list集合 将每一条记录封装为Map集合,再将Map集合装载到List集合
	 - query()查询结果,将结果封装为JavaBean对象,一般使用BeanPropertyRowMapper实现类 例子:List<Emp> list=template.query(sql,new BeanPropertyRowMapper<Emp>(Emp.class));
	 - queryForObject()查询结果,将结果封装为对象,一般用于实现聚合函数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

P_xuebuhui

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

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

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

打赏作者

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

抵扣说明:

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

余额充值