mybatis一对一

115网盘怎么搜索资源

孤者浪人 提交于 2020-01-23 21:51:43
1、啥是 MyBatis? MyBatis 是一个半自动 ORM 持久层框架,她内部对 JDBC 做了封装,并使用 XML 或注解来配置和映射数据库信息,开发人员只需要关注 SQL 语句本身,避免了处理繁琐的数据库映射过程,使 Java 代码和 SQL 完全分离,有利于分层开发,提高开发效率和灵活性。 2、MyBatis 的优缺点和适用场景? 1)优点 基于SQL语句编程,非常灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL写在XML里,解除SQL与程序代码的耦合,便于统一管理;提供XML标签,支持编写动态SQL语句,并可重用。 与JDBC相比,减少了50%以上的代码量,消除了JDBC大量冗余的代码,不需要手动开关连接; 很好的与各种数据库兼容(因为MyBatis使用JDBC来连接数据库,所以只要JDBC支持的数据库MyBatis都支持)。 能够与Spring很好的集成; 提供映射标签,支持对象与数据库的ORM字段关系映射;提供对象关系映射标签,支持对象关系组件维护。 2)缺点 SQL语句的编写工作量较大,尤其当字段多、关联表多时。 不支持方言,数据库移植性差。 SQL存在XML文件中,调试不方便。 对动态SQL的支持不是很好,提供的标签过于简单。 由于xml里标签id必须唯一,导致DAO中方法不支持方法重载。 3)适用场景 MyBatis 解耦了 SQL 和 程序代码

SSM框架面试题及答案整理

那年仲夏 提交于 2020-01-20 21:26:03
一、Spring面试题 1、Spring 在ssm中起什么作用? Spring:轻量级框架 作用:Bean工厂,用来管理Bean的生命周期和框架集成。 两大核心: ①. IOC/DI(控制反转/依赖注入) :把dao依赖注入到service层,service层反转给action层,Spring顶层容器为BeanFactory。 ②. AOP:面向切面编程 2、Spring的事务? 编程式事务管理:编程方式管理事务,极大灵活性,难维护。 声明式事务管理:可以将业务代码和事务管理分离,用注解和xml配置来管理事务。 3、IOC 在项目中的作用? 作用:Ioc解决对象之间的依赖问题,把所有Bean的依赖关系通过配置文件或注解关联起来,降低了耦合度。 4、Spring的配置文件中的内容? 开启事务注解驱动 事务管理器 开启注解功能,并配置扫描包 配置数据库 配置SQL会话工厂,别名,映射文件 不用编写Dao层的实现类 5、Spring下的注解? 注册:@Controller @Service @Component 注入:@Autowired @Resource 请求地址:@RequestMapping 返回具体数据类型而非跳转:@ResponseBody 6、Spring DI 的三种方式? 构造器注入:通过构造方法初始化 <constructor-arg index="0" type=

SQL语句映射文件(1)resultMap

99封情书 提交于 2020-01-20 08:47:45
SQL 映射XML 文件是所有sql语句放置的地方。需要定义一个workspace,一般定义为对应的接口类的路径。写好SQL语句映射文件后,需要在MyBAtis配置文件mappers标签中引用,例如: Xml代码 <mappers> <mapper resource="com/liming/manager/data/mappers/UserMapper.xml" /> <mapper resource="com/liming/manager/data/mappers/StudentMapper.xml" /> <mapper resource="com/liming/manager/data/mappers/ClassMapper.xml" /> <mapper resource="com/liming/manager/data/mappers/TeacherMapper.xml" /> </mappers> 当Java接口与XML文件在一个相对路径下时,可以不在myBatis配置文件的mappers中声明。 SQL 映射XML 文件一些初级的元素: 1. cache – 配置给定模式的缓存 2. cache-ref – 从别的模式中引用一个缓存 3. resultMap – 这是最复杂而却强大的一个元素了,它描述如何从结果集中加载对象 4. sql –

MyBatis学习 之 二、SQL语句映射文件(1)resultMap

江枫思渺然 提交于 2020-01-20 06:42:49
二、SQL语句映射文件(1)resultMap SQL 映射XML 文件是所有sql语句放置的地方。需要定义一个workspace,一般定义为对应的接口类的路径。写好SQL语句映射文件后,需要在MyBAtis配置文件mappers标签中引用,例如: Xml代码 < mappers > < mapper resource = "com/liming/manager/data/mappers/UserMapper.xml" /> < mapper resource = "com/liming/manager/data/mappers/StudentMapper.xml" /> < mapper resource = "com/liming/manager/data/mappers/ClassMapper.xml" /> < mapper resource = "com/liming/manager/data/mappers/TeacherMapper.xml" /> </ mappers > 当Java接口与XML文件在一个相对路径下时,可以不在myBatis配置文件的mappers中声明。 SQL 映射XML 文件一些初级的元素: 1. cache – 配置给定模式的缓存 2. cache-ref – 从别的模式中引用一个缓存 3. resultMap –

MyBatis学习 之 二、SQL语句映射文件(1)resultMap

落花浮王杯 提交于 2020-01-20 05:39:26
SQL 映射XML 文件是所有sql语句放置的地方。需要定义一个workspace,一般定义为对应的接口类的路径。写好SQL语句映射文件后,需要在MyBAtis配置文件mappers标签中引用,例如: Xml代码 <mappers> <mapper resource="com/liming/manager/data/mappers/UserMapper.xml" /> <mapper resource="com/liming/manager/data/mappers/StudentMapper.xml" /> <mapper resource="com/liming/manager/data/mappers/ClassMapper.xml" /> <mapper resource="com/liming/manager/data/mappers/TeacherMapper.xml" /> </mappers> 当Java接口与XML文件在一个相对路径下时,可以不在myBatis配置文件的mappers中声明。 SQL 映射XML 文件一些初级的元素: 1. cache – 配置给定模式的缓存 2. cache-ref – 从别的模式中引用一个缓存 3. resultMap – 这是最复杂而却强大的一个元素了,它描述如何从结果集中加载对象 4. sql –

MyBatis学习 之 二、SQL语句映射文件(1)resultMap

假如想象 提交于 2020-01-20 04:32:01
二、SQL语句映射文件(1)resultMap SQL 映射XML 文件是所有sql语句放置的地方。需要定义一个workspace,一般定义为对应的接口类的路径。写好SQL语句映射文件后,需要在MyBAtis配置文件mappers标签中引用,例如: Xml代码 < mappers > < mapper resource = "com/liming/manager/data/mappers/UserMapper.xml" /> < mapper resource = "com/liming/manager/data/mappers/StudentMapper.xml" /> < mapper resource = "com/liming/manager/data/mappers/ClassMapper.xml" /> < mapper resource = "com/liming/manager/data/mappers/TeacherMapper.xml" /> </ mappers > 当Java接口与XML文件在一个相对路径下时,可以不在myBatis配置文件的mappers中声明。 SQL 映射XML 文件一些初级的元素: 1. cache – 配置给定模式的缓存 2. cache-ref – 从别的模式中引用一个缓存 3. resultMap –

mybatis注解开发

*爱你&永不变心* 提交于 2020-01-20 00:46:22
MyBatis可以利用SQL映射文件来配置,也可以利用Annotation来设置。MyBatis提供的一些基本注解如下表所示。 注解 目标 相应的XML 描述 @CacheNamespace 类 <cache> 为给定的命名空间(比如类)配置缓存。属性: implemetation,eviction, flushInterval , size 和 readWrite 。 @CacheNamespaceRef 类 <cacheRef> 参照另外一个命名空间的缓存来使用。 属性:value,也就是类的完全限定名。 @ConstructorArgs 方法 <constructor> 收集一组结果传递给对象构造方法。 属性:value,是形式参数的数组 @Arg 方法 <arg> <idArg> 单独的构造方法参数,是ConstructorArgs 集合的一部分。属性:id,column,javaType,typeHandler。 id属性是布尔值,来标识用于比较的属性,和<idArg>XML 元素相似 @TypeDiscriminator 方法 <discriminator> 一组实例值被用来决定结果映射的表 现。属性:Column, javaType , jdbcType typeHandler,cases。 cases属性就是实例的数组。 @Case 方法 <case>

初学MyBatis

℡╲_俬逩灬. 提交于 2020-01-19 01:57:45
期末英语不知道复习什么,就二刷了MyBatis的视频,做个笔记,为以后回顾用吧 SSM框架在web项目中所处的位置 MyBatis MyBatis:所属dao层,简化了数据库操作,使用动态sql让程序员只需要关注sql语句 MyBatis架构图: Part.1 HelloMyBatis:搭建MyBatis HelloWorld项目 Part.2使用MyBatis对表进行增、删、改、查操作; 我的理解:注意参数的映射,以及记得bean中的实体最好复写tostring方法 Part.3 MyBatis Mapper动态代理开发4+1 (4原则+1注意): 1、接口方法名需要与mapper.xml的要调用的sql语句的id一致; 2、接口的形参类型需要与mapper.xml parameterType一致; 3、接口的返回值需要与mapper.xml resultType一致; 4、mapper.xml中namespace要与接口的全包名一致; 5、注意mapper动态代理开发中,根据返回值类型来自动选择; 我的理解:即一个接口对应一个xml文件,语法很重要 Part.4 MyBatis 主配置文件SqlMapConfig.xml说明:(注意顺序) 1、properties(读取配置文件) 2、settings(全局配置参数) 3、typeAliases(类型别名) 4

Mybatis框架基础知识

霸气de小男生 提交于 2020-01-18 09:33:18
mybatis的官方文档网站 https://mybatis.org/mybatis-3/zh/index.html 目录 什么是框架 三层架构和框架 持久层技术解决方案 MyBatis框架概述 mybatis的环境搭建 获取插入数据的id 模糊查询(两种方式) log4j mybatis的参数深入 当表字段与类属性名不一致时的两种解决方案 Properties标签 typeAliases 连接池 mybatis中的连接池 事务(待写) mybatis中的事务 mybatis中的动态sql语句 抽取重复的sql语句 mybatis中的查询 mybatis中一对一的多表查询 mybatis中一对多的查询 mybatis中的延迟加载 一对一的延迟加载 一对多的延迟加载 mybatis中的缓存 mybatis中的一级缓存和二级缓存 一级缓存 二级缓存 mybaits基于注解的配置 主配置文件 CRUD操作 使用延迟加载,一对一关系 使用延迟加载,一对多关系 基于注解开启二级缓存 什么是框架 框架是某种应用的半成品,就是一组组件,是一套解决方案,供你选用完成自己的系统。框架帮你封装了一些细节,开发者可以使用极简的方式实现功能,可以提高程序的开发效率。 三层架构和框架 持久层技术解决方案 JDBC技术: Connection PreparedStatement ResultSet

大剑无锋之不都说面试不问mybatis,为什么我被虐了。。。【mybatis面试题】

廉价感情. 提交于 2020-01-17 02:17:44
1、#{}和${}的区别是什么? 答:${}是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,比如${driver}会被静态替换为com.mysql.jdbc.Driver。 #{}是sql的参数占位符,Mybatis会将sql中的#{}替换为?号,在sql执行前会使用PreparedStatement的参数设置方法,按序给sql的?号占位符设置参数值,比如ps.setInt(0, parameterValue),#{item.name}的取值方式为使用反射从参数对象中获取item对象的name属性值,相当于param.getItem().getName()。 2、Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签? 答:还有很多其他的标签,<resultMap>、<parameterMap>、<sql>、<include>、<selectKey>,加上动态sql的9个标签,trim|where|set|foreach|if|choose|when|otherwise|bind等,其中<sql>为sql片段标签,通过<include>标签引入sql片段,<selectKey>为不支持自增的主键生成策略标签。 3、最佳实践中,通常一个Xml映射文件,都会写一个Dao接口与之对应,请问