版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章SpringMVC与MyBatis框架集成回顾Spring3.0拥有自己独立的数据校验框架,同时支持JSR303标准的校验框架。validation-api是JSR303官方驱动包。hibernate-validator是Hibernate对JSR303的封装包。<mvc:annotation-driven/>配置是自动注册SpringMVC所需的驱动,并通过LocalValidatorFactory注入校验框架。在控制器中不仅可以使用ModelAndView对象传参和跳转,还能使用ServletAPI入参。视图层一般使用form标签结合JSTL标签、EL表达式一同使用。本章内容1MyBatisGenerator自动工具2SpringMVC、MyBatis框架整合1使用MyBatisGenerator自动生成源代码2SMM框架整合使用MG工具包,完成数据模
型和数据库访问层代码生成实践练习SpringMVC和MyBatis
整合框架的特点2.MyBatisGenerator简介3.使用MyBatisGenerator
工具自动生成源代码技术讲解讲解时间:30分钟实践时间:60分钟5.1使用Generator自动工具:内容预览5.1.1整合框架的特点使用SpringMVC和MyBatis框架整合是常用的一种项目架构。由于加入了MyBatis框架,而优势更大。简单、灵活、易于扩展。避免了复杂的缓存机制,在程序运行效率方面也得到了相应的提高。Spring3.0注解支持,从而提高程序的开发效率。5.1.2MyBatisGenerator简介MyBatisGenerator它是MyBatis官方提供的工具包,类似于之前所学的Hibernate,通过数据库中的表生成映射文件,它包括Entity、DAO类和MapperXML配置文件。<generatorConfiguration><classPathEntrylocation=""/><contextid=""targetRuntime=""> <commentGenerator> <propertyname="suppressAllComments"value="true"/> </commentGenerator><jdbcConnectiondriverClass=“”connectionURL=“”userId=“” password=“”/> <javaTypeResolver> <propertyname="forceBigDecimals"value="false"/> </javaTypeResolver> <javaModelGeneratortargetPackage=""targetProject=""> <propertyname="enableSubPackages"value="true"/>
<propertyname="trimStrings"value="true"/> </javaModelGenerator> <sqlMapGeneratortargetPackage=""targetProject=""> <propertyname="enableSubPackages"value="true"/> </sqlMapGenerator> <javaClientGeneratortype="XMLMAPPER" targetPackage=""targetProject=""> <propertyname="enableSubPackages"value="true"/> </javaClientGenerator> <tabletableName=""domainObjectName=""></table></context></generatorConfiguration>5.1.2MyBatisGenerator简介Generator结构对关键配置元素和属性进行如下解释:属性名说明classPathEntry连接数据库的驱动包,驱动包通常与配置文件位于同一路径commentGenerator指定生成注解的模板,suppressAllComments=true表示去掉自动生成的代码注释jdbcConnection指定数据库的连接信息javaTypeResolverjava类型转换器javaModelGenerator指定数据模型(实体类)的生成信息(1)targetPackage属性:指定实体类生成的包,如com.mstf.smm.entity(2)targetProject属性:指定实体类实际生成的物理位置,可以配置相对或绝对路径属性名说明sqlMapGenerator指定sqlMapperXML文件的生成路径javaClientGenerator指定DAO类生成的路径table配置反向生成的表信息(1)tablename属性:匹配数据库中的表名(2)domainObjectName属性:自动生成的文件头名称,通常该配置的首字母大写5.1.2MyBatisGenerator简介Generator自动生成要使用Java命令执行生成,才能得到Entity、DAO类和MapperXML配置文件。java-jarmybatis-generator-core.jar-configfileGenerator配置文件-overwrite5.1.3使用Generator工具自动生成源代码本案例使用MyBatis提供的Generator工具包反向生成代码。导入所需要的Jar包文件;编写Generator配置文件属性;最后,使用Java命令执行生成。使用MyBatisGenerator工具自动生成源代码1.在src目录中,创建名为“aotu”的包。导入(复制)所需要的jar包文件。包名说明mybatis-3.1.1.jar所需的驱动mybatis-generator-core-1.3.2.jarGenerator工具包的驱动mysql-connector-java-5.1-bin.jarMySql数据库连接驱动为了降低程序的复杂性,我们将生成时所需的文件统一存放于auto包内。使用Java命令时,文件直接生成到src中。5.1.3使用Generator工具自动生成源代码2.在aotu包中,创建config.xml文件,编写Generator配置文件属性。<generatorConfiguration><classPathEntrylocation="mysql-connector-java-5.1.13-bin.jar"/><contextid="MySqlTables"targetRuntime="MyBatis3"> <commentGenerator> <propertyname="suppressAllComments"value="true"/> </commentGenerator><jdbcConnectiondriverClass=“com.mysql.jdbc.Driver” connectionURL=“jdbc:mysql://localhost:3306/mstf”userId=“root” password=“”/> <javaTypeResolver> <propertyname="forceBigDecimals"value="false"/> </javaTypeResolver> <javaModelGeneratortargetPackage=“com.mstf.smm.entity” targetProject=“../">
MySql驱动连接信息数据模型类,生成位置(包)相对路径的上一层目录5.1.3使用Generator工具自动生成源代码2.在aotu包中,创建config.xml文件,编写Generator配置文件属性。 <propertyname="enableSubPackages"value="false"/> <propertyname="trimStrings"value="true"/> </javaModelGenerator> <sqlMapGeneratortargetPackage="com.mstf.smm.dao" targetProject=“../"> <propertyname="enableSubPackages"value="true"/> </sqlMapGenerator> <javaClientGeneratortype="XMLMAPPER" targetPackage="com.mstf.smm.dao"targetProject=“../"> <propertyname="enableSubPackages"value="true"/> </javaClientGenerator> <tabletableName="customer"domainObjectName="Customer"></table></context></generatorConfiguration>DAO类生产的路径和包MapperXML类生产的路径和包要生产的表名要生产的类名5.1.3使用Generator工具自动生成源代码3.完成后,查看工程的结构。5.1.3使用Generator工具自动生成源代码4.使用java命令,执行配置脚本。打开MS-DOS窗口,将当前路径指向到auto目录下,执行java命令。当最后控制台输出“MyBatisGeneratorfinishedsuccessfully.”时,表示正确生成配置。5.1.3使用Generator工具自动生成源代码5.在工程名上,单击“右键”选择“refrash”刷新工程。此时,工程中会出现两个包,此即为使用Generator工具包生成的结果。5.1.3使用Generator工具自动生成源代码5.生成的文件清单如下:包名说明Customer数据模型(实体)类CustomerExample针对DML语句中where子句的辅助类,非常实用CustomerMapper数据库访问层,它封装了单表的DML操作CustomerMapper.xmlSQL语句的映射文件当我们在MS-DOS窗口重复执行命令时,所有自动生成的java文件都是重新生成、且覆盖以前的文件。但是,Mapper.xml文件不会重新生成,而是将文档内容追加,产生重复的配置代码。此时,再次启动服务器时,控制台会报错。所以,建议同学们重新执行Java命令前,首先要删除现有的Mapper.xml文件。5.1.3使用Generator工具自动生成源代码5.1.4学生实践练习使用MyBatisGenerator工具包,完成数据模型和数据库访问层代码生成。对数据库中,goods表的反向生成。实践时间:60分钟5.1.4学生实践练习在mysql数据库中,创建名为“goods”的商品表。创建Web工程,命名为“goodsProject”。在src目录中,创建auto包。在auto包中,导入(复制)所需要的jar包文件。在aotu包中,创建config.xml文件,编写Generator配置文件属性。在MS-DOS中,执行Java命令完成反向生成。搭建SMM框架,完成商品
信息查询功能实践练习1.Spring3.0在各层中使用的注解2.SMM架构整合搭建和使用技术讲解讲解时间:30分钟实践时间:60分钟5.2SMM框架整合:内容预览5.2.1Spring3.0在各层中使用的注解Spring3.0采用全注解的方式开发,被注解后,不需要使用<bean>进行注入,如此减少了配置环节,提高了开发效率。使用步骤如下:在spring配置文件中,使用<context:component-scan>自动扫描注解,如@Repository、@Autowired等。依次在各层中,使用@Repository、@Service和@Controller注解。在依赖类中,使用@Autowired对接口声明。@Autowired@Autowired注解用于自动装配对象,类似于在applicationContext.xml文件中注入对象。@AutowiredprivateObjectobj;5.2.1Spring3.0在各层中使用的注解1.在web工程中,添加Spring支持,选择CoreLibraries、AOPLibraries、PersistenceCore和WebLibraries支持。其中,PersistenceCore代表对持久化框架的支持,并非特指Hibernate框架,所以需要添加PersistenceCore。SMM架构整合搭建和使用5.2.2SMM架构整合搭建和使用2.在lib文件夹下,导入(复制)所需要的jar包文件。其中,mybatis-spring-1.1.1.jar用于整合所需要的关键包。5.2.2SMM架构整合搭建和使用包名说明commons-dbcp.jarApache提供的DBCP数据源commons-pool-1.5.4.jarDBCP数据源中连接池的实现mybatis-3.1.1.jarMyBatis3.1驱动mybatis-spring-1.1.1.jar由MyBatis提供的Spring被整合包mysql-connector-java-5.1-bin.jarMySql数据库连接驱动jstl.jarJSTL支持standard.jarJSTL支持3.在src目录中,创建MyBatis配置文件。因为架构整合的原因,我们只需要配置Mappers映射即可。5.2.2SMM架构整合搭建和使用sqlMapConfig.xml文件<configuration><mappers> <mapperresource="com/mstf/smm/dao/CustomerMapper.xml"/></mappers></configuration>每个mapper配置一个映射文件路径4.在viewSpace-servlet.xml文件中,添加Spring配置信息。5.2.2SMM架构整合搭建和使用<beansxmlns="/schema/beans" xmlns:xsi="/2001/XMLSchema-instance" xmlns:p="/schema/p"
xmlns:mvc="/schema/mvc" xmlns:context="/schema/context" xmlns:tx="/schema/tx" xmlns:aop="/schema/aop" xsi:schemaLocation="/schema/beans /schema/beans/spring-beans-3.0.xsd
/schema/context
/schema/context/spring-context-3.0.xsd /schema/mvc /schema/mvc/spring-mvc-3.0.xsd /schema/tx /schema/tx/spring-tx-3.0.xsd /schema/aop /schema/aop/spring-aop-3.0.xsd">添加Spring对mvc、context、tx和aop的支持4.在viewSpace-servlet.xml文件中,添加Spring配置信息。5.2.2SMM架构整合搭建和使用<mvc:annotation-driven/> <context:component-scanbase-package="com.mstf.smm"/><beanid="dataSource"class="mons.dbcp.BasicDataSource"><propertyname="driverClassName"value="com.mysql.jdbc.Driver“/><propertyname="url" value="jdbc:mysql://localhost:3306/mstf?useUnicode=true&charact erEncoding=utf-8“/><propertyname="username"value="root"></property><propertyname="password"value=""></property></bean>
<beanid="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean"><propertyname="configLocation"value="classpath:sqlMapConfig.xml"/><propertyname="dataSource"ref="dataSource"></property></bean>自动注册SpringMVC所需的所有驱动配置dbcp数据源,通过数据源管理数据库连接管理MyBatisSession工厂以上四个步骤,可以使用Spring对SpringMVC和MyBatis框架整合过程全部完成。5.2.2SMM架构整合搭建和使用本案例实现对员工信息添加操作,具体步骤如下:在CustomerMapper接口中,添加@Repository注解。在viewSpace-servlet.xml文件中,添加对CustomerMapper的配置信息。在service包中,创建CustomerService业务处理类。添加@service注解,并通过@Autowired实现对数据库访问层的调用。在action包中,创建CustomerController控制器类。处理页面添加请求在WebRoot目录中,创建index.jsp页面,编写注册表单。5.2.2SMM架构整合搭建和使用实现员工信息添加功能1.在CustomerMapper接口中,添加@Repository注解。5.2.2SMM架构整合搭建和使用CustomerMapper.java@RepositorypublicinterfaceCustomerMapper{intcountByExample(CustomerExampleexample);//省略……}2.在viewSpace-servlet.xml文件中,添加对CustomerMapper的配置信息。5.2.2SMM架构整合搭建和使用viewSpace-servlet.xml<beanid="customerMapper“ class="org.mybatis.spring.mapper.MapperFactoryBean"><propertyname="mapperInterface" value="com.mstf.smm.dao.CustomerMapper"/><propertyname="sqlSessionFactory"ref="sqlSessionFactory"/></bean>引入DAO接口,产生DAO实现类,并动态获得sqlSessionFactory对象在注入中,对Mapper(DAO)实施注入,并引用sqlSessionFactoryBean。在项目中,要对每一个Mapper接口分别配置。它们的注入顺序是:dataSource→sqlSessionFactory→xxMapper。3.在service包中,创建CustomerService业务处理类。添加@service注解,并通过@Autowired实现对数据库访问层的调用。5.2.2SMM架构整合搭建和使用CustomerService.java@ServicepublicclassCustomerService{@AutowiredprivateCustomerMappercustomerMapper;
publicintaddCustomers(Customercus){ returncustomerMapper.insert(cus);}}使用@Autowired自动注解4.在action包中,创建CustomerController控制器类。处理页面的添加请求。5.2.2SMM架构整合搭建和使用CustomerController.java@Controller@RequestMapping(value="/")publicclassCustomerColltroller{ @AutowiredprivateCustomerServicecustomerService;
@RequestMapping(value="/reg")publicStringreg(@ModelAttribute("customer")Customercus){ customerService.addCustomers(cus); return"/index.jsp";}}使用@Autowired自动注解5.在WebRoot目录中,创建index.jsp页面,编写注册表单。5.2.2SMM架构整合搭建和使用index.jsp<formaction="reg.form"method="post"><table><tr> <td>姓名:</td> <td><inputname="cusName"type="text"/></td></tr>……<tr> <tdcolspan="2"align="center"> <inputtype="submit"value="添加客户"/></td></tr></table></form>6.在浏览器地址栏中,输入http://localhost:8080/smmProject/index.jsp地址。填写注册表单。7.打开mysql客户端工具,客户信息已经添加到customer表。5.2.2SMM架构整合搭建和使用CustomerMapper只是一个接口,而我们要在Service类中对其进行实例化调用,那么MyBatis是如何做到的呢?5.2.2SMM架构整合搭建和使用在Spring配置中,使用Mapp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度纺织品ODM定制与合作合同
- 2024年建筑工程材料供需协议
- 2024三方合作经营协议合同
- 2024年度环保型涂料生产与销售合同
- 2024年城市基础设施合作合同
- 2024年办公桌租赁协议
- 2024年度体育赛事赞助与推广合同
- 2024年度智慧校园建设与运营合同
- 2024家居装饰墙地砖采购协议
- 2024年建筑安装安全协议
- 【公开课】《农业专题复习》【课件】
- 第7课《大雁归来》课件(共15张ppt) 部编版语文八年级下册
- 培训的方式和方法课件
- 三年级下册口算天天100题(A4打印版)
- 三基选择题(东南大学出版社)
- 2021年大唐集团招聘笔试试题及答案
- DBJ53/T-39-2020 云南省民用建筑节能设计标准
- 2022版义务教育数学课程标准解读课件PPT模板
- 实验五 PCR扩增课件
- 马拉松运动医疗支援培训课件
- 中医药宣传手册
评论
0/150
提交评论