什么是mybatis
mybatis是对jdbc技术的封装,简化数据库操作代码。
封装以下功能:
--封装了建立连接,设置参数,执行sql,释放连接的过程。
(提供连接参数,sql,sql的参数)
--封装了查询结果映射成实体对象的过程
(实体类属性名和数据表字段名最好要保持一致)
Emp emp = new Emp( );
emp.setName(rs.getString("name"));
findById --> Emp --> sqlSession.selectOne( );
findAll --> List<Emp> sqlSession.selectList( );
--封装了Sql语句中参数设置的过程(提供sql时,参数想给sql映射,利用#{属性名}替代?)
insert into Emp values(#{属性名},?,?)
ps = conn.preparedStatement(sql);
ps.setString(1,"tom");
开发者使用需要做以下工作
--搭建MyBatis框架环境
--根据数据表定义实体类(名称一致)
--根据操作写sql语句
--利用sqlSession调用操作
MyBatis的结构
MyBatis使用涉及哪些文件
--SqlMapConfig.xml(主配置文件):定义了连接参数,框架参数,加载sql文件
--Sql映射文件(定义sql语句的xml文件)
MyBatis的基本应用
使用sqlsession实现CRUD
sqlSession.selectOne( );
sqlSession.selectList( );
sqlSession.insert( );
sqlSession.update( );
sqlSession.delete( );
Mapper映射器(映射sql操作)
本质:是一个接口规则,如果按照这套规则,定义接口,MyBatis可以根据接口动态生成接口的
实现组件(dao),这样就可以不需要自己写实现类了。
a、sql定义文件里namespace属性指定接口名"包名.接口名"
b、接口定义规则
--方法名需要与Sql定义中的id名称一致
--参数类型与Sql中的paramterType属性一致
--结果映射类型参考resultType属性,类型匹配
如果单行结果,就采用resultType定义类型
如果是多行结果,采用List<resultType>定义类型
使用resultMap等价与resultType,二者选一
不同点:resultMap 开发者可以自定义字段和属性名的对应关系
resultType 是默认字段名和属性名一致
resultMap主要是用来解决字段和属性名不一致的问题
网友评论