Mybatis映射文件规则实例详解

网友投稿 857 2022-10-11

Mybatis映射文件规则实例详解

Mybatis映射文件规则实例详解

目录1.ORM概念2.映射文件命名规则3.Mybatis的两个一致4.总结创建mybatis的步骤补充:MyBatis_自定义结果映射规则总结

在说明映射文件规则之前,先来回顾一下ORM相关概念。

1.ORM概念

ORM(Object Relationship Mapping)对象关系映射

对象:java的实体类对象

关系:关系型数据

映射:二者之间的对应关系

字段名和属性名要一一对应才可以,它们http://的名字要相同,底层调用的是反射机制

Java概念数据库概念属性列,字段类表对象记录

2.映射文件命名规则

表对应的实体类的类名+Mapper.xml

举例:假如数据库的表的名字是t_user,它对应的实体类是User,那么对应的映射文件为UserMapper.xml

一个映射文件对应一个实体类,对应一张表的操作,调用Mapper中的方法就是来执行SQL

Mybatis映射文件用来写SQL语句,访问和操作表的数据

Mybatis映射文件存放位置是src/main/resources/mappers目录下面

3.Mybatis的两个一致

Mybatis可以面向接口操作数据,如果我们以包为单位引入映射文件,需要有两个一致

① 映射文件的namespace要和mapper接口的全类名一致

当调用Mapper接口中的方法,它会先根据Mapper接口的全类名去找到映射文件,然后根据方法名去找到对应的SQL语句

②映射文件中SQL语句的id要和mapper接口中的方法名一致

4.总结创建mybatis的步骤

创建maven工程在pom.xml中引入相关依赖,比如数据库驱动,mybatis,junit单元测试,log4j日志在src/main/java建包3.1 在pojo包下面创建对应的实体类注:实体类对应数据库表的记录也就是说数据库查询出来的结果要以什么方式返回3.2 在mapper包下面创建mapper接口,里面定义操作数据库中表的相关方法在resources目录下面建mybatis的核心配置文件

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

4.在resources目录下面建立mapper映射文件

5.测试

//加载核心配置文件

InputStream is = Resources.getResourceAsStream("mybatis-config.xml");

//获取SqlSessionFactoryBuilder

SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();

//获取SqlSessionFactory 工厂模式

SqlSessionFactory sqlSessionFactory =hXGHbvlg sqlSessionFactoryBuilder.build(is);

//获取mybatis操作的会话对象

//sqlSession默认是不自动提交事务的,如果我们写上参数true,就代表自动提交

SqlSession sqlSession = sqlSessionFactory.openSession(true);

//获取mapper接口的对象

UserMapper mapper = sqlSession.getMapper(UserMapper.class);

int i = mapper.insertUser();

//提交事务

// sqlSession.commit();

System.out.println("结果:"+i);

补充:MyBatis_自定义结果映射规则

自定义resultMap,实现高级结果集映射

在EmployeeMapperPlus.xml中有:

package com.atguigu.mybatis.dao;

import java.util.List;

import com.atguigu.mybatis.bean.Employee;

public interface EmployeeMapperPlus {

public Employee getEmpById(Integer id);

}

在EmployeeMapperPlus.xml中实现方法:

select * from tbl_employee where id=#{id}

测试:

先把驼峰命名法关了,或者注释掉也可以

@Test

public void test05() throws IOException{

SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();

http:// SqlSession openSession = sqlSessionFactory.openSession();

try{

EmployeeMapperPlus mapper = openSession.getMapper(EmployeeMapperPlus.class);

Employee empById = mapper.getEmpById(1);

System.out.println(empById);

}finally{

openSession.close();

}

}

即使把驼峰命名关了还是可以按照我们自定义的规则封装成功的

总结

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:简简单单用OpenCV让一只小猫咪变成奶凶奶凶的科技猫
下一篇:从0开始配置深度学习环境
相关文章

 发表评论

暂时没有评论,来抢沙发吧~