JDBC

本文详细介绍了JDBC连接数据库的步骤,包括注册驱动、创建连接、执行SQL语句以及关闭资源,并讨论了使用PreparedStatement接口以防止SQL注入。此外,文章提到了批处理的效率优势以及JDBC中事务的管理和批处理操作。最后,探讨了数据库连接池如C3P0和Druid的使用,以及Apache DBUtils工具类在简化JDBC操作中的作用。
摘要由CSDN通过智能技术生成

为了访问不同的数据库,提供了一个统一的接口------只需要面向接口编程就可以
相关的类和接口的包java.sql和javax.sql

步骤:

  1. 注册驱动---加载Driver类                     //需要先准备驱动mysql-connector-java-版本-bin.jar,一般会新建libs文件夹放到这里面,把该jar文件加入到项目中
    1. 创建Dirver对象                Dirver dirver = new Dirver();
  2. 获取链接---得到Connection
    1.      String url = "jdbc:mysql://localhost:3306/数据库"
                                   协议            主机    端口   数据库管理系统的具体哪个数据库
    2.      Properties properties = new Properties();           //可以将数据库账号、密码放到Properties对象中
      1.      properties.setProperty("user", "root");              // 用户        key是规定好的:"user"
      2.      properties.setProperty("password", "hsp");      //密码         key是规定好的:"password"
    3.     Connection connect = driver.connect(url, properties);              //获取连接
                    //运行类型com.alibaba.druid.pool.DruidPooledConnection
  3. 执行增删改查---发送sql命令给MySQL
    1.      String sql = "SQL语句";
    2.      Statement statement = connect.createStatement();                  //statement 用于执行静态SQL 语句并返回其生成的结果的对象    //    Statement:接口
    3.      int rows = statement.executeUpdate(sql);                //执行sql语句                    如果是dml 语句,返回的就是影响行数
    4.      ResultSet resultSet = statement .executeQuery(sql);       //执行sqlt语句返回一个结果集对象       结果集:由数据库查询语句生成
                                                   //ResultSet接口对象保存一个光标指向第一行之前:
                                                                              1)next():移动光标到下一行,没有下一行时返回false
                                                                              2)get类型(第几列) :得到光标所在行的指定列的数据
           
  4. 释放资源---关闭相关连接
    1. resultSet.close();                   //若有ResultSet接口对象,用完要关闭
    2. statement.close();
    3. connect.close();

获取连接的5中方式:开发的适合用第5种方式

  1.  new Dirver().connect(url字符串,特定数据的Properties对象 );         //创建驱动对象,通过驱动对象创建连接
    1. 缺点:直接new Dirver类,因为Dirver是第三方的,静态加载----灵活性不强,依赖强
  2. 利用反射:(Dirver)Class.forName(Dirver).newInstance.connect(url字符串,特定数据的Properties对象 )    //利用反射创建驱动对象对象,通过驱动对象创建连接 
    1. 修改了1的缺点:反射是动态加载---更灵活了,依赖性减少了
  3. (Dirver)Class.forName(Dirver).newInstance                       //反射创建Dirver对象
    DirverManager.registerDirver(Dirver对象)          //DirverManager类(管理jdbc驱动程序的)的registerDirver静态方法(注册给定的驱动程序),替代Dirver对象统一管理   //注册驱动
    DirverManager.getConnection(url字符串,用户名,密码)                         //利用DirverManager类的getConnection静态方法获取连接
  4. Class.forName(Dirver)              //使用反射加载Dirver类,自动完成注册驱动:在加载Dirver时,这个类有一段静态代码,该静态代码会默认完成注册驱动
    DirverManager.getConn
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值