mybatis

文章目录

    • 1、mybatis、Hibernate有什么异同点
    • 2、mysql数据库连接串中的allowPublicKeyRetrieval的意义
    • 3、mybatis中的 #{} 和 ${#{}方式能够很大程度防止sql注入。因为#{}这种方式SQL语句是经过预编译的,它是把#{}中间的参数转义成字符串。

1、mybatis、Hibernate有什么异同点

相同点:屏蔽JDBC API 的底层访问细节,使我们不用于JDBC API打交道就可以访问数据库
不同点:Hibernate是全自动的ORM映射工具,可以自动生成SQL语句,Mybatis需要在xml配置文件中写SQL语句;因为Hibernate是自动生成SQL语句的,在写复杂查询时,Hibernate实现比Mybatis复杂的多

mybatis:入门简单,程序容易上手开发,节省开发成本 。mybatis需要程序员自己编写sql语句,是一个不完全 的ORM框架,对sql修改和优化非常容易实现 。

mybatis适合开发需求变更频繁的系统,比如:互联网项目。

hibernate:入门门槛高,如果用hibernate写出高性能的程序不容易实现。hibernate不用写sql语句,是一个 ORM框架。

hibernate适合需求固定,对象数据模型稳定,中小型项目,比如:企业OA系统

2、mysql数据库连接串中的allowPublicKeyRetrieval的意义

3、mybatis中的 #{} 和 ${#{}方式能够很大程度防止sql注入。因为#{}这种方式SQL语句是经过预编译的,它是把#{}中间的参数转义成字符串。

  1. #{}方式能够很大程度防止sql注入。因为#{}这种方式SQL语句是经过预编译的,它是把#{}中间的参数转义成字符串。
  2. $方式无法防止Sql注入。因为这种方式是将值传入后再编译sql语句。
  3. $方式一般用于传入数据库对象,例如传入表名。!!!不过这里我们要记住对传入的参数进行过滤处理。
  4. 一般能用#的就别用$.

你可能感兴趣的:(mybatis)