①引入相关的依赖
②一些配置文件给复制到我们的resources文件夹下
例如:jdbc.properties;log4j.xml
③创建mybatis-config核心配置文件
④创建utils包和pojo包和mapper包以及映射文件所对应的包
⑤创建数据库的表
t_emp
t_dept
⑥在pojo创建数据库对应的实体类
也就是创建属性,getset方法和构造器,还有重写toString方法
⑦mapper包下创建接口,看对表有什么操作需求
⑧在配置文件中创建mybatis-mapper,对应mapper接口
①mapper接口:
- /**
- * 根据id查询员工信息
- * @param empId
- * @return
- */
- Emp getEmpByeEmpId(@Param("empId") Integer empId);
②mapper映射文件:
-
- <select id="getEmpByEmpId" resultMap="empResultMap">
- select * from t_emp where emp_id = #{empId}
- select>
③ 测试类
- @Test
- public void testGetEmpByEmpId() {
- SqlSession sqlSession = SqlSessionUtil.getSqlSession();
- EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
- Emp emp = mapper.getEmpByEmpId(1);
- System.out.println(emp);
- }
结果:
由于字段名和属性名不一致,而且没有创建映射关系,java中是驼峰的命名方式,而我们mysql中是下划线的命名方式,所以这时,我们就需要一些操作来将它们进行对应
Emp{empId=null,empName='null',age=20,gender='男'}
字段名和属性名不一致的情况,如何处理映射关系
1.为查询的字段设置别名,和属性名保持一致
2.当字段符合MySQL的要求使用_,而属性符合java的要求使用驼峰
此时可以在Mybatis的核心配置文件中设置一个全局配置,可以自动将下划线映射为驼峰
emp_id--》empId ,emp_name--》empName
3.使用resultMap自定义映射处理
方式一:起别名
select emp_id empId,emp_name empName,age,gender from t_emp where emp_id = #{empId}
方式二: 使用标签进行配置
- <settings>
-
- <setting name="mapUnderscoreToCamelCase" value="true"/>
- settings>
- <select id="getEmpByEmpId" resultType="Emp">
- select * from t_emp where emp_id = #{empId}
- select>
方式三: 设置自定义映射
resultMap:设置自定义映射
属性:
id:表示自定义映射的唯一标识
type:查询的数据要映射的实体类的类型
子标签:
id:设置主键的映射关系
result:设置