注意事项
若是在Maven项目中,将xml、properties等配置文件放在java源码目录下,需要注意加入这个配置。否则报错
java.lang.ExceptionInInitializerError
。MyBatis默认不会自动提交并开启事务,在进行非查询操作时候需要进行
session.commit()
进行提交才会持久化保存更新的数据。设置openSession(true)
,关闭事务并开启自动提交。如果使用接口映射,当写一个新的mapper.xml的时候,要及时在mybatis-config.xml中添加映射。
如果使用注解开发,则需要映射接口。
#{}
和${}
的区别:#{}
会进行预编译,可以一定程度防止sql注入问题。${}
仅只对字符串进行拼接,会有sql注入的风险。
@Param()注解:
- 可以指定一个参数名字,但原来的参数名会不可用。
- SQL语句中引用的就是此注解中的vlaue,所以需要在SQL语句中保持对应。
- 基本类型的参数或者String类型的参数,需要加上此注解。
- 引用数据类型不需要加上此注解。