在编写实体类中,为何int要用Integer类型而不用int的原因
-
int的默认值为0,而Integer默认值为null。
-
数据库中数据存在为空的情况。
-
返回数据库字段值是null的话,int类型会报错。
-
int是基本数据类型,其声明的是变量,而null则是对象。
所以用integer。
MyBatis#和$区别
- #{ }是预编译处理,MyBatis在处理#{ }时,它会将sql中的#{ }替换为?,然后调用PreparedStatement的set方法来赋值,传入字符串后,会在值两边加上单引号,如上面的值 “4,44,514”就会变成“ ‘4,44,514’ ”;
${ }是字符串替换, MyBatis在处理${ }时,它会将sql中的${ }替换为变量的值,传入的数据不会加两边加上单引号。
注意:使用${ }会导致sql注入,不利于系统的安全性!
Mybatis优缺点
-
优点
-
解耦,把sql语句单独摘出来到xml中,实现了代码与sql的分离,也提高了sql的重用性
-
因为封装了jdbc,所以对这种数据库的支持比较好
-
相对于传统的jdbc来说,减少了50%的代码量
-
提供了标签,让实体类和数据库字段可以互相映射
-