文档详情

JavaEE企业级项目开发(第3版)教学课件微课3-11:MyBatis注解配置.pptx

发布:2025-03-06约6.22千字共13页下载文档
文本预览下载声明

主讲人:吴佳云延迟符MyBatis注解配置动态SQL与关联映射

注解配置MyBatis除了XML映射方式,还支持通过注解实现POJO对象和数据表之间的关联映射。MyBatis注解方式就是将SQL语句直接写在接口上。与XML映射方式相比,基于注解的映射方式相对简单且不会增加系统的开销。MyBatis提供了@Select、@Insert、@Update、@Delete和@Param等用于增删改查和传递参数的常用注解。

注解配置在介绍相关注解前,以用户相关信息为场景,准备数据以及对应的java文件。CREATETABLE`tb_user`(

`id`intNOTNULLAUTO_INCREMENT,

`account_name`varchar(45)DEFAULTNULL,

`login_name`varchar(45)DEFAULTNULL,

`password`varchar(45)DEFAULTNULL,

PRIMARYKEY(`id`)

)ENGINE=InnoDB;@Data

publicclassAccountimplementsSerializable{

/**id*/

privateIntegerid;

/**账户名*/

privateStringaccountName;

/**登录名*/

privateStringloginName;

/**密码*/

privateStringpassword;

}数据准备Account.javaAccountMapper.javapublicinterfaceAccountMapper{

}

@Select注解@Select注解用于映射查询语句,其作用等同于XML配置文件中的select元素。使用注解方式我们也需要考虑表字段和JavaBean属性字段的映射问题。在注解方式中,有三种方式来实现字段映射关系。第一种:通过SQL语句使用别名来实现,别名为JavaBean中的属性字段第二种:使用mapUnderscoreToCamelCase配置第三种:使用resultMap方式下面通过如下案例演示@Select注解的使用。

@Select注解使用别名方式@Select(SELECTid,account_nameaccountName,login_nameloginName,passwordfromtb_accountwhereid=#{id})

AccountgetById(Integerid);AccountMapper.java@Test

publicvoidtest1(){

//1.通过工具类生成SqlSession对象

SqlSessionsession=MyBatisUtils.getSession();

AccountMapperaccountMapper=session.getMapper(AccountMapper.class);

//2.根据session查询id=1001的账户信息,并输出信息

Accountaccount=accountMapper.getById(1001);

System.out.println(account);

//3.关闭SqlSession

session.close();

}测试以根据用户id获取用户信息为例,通过使用别名方式实现该功能。

@Select注解使用mapUnderscoreToCamelCase方式在数据库中,由于大多数数据库设置不区分大小写,因此下划线方式的命名很常见,如account_name、login_name。在Java中,一般都使用驼峰命名方式,如accountName、loginName。因此MyBatis还提供了一个全局属性mapUnderscoreToCamelCase,通过配置这个属性为true可以将以下划线方式命名的数据库列映射到Java对象的驼峰式命名属性中,如果想要使用该配置,需要在mybatis-config.xml中增加如下配置。settings

!--开启驼峰功能--

settingname=mapUnderscoreToCamelCasevalue=true/

/settings

@Select注解使用mapUnderscoreToCamelCase方式AccountMapper.java测试以根据登录账号获取用

显示全部
相似文档