05 2016 档案
摘要:简介 springMVC是表现层,service充当业务层,mybatis作为持久层,通过spring将这三层整合起来。如下图: 第一步:整合dao层 mybatis和spring整合,通过spring管理mapper接口。使用mapper的扫描器自动扫描mapper接口在spring中进行注册。
阅读全文
摘要:前面基本介绍了下SpringMVC的运行原理,现在按照前面的原理一步步实现一个简单的程序。先搭建一个简单的web工程,将spring的jar包导入项目中。 前端控制器配置 在web.xml中配置如下: load-on-startup:表示servlet随服务启动; url-pattern:*.act
阅读全文
摘要:简介 springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合。springmvc是一个基于mvc的web框架。 spring的结构图: mvc在b/s下的应用 1、 用户发起request请求至控制器(Controller),控制接收用户请求的数据
阅读全文
摘要:简介 mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper.java,mapper.xml、po..)。企业实际开发中,常用的逆向工程方式:由于数据库的表生成java代码。Hibernate也有逆向工程,这也可以
阅读全文
摘要:问题背景 这段时间在做项目的时候,考虑到Spring中的bean默认是单例模式的,那么当多个线程调用同一个bean的时候就会存在线程安全问题。如果是Spring中bean的创建模式为非单例的,也就不存在这样的问题了。 Spring单例模式与线程安全 Spring框架里的bean,或者说组件,获取实例
阅读全文
摘要:简介 在前面写测试代码的时候,不管是基于原始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
阅读全文
摘要:简介 文件上传和下载是java web中常见的操作,文件上传主要是将文件通过IO流传放到服务器的某一个特定的文件夹下,而文件下载则是与文件上传相反,将文件从服务器的特定的文件夹下的文件通过IO流下载到本地。 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servl
阅读全文
摘要:从上面异常的解释来看是因为反射不能将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
阅读全文
摘要:简介 在现实生活中有很多使用适配器模式的例子,比如:我们电脑需要的是5v的低电压,而生活用电是220V,所以要将200V转为5V才能使用,这就是电源适配器的作用了。通俗的理解就是,一个类的接口不满足客户端的需要,我们需要把它换成客户端需要的接口,使原本因接口不匹配而不能一起工作的两个类可以一起工作了
阅读全文