随笔分类 - MyBatis
MyBatis学习
摘要:原本的sql语句为: 需要在其中加入2个属性如下: useGeneratedKeys 要求数据库本身具备主键自动增长的功能,比如说,mysql,sqlserver可以使用useGeneratedKeys =true 这功能, 不支持主键自动增长的数据库是不能使用;keyProperty="tempI
阅读全文
摘要:简介 mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper.java,mapper.xml、po..)。企业实际开发中,常用的逆向工程方式:由于数据库的表生成java代码。Hibernate也有逆向工程,这也可以
阅读全文
摘要:简介 在前面写测试代码的时候,不管是基于原始dao还是Mapper接口开发都有许多的重复代码,将spring和mybatis整合可以减少这个重复代码,通过spring的模板方法模式,将这些重复的代码进行封装,如:获取SqlSessionFactory、SqlSession、SqlSession的关闭
阅读全文
摘要:简介 以前在使用Hibernate的时候知道其有一级缓存和二级缓存,限制ORM框架的发展都是互相吸收其他框架的优点,在Hibernate中也有一级缓存和二级缓存,用于减轻数据压力,提高数据库性能。 mybaits提供一级缓存和二级缓存结构如下图: 可以看出一级缓存是sqlSession级别的,而二级
阅读全文
摘要:简介 在resultMap可以实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载功能。例如:我们查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息。把对用户
阅读全文
摘要:简介 前面说过了简单的数据库查询和管理查询,在开发需求中有一些一对一、一对多和多对多的需求开发,如在开发购物车的时候,订单和用户是一对一,用户和订单是一对多,用户和商品是多对多。这些在Hibernate开发中也是常见的,Hibernate中是通过数据映射来实现的,在MyBatis中也是通过配置文件的
阅读全文
摘要:简介 Mapper.xml映射文件中定义了操作数据库的sql,每个sql是一个statement,映射文件是mybatis的核心。 映射文件中有很多属性,常用的就是parameterType(输入类型)、resultType(输出类型)、resultMap()、rparameterMap()。 pa
阅读全文
摘要:从上面异常的解释来看是因为反射不能将Orders设置到orderdetails属性上,仔细检查了MyBatis的配置文件,发现: 上面的javaType属性的问题,因为这个是一对多,通过反射应该映射为List,但是使用javaType会让MyBatis认为orderdetails属性为Orderde
阅读全文
摘要:简介 SqlMapConfig.xml是MyBatis的全局配置文件,在前面的文章中我们可以看出,在SqlMapConfig.xml主要是配置了数据源、事务和映射文件,其实在SqlMapConfig.xml中还可以配置很多信息,如: 1、properties(属性) 2、settings(全局配置参
阅读全文
摘要:简介 使用Mybatis开发Dao,通常有两个方法,即原始Dao开发方法和Mapper接口开发方法。 主要概念介绍: MyBatis中进行Dao开发时候有几个重要的类,它们是SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession。 SqlSessi
阅读全文
摘要:jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: 从上面可以看出JDBC编程一般要如下步骤: 1、 加载数据库驱动 2、 创建并获取数据库连接 3、 创建jdbc statement对象 4、 设置sql语句 5、 设置sql
阅读全文
摘要:使用mybatis时出现异常问题: 有如下的错误 这个是使用MyBatis最常见的一种错误,从其描述来看是user.insertUser!selectKey这个Statement没有Result Type或Result Map。下面是我的配置文件的statement: 可以看出主要是<selectK
阅读全文