您好,欢迎访问三七文档
MyBatis一、企业框架技术...........................................................................................................................1二、什么是mybatis.........................................................................................................................12.1mybatis最主要的两个文件................................................................................................2三、使用mybatis.............................................................................................................................23.1添加两个配置文件的dtd.................................................................................................23.2创建对应的xml配置文件(demo)...............................................................................33.3mybatis注解的使用...........................................................................................................83.4封装一个简单的获取SqlSession工具类.........................................................................83.5表字段名和类属性名不同时............................................................................................93.6方法需要传入多个参数问题的解决..............................................................................103.7${}和#{}取值问题..............................................................................................................10四、mybatis的配置详解...............................................................................................................114.1configuration配置...........................................................................................................124.2mapper配置....................................................................................................................13五、多表操作.................................................................................................................................174.1配置关联属性..................................................................................................................174.2配置集合关联属性..........................................................................................................19六、动态SQL.................................................................................................................................205.1if的使用............................................................................................................................205.2choose,when,otherwise..................................................................................................205.3where................................................................................................................................215.4foreach..............................................................................................................................21一、企业框架技术MyBatis(Ibatis)--持久层框架(dao)Hibernate--持久层框架(不用写sql语句,开发后跨数据库)Spring–-整个项目业务管理SpringMVC--是Spring项目的一个子项目,用来实现MVC思想的框架Struts2--是实现MVC思想的框架,并非是struts1的迭代。二、什么是mybatis因为java连接数据库的方式只有JDBC技术,所以任何的关于java的持久层框架,都是封装了JDBC代码的。2.1mybatis最主要的两个文件2.1.1configuration配置连接信息、系统环境的配置2.1.2mapper配置sql、映射信息2.2ormorm:对象映射关系mybatis就是一个轻量级的orm框架。三、使用mybatis3.1添加两个配置文件的dtdmybatis-config文件的dtd文件mybatis-mapper文件的dtd文件3.2创建对应的xml配置文件(demo)3.2.1创建表mysql:oracle:3.2.2创建表对应的实体类3.2.3创建mybatis的配置文件(config)配置mysql的环境配置oracle的环境3.2.4创建mybatis的映射文件(mapper)创建对应的dao接口创建mapper映射文件所放的mapper包,放mapper文件在mybatis-config文件中添加mapper的引用3.2.5mybatis的常用APISqlSessionFactoryBuilder读取配置文件的类,用来创建SqlSessionFactory的类。SqlSessionFactory创建sqlsession的工厂SqlSession会话3.3mybatis注解的使用通过注解添加sql语句,不建议这样使用!不方便后期维护!这里仅做演示:mybatis-config文件中3.4封装一个简单的获取SqlSession工具类3.5表字段名和类属性名不同时3.5.1通过取别名让框架封装3.5.2通过取别名让框架封装(建议使用这种方式)3.6方法需要传入多个参数问题的解决3.6.1参数列表是多个值3.6.2如果有多个参数,封装成一个对象传入3.6.3使用map传递多个参数3.7${}和#{}取值问题#{}预编译参数${}直接将参数值放到所定位置所以#{}防止sql注入,而${}不防止sql注入!所以建议使用#{}四、mybatis的配置详解4.1configuration配置4.1.1properties属性4.1.2typeAliases(取别名)4.1.3environments中的environment(环境的配置)a.transactionManager事务管理type的值:JDBC:有问题回滚,无问题提交MANAGED:啥都不干a.dataSource(数据源)type值:UNPOOLED:不使用数据池技术POOLED:使用数据池技术JNDI:将数据连接信息放到服务器或其他地方,使用时提取。PS:使用相关的type值之后,可以配置的属性也是不同的,具体可以配置哪些属性,请看官方文档。4.1.4mappers(配置映射文件信息)4.2mapper配置4.2.1resultMap如果表中字段名和类中属性名不同的时候,需要使用resultMap配置映射关系;以及牵扯到对象之间的关系的时候,也需要使用resultMap进行相关配置,具体看下面的笔记。4.2.2sql标签的使用4.2.3select标签标签中常用的属性:id和接口中的方法名要保持一致parameterType设置接口中方法对应的参数类型resultType设置方法的返回值类型resultMap设置方法的返回值的映射关系4.2.4insert,updateanddelete标签id和接口中的方法名要保持一致parameterType设置接口中方法对应的参数类型resultType设置方法的返回值类型resultMap设置方法的返回值的映射关系a.insert基本插入操作sqlsession对象,默认没有开启事务的自动提交,需要自己手动提交b.insert保存时返回主键c.update/delete五、多表操作取关联属性值的时候,resultType无法将对象中的对象进行映射,需要我们自己配置resultMap。4.1配置关联属性方式一:方式二:方式三:4.2配置集合关联属性第一种方式:第二种方式:这种方式不建议使用,会产生N+1问题!第三种方式:总结:1.直接在标签中配置关联属性的映射2.通过select配置另一个mapper文件中的查询的id3.通过resultMap配置另一个mapper文件中的resultMap映射关系六、动态SQL5.1if的使用5.2choose,when,otherwise5.3where5.4foreach
本文标题:mybatis
链接地址:https://www.777doc.com/doc-5965895 .html