mybatis概述:
- 一个持久层操作框架.
Mybatis与hibernate 使用区别:
Hibernate : 可以高度的对jdbc实现封装. 不用编写sql,即可映射操作数据库. 针对复杂的多表关系, 可以方便关联操作.
- 场景: 当业务实体之间关系关联操作时,hibernate擅长处理. 不擅长: 复杂的业务关联关系.
- Mybatis : 其实针对jdbc的完美封装, 保留了jdbc的sql编写方式. 优化了参数绑定,返回值封装等缺点.学习成本低.
主体架构:
SqlMapConfig.xml(核心配置文件) : 体现SqlSessionFactory,SqlSession.
↓
Mapper.xml(动态sql语句实现)
↓
MappedStatement(方便动态加载sql,用于绑定参数,封装返回值).
↓
DB(数据库)
遇到的问题
<!--查询全部-->
<select id="findAllUser" resultType="com.LMX.bean.User" >
select * from tb_user
</select>
本来这样写就可以直接使用 findAllUser();
但是在实验demo中运行代码,发现
寻错未果
于Mybatis 针对jdbc的封装不熟悉,找不到问题所在
后确定问题在于数据库中列名和实体类中属性名不同,然后对jdbc的调用方式不清楚
修改办法
<select id="findAllUser" resultType="com.LMX.bean.User" >
select id,usename as 'username',usepassword as 'password' from tb_user
</select>
修改后结果