广告
返回顶部
首页 > 资讯 > 数据库 >MyBatis中映射文件的使用
  • 557
分享到

MyBatis中映射文件的使用

mybatismysqljava 2023-08-18 07:08:04 557人浏览 薄情痞子
摘要

mybatis中映射文件的使用 1、配置核心文件 ①引入映射文件 ​ 首先我们得在核心配置文件中配置mappers,引入映射文件所在的包 这里必须满足两个条件: 接口和映射文件所在的包必须一致接口的名字和映射文件的名字必须一致

mybatis中映射文件的使用

1、配置核心文件

①引入映射文件

​ 首先我们得在核心配置文件中配置mappers,引入映射文件所在的包

      

这里必须满足两个条件

  • 接口和映射文件所在的包必须一致
  • 接口的名字和映射文件的名字必须一致

在这里插入图片描述

②配置typeAliases

typeAliases:设置类型别名,即为某个具体的类型设置一个别名。在MyBatis的范围中,就可以使用别名表示一个具体的类型。

在核心配置文件中设置typeAliases,在映射文件中则可以直接使用别名。

  • 通过包设置类型别名,指定包下所有的类型将全部有用默认的别名,即类名且不区分大小写 。
  • 要注意标签的先后顺序
        

③配置映射文件

namespace接口的全类名和映射文件namespace一致。

    

3、MyBatis的增删改查

创建数据表

复制进Mysql数据库中运行即可

DROP TABLE IF EXISTS `t_user`;CREATE TABLE `t_user`  (  `id` int(11) NOT NULL AUTO_INCREMENT,  `username` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,  `passWord` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,  `age` int(11) DEFAULT NULL,  `gender` char(2) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,  `email` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,  PRIMARY KEY (`id`) USING BTREE) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Compact;SET FOREIGN_KEY_CHECKS = 1;

在这里插入图片描述

工具

​ 创建一个工具类,每次测试就不用去重新写,直接调用获取返回值即可

    public static sqlSession getSqlSession() {        SqlSession sqlSession = null;        try {            //获取核心配置文件            InputStream is = Resources.getResourceAsStream("MyBatis-config.xml");            //获取SqlSessionFactoryBuilder对象            SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();            //根据核心配置文件对应的输入流获取SqlSessionFactory对象            SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);            //获取SqlSession对象 自动提交            sqlSession = sqlSessionFactory.openSession(true);        } catch (IOException e) {            e.printStackTrace();        }        return sqlSession;    }

添加

首先得在Mapper接口中创建方法

int insertUser();

在映射文件中使用insert标签,标签中的id要与接口中的方法名保持一致。等调用接口中的方法,它会根据mapper接口的全类名找到映射文件,然后会根据我们调用的方法的方法名,来找到当前的sql语句,然后获取当前的sql来执行。

  • 可以将接口的方法写在标签的上方,方便查看。
                insert into t_user        values (null, 'admin', '123456', 23, '男', '12345@qq.com')    

测试代码

    public void testinsert(){        SqlSession sqlSession = sqlSessionUtil.getSqlSession();        UserMapper mapper = sqlSession.getMapper(UserMapper.class);        int i = mapper.insertUser();        sqlSession.close();    }

修改

    update t_user set username='root',password='123'where id = 1

删除

                delete from t_user where id = 1    

查询

查询比较特殊除了得设置id还必须得设置另外一个参数resultType或resultMap

resultType:设置结果类型,即查询的数据要转换为的java的类型
resultMap:自定义映射,处理多对一或一对多的映射关系

resultType中应该写实体类的全类名,但是在核心文件中配置了typeAliases,所以这里可以直接写实体类的名字不区分大小写

     select * from t_user where username = '${username}'

mapper接口方法的参数为单个的字面量类型此时可以通过#{}${}以任意的内容获取参数值,一定要注意${}的单引号问题

多个字面量类型的参数

    select * from t_user where username = #{username} and password = #{password}

mapper接口方法的参数为map集合类型的参数

只需要通过#{}和${}范围map集合的键,

就可以获取相对于的值,一定要注意${}的单引号问题

测试代码

    public void testChekLoginByMap() {        SqlSession sqlSession = sqlSessionUtil.getSqlSession();        userMapper mapper = sqlSession.getMapper(userMapper.class);        Map map = new HashMap();        map.put("username", "admin");        map.put("password", "123456");        User admin = mapper.chekLoginByMap(map);        System.out.println(admin);    }

实体类类型的参数

    insert into t_user values(null,#{username},#{password},#{age},#{gender},#{email})

mapper接口方法的参数为实体类类型的参数

只需要通过#{}和${}访问实体类中的属性名,

就可以获取相对于的属性值,一定要注意${}的单引号问题

使用@Param标识参数

可以在mapper接口将这些参数上设置@param注解

此时MyBatis会将这些参数放在map中,以@Param注解的value属性值为键,以参数为值;

来源地址:https://blog.csdn.net/m0_69044845/article/details/128894184

您可能感兴趣的文档:

--结束END--

本文标题: MyBatis中映射文件的使用

本文链接: https://www.lsjlt.com/news/373675.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作