Mybatis深入理解

Java语言怎样操作数据库

1.1:简述

sun公司为了帮助程序员更好的操作各种类型数据库。然后提供出统一的接口,我们只许需要调取接口就可以操作数据库,也就是传说的jdbc。这些接口由数据库驱动实现。

1.2:JDBC的具体实现

1.2.1:JDBC执行流程
  1. 加载驱动(前提要导入驱动)
  2. 获取连接(前提数据库账号、密码和名称)
  3. 对sql预编译(前提sql和参数)
  4. 对sql编译(前提参数拼接好的sql)
  5. 结果集遍历(只有查询的时候有这步操作)
  6. 释放资源(使用完要及时释放资源,因为这些资源不能重复利用)
1.2.2:JDBC代码具体实现
  String url = "jdbc:mysql://127.0.0.1:3306/mydb2";
  String user = "root";
  String password = "root";
  String sql = "insert into user(name,gender,salary) values(?,?,?)";
  Connection conn = null;
  PreparedStatement pstmt = null;
  ResultSet rs = null;
  try {
    //注册数据库驱动
    Class.forName(driver);
    //取得数据库连接
    conn = DriverManager.getConnection(url, user, password);
    //进行预编译,这里进行参数设置
    pstmt = conn.prepareStatement(sql);
    pstmt.setString(1,"xiaozheng");
    pstmt.setString(2,"男");
    pstmt.setFloat(3,8000);
    //进行编译
    rs = pstmt.executeQuery();
    while (rs.next()) {
      int id = rs.getInt("id");
      String name = rs.getString("name");
      String gender = rs.getString("gender");
      float salary = rs.getFloat("salary");
      System.out.println(id + ":" + name + ":" + gender + ":"+ salary);
    }
  } catch (Exception e) {
    e.printStackTrace();
  } finally {
    if(rs!=null){//轻量级,创建和销毁rs所需要的时间和资源较小
      try {
        rs.close();
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
    if(stmt!=null){//轻量级,创建和销毁rs所需要的时间和资源较小
      try {
        stmt.close();
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
    if(conn!=null){//重量级,创建和销毁rs所需要的时间和资源较小
      try {
        conn.close();
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
1.2.3:JDBC出现出现问题
  1. 数据库频繁的创建链接和释放链接造成系统资源浪费从而影响系统性能。实用连接池可以解决。
  2. sql都硬编码到Java代码中,不易于后期维护。
  3. 向PreparedStatement设置参数,需要手动的设置参数。从resultset遍历结果集数据时,也存在硬编码 ,不利于后期系统的维护。

1.3:mybatis

1.3.1:mybatis简介

MyBatis是对JDBC进行了简单的封装,帮助用户进行SQL参数的自动设置,以及结果集与Java对象的自动映射。

1.3.2:未完待续

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值