0
点赞
收藏
分享

微信扫一扫

JSP-MyBatis(二)入门补ResultMap映射、Mapper接口实现CRUD

Resin_Wu 2022-02-22 阅读 86


​​一、MyBatis和Hibernate的区别:​​

​​二、定义别名、配置数据库:​​

​​1.当类型名字过长时建议使用​​

​​2.使用properties配置​​

​​三、使用Mapper接口的方式 :​​

​​1.新建UserMapper接口   :​​

​​四、ResultMap映射​​

一、MyBatis和Hibernate的区别:

和hibernate对比,MyBatis​更基础​,要求使用者自己控制的东西更多。

mybatis完成了​基本的一些ORM概念​,但是没有Hibernate那么完善。

要使用mybatis,程序员的关注点更集中于SQL和数据库结构设计。

mybatis没有hibernate使用起来那么面向对象,所以,在使用mybatis的时候,hibernate的一些思想和设计需要改变。

MyBatis的好处:​更底层,对性能控制更有优势​。

细节上:​最大的区别​,MyBatis​没有get 方法​ 只能​selectOnly 去拿

二、定义别名、配置数据库:

1.当类型名字过长时建议使用

JSP-MyBatis(二)入门补ResultMap映射、Mapper接口实现CRUD_xml

2.使用properties配置

1.新建db.properties

2.主配置文件中使用占位符的方式定义数据库连接信息,

JSP-MyBatis(二)入门补ResultMap映射、Mapper接口实现CRUD_xml_02

3.在创建sqlSessionFactory的时候传入properties对象 :

方式一:

JSP-MyBatis(二)入门补ResultMap映射、Mapper接口实现CRUD_hibernate_03

方式二:

直接在主配置文件中添加配置

JSP-MyBatis(二)入门补ResultMap映射、Mapper接口实现CRUD_xml_04

三、使用Mapper接口的方式 :

前门入门的Demo,使用​statementID​的方式存在如下问题:     

1.传入的statement字符串有可能会写错,写错的时候必须​等到运行的时候才发现   ​  

2.传入的参数​无法限定类型

使用Mapper接口的方式:

1.新建UserMapper接口   :

package com.mybatis01;

import java.util.List;

public interface UserMapper {
void save(User u);
void update(User u);
User get(Long id);
List<User> list();
void delete(Long id);
}

 Notes:

 1.接口的全限定名==UserMapper.xml中的namespace   

 2.接口中方法==UserMapper.xml中标签ID     

3.接口方法上的参数==UserMapper.xml中的parameterType   

 4.接口方法上的返回值类型==UserMapper.xml中的resultType

对应的API UserMapper mapper = session.getMapper(UserMapper.class);

分析:

这个时候生成了一个​动态代理类:

JSP-MyBatis(二)入门补ResultMap映射、Mapper接口实现CRUD_数据库_05

通过​Debug Junit​4断点调试可以进入到里面看到 


四、ResultMap映射

当查询出来的字段名和对象中的属性名不一致的情况,就没办法使用resultType来默认映射(​同名规则​)

解决方案: ​使用resultMap来映射数据库中的字段到底注入到对象中什么属性中.

1.在mapper文件中定义resultMap标签:

JSP-MyBatis(二)入门补ResultMap映射、Mapper接口实现CRUD_后端_06

2.在查询标签中使用resultMap=”base_map”

JSP-MyBatis(二)入门补ResultMap映射、Mapper接口实现CRUD_java_07


举报

相关推荐

0 条评论