orm选型,为什么选择mybatis?

1、JDBC

Class.forName("com.mysql.jdbc.Driver");
Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/demo", "root", "123456");
PreparedStatement pstmt = (PreparedStatement) conn.prepareStatement(sql);
pstmt.setString(1, "");
pstmt.executeUpdate();
pstmt.close();
conn.close();

传统的JDBC做一次数据库操作,需要4个操作,类加载、获取连接、执行sql、关闭连接。 它的工作量大,业务和技术混合在一起,并且需要手动关闭连接。对于使用者来说,它非常不友好。

2、什么是ORM模型?

 orm英文意思是对象关系映射 Object-relation-mapper,简单理解就是将数据库表与java实体对象做一个映射。

 orm的优点:符合面向对象编程;技术与业务解耦,开发时不需要关注数据库的连接与释放;

 常用的orm模型有:hibernate和mybatis,互联网公司一般都使用mybatis。

 hibernate的缺点:全表映射;无法自定义组装sql;对复杂sql的支持弱,对sql调优不友好;不支持存储过程;性能差。

 hibernate的优点:适合小型系统,开发快。

3、mybatis的优缺点

  优点:基于底层sql,sql优化方便;容易学习,高度灵活;

  缺点:代码量大【可利用MGB —— mybatis代码生成器】

4、mybatis的三要素

  mapper.xml、dao接口、entity实体类。

5、mybatis一次连接

  SqlSessionFactoryBuilder:读取配置信息创建SqlSessionFactory,它的生命周期仅仅限于创建。

  SqlSessionFactory:它用来创建Sqlsession。它的生命周期是整个应用,在应用启动时创建,应用停止时消亡。

  Sqlsession:一次sql会话,可以直接发送sql执行,也可以调用dao与mapper映射的sql语句执行,它是线程不安全的,必须保证线程独享。

6、mybatis的配置方式

  基于xml:即编写mapperXml文件。

  基于注解:即利用@Select @Insert @update 等等。 这种方式基本上不使用。它有很多缺点:编写负责,主要是字符串拼接麻烦,不易于编写负责sql语句;如果业务变动,代码调整幅度太大,即不易于扩展,伸缩性差。

原文地址:https://www.cnblogs.com/greys/p/10811839.html