MyBatis动态设置表名 获取添加功能自增的主键 自定义映射

勤奋不是嘴上说说而已,而是实际的行动,在勤奋的苦度中持之以恒,永不退却。业精于勤,荒于嬉;行成于思,毁于随。在人生的仕途上,我们毫不迟疑地选择勤奋,她是几乎于世界上一切成就的催产婆。只要我们拥着勤奋去思考,拥着勤奋的手去耕耘,用抱勤奋的心去对待工作,浪迹红尘而坚韧不拔,那么,我们的生命就会绽放火花,让人生的时光更加的闪亮而精彩。

导读:本篇文章讲解 MyBatis动态设置表名 获取添加功能自增的主键 自定义映射,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文


动态设置表名

mapper接口:

在这里插入图片描述

映射文件:

    <!--List<TUser> getUserByTableName(@Param("tableName") String tableName);-->
    <select id="getUserByTableName" resultType="com.yc.mybatis.pojo.TUser">
        select * from ${tableName}
    </select>

注意点:
在这里插入图片描述

这里只能使用${}来接收参数因为sql语句的查询中,表名是不需要单引号的,如果用#{}来接收参数,他会给表名默认带上了单引号,从而使sql语句发生错误,与此不同${}的单引号是要手动添加的,我们在传输表名的时候,只需不给它添加单引号即可


获取添加功能自增的主键

设想假如我们在做一个学生管理系统,在添加老师信息的同时,也要给他分配相应的学生,那是不是我们此时就要把老师自增的id获取出来,存到学生表中,但我们 都清楚,添加语句只能要么不返回数据,要么返回自己影响的行数

mapper接口:

在这里插入图片描述

映射文件:

   <!--void insertUser(TUser user);-->
    <insert id="insertUser" useGeneratedKeys="true" keyProperty="id">
        insert into t_user values (null,#{username},#{password},#{age},#{sex},#{email})
    </insert>

useGeneratedKeys:设置当前标签中的sql使用了自增的主键
keyProperty:将自增的主键的值赋值给传输到映射文件中参数的某个属性

测试代码:

在这里插入图片描述

运行结果:

在这里插入图片描述

自定义映射

为什么要自定义映射呢?
1.实体类与数据库字段名有各自的特点,不能一一对应
2.一对多
3.多对一
那要怎么解决呢?
在这里插入图片描述

解决字段名和属性名不一致的情况

试想一下
实体类是这样:
在这里插入图片描述
数据库确实这样:
在这里插入图片描述

要怎么将数据映射到对应的实体类上面呢?

为字段起别名,保持和属性名的一致

mapper接口:

在这里插入图片描述

映射文件:

  <select id="getAllEmp" resultType="emp">
        select eid,emp_name empName,age,sex,email, from t_emp
    </select>

设置全局配置,保持和属性名的一致

在配置文件中的setting标签中,可以将字段名中的下滑线自动映射成驼峰

    <!--设置MyBatis的全局配置
    mapUnderscoreToCamelCase:将字段名中的下滑线自动映射成驼峰-->
    <settings>

        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>

mapper接口:

在这里插入图片描述

映射文件:

   <select id="getAllEmp" resultType="emp">
        select * from t_emp
    </select>

通过resultMap设置自定义的映射关系

mapper接口:

在这里插入图片描述

映射文件:

在这里插入图片描述
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/141561.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!