栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

一:Mybatis的基础

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

一:Mybatis的基础

  • JDBC连接数据库
    • JDBC连接的缺点
  • Spring JDBC
    • Spring JDBC 优缺点
  • ORM框架
    • hibernate
    • Mybatis
    • 如何选择ORM框架?

JDBC连接数据库
  Connection conn = null;
        Statement stmt = null;
        Blog blog = new Blog();

        try {
            // 注册 JDBC 驱动
            Class.forName("com.mysql.jdbc.Driver");

            // 打开连接
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis", "root", "123456");

            // 执行查询
            stmt = conn.createStatement();
            String sql = "SELECt bid, name, author_id FROM blog where bid = 1";
            ResultSet rs = stmt.executeQuery(sql);

            // 获取结果集
            while (rs.next()) {
                Integer bid = rs.getInt("bid");
                String name = rs.getString("name");
                Integer authorId = rs.getInt("author_id");
                blog.setAuthorId(authorId);
                blog.setBid(bid);
                blog.setName(name);
            }
            System.out.println(blog);

            rs.close();
            stmt.close();
            conn.close();
        } catch (SQLException se) {
            se.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (stmt != null) stmt.close();
            } catch (SQLException se2) {
            }
            try {
                if (conn != null) conn.close();
            } catch (SQLException se) {
                se.printStackTrace();
            }
        }
JDBC连接的缺点
  1. 手动关闭资源;
  2. 手动处理结果集;
  3. 业务逻辑与数据库操作的代码耦合;
  4. 代码重复
Spring JDBC
  @Autowired
    JdbcTemplate jdbcTemplate;

    @Test
    public void myTest(){
        List list = jdbcTemplate.query("select * from tbl_emp",new EmployeeRowMapper());
        System.out.println(list);
        List list1  = jdbcTemplate.query("select * from tbl_emp", new baseRowMapper(Employee.class));
        System.out.println(list1);
    }
Spring JDBC 优缺点

优点

  1. 方法封装:实现RowMapper接口,数据库字段可转换为实体类
  2. 连接数据源
  3. 映射结果集

缺点
没有解决

  1. SQL硬编码
  2. 参数只能顺序插入
  3. 没有缓存功能
  4. 没有实现实体类到数据库记录的反射
ORM框架

hibernate

hibernate 是重量级关系数据库。
通过hbr.xml 或者 注解 使用。
问题:

  1. 不能指定部分字段
  2. 不支持动态sql
  3. 不支持自定义sql
Mybatis

特性:

  1. 支持连接池
  2. SQL与代码分离,集中管理
  3. 支持参数映射和动态sql
  4. 结果集映射
  5. 缓存管理
  6. 重复sql的提取
  7. 插件机制
如何选择ORM框架?
  1. 简单项目选择hibernate
  2. 需要灵活的sql,可以使用Mybatis
  3. 对性能要求高,可以使用JDBC
  4. Spring JDBC 可以和ORM框架混用
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/439996.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号