




免费预览已结束,剩余16页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Spring3.0.6 +mybatis 3.0.6搭建Spring:上个星期天开始做老师给的东西,这次打算用上刚学习了得MyBatis,然后就还想要要能上JAVA里面很强大的很好用的Spring框架,但是我以前也没有学过,直接是硬着头皮来做的。因为我采用的是mybatis-3.0.6-bundle+spring-3.0.6.RELEASE这两个版本的整合,都比较新,所以网上资料还是很少的。所以遇到了很多问题,故作此次总结,希望以后能帮助到各位。准备工作:1. 工欲善其事必先利其器,首先我们需要准备好我们需要的东西。列表如下:文件说明spring-framework-3.0.6.RELEASE-with-docs.zipSpring的开发框架mysql-connector-java-5.1.13-bin.jarMysql的驱动包commons-logging-1.1.1-bin.zipSpring开发的依赖包,这个包很重要,我刚开始的时候因为这个包没有加入,一直启动tomcat出错。mybatis-3.0.6-bundle.zipMybatis的开发框架mybatis-spring-1.0.3-SNAPSHOT-bundleMybatis和spring的整合包。因为spring3.0比mybatis3.0早出来,所以spring3.0并不支持mybatis3.0。所以这个包是mybatis出的,为了让spring3.0支持mybatis3.0Commons-dbcp.jar这两个是spring的数据源支持包。就是为了在spring中使用数据源。Commons-pool.jarjakarta-log4j-1.2.8.zip日志记录包上面的东西大家都可以去官网下载,我就不给地址了,一个个的google吧,肯定能下到的。2. 解压spring-framework-3.0.6.RELEASE-with-docs.zip,找到dist目录,下面的就是spring会用到的jar包了,具体jar包得作用如下:org.springframework.aop-3.0.6.RELEASESpring的面向切面编程,提供AOP(面向切面编程)实现org.springframework.asm- 3.0.6.RELEASESpring独立的asm程序,Spring2.5.6的时候需要asmJar 包3.0.6开始提供他自己独立的asmJarorg.springframework.aspects- 3.0.6.RELEASESpring提供对AspectJ框架的整合org.springframework.beans-3.0.6.RELEASESpringIoC(依赖注入)的基础实现org.springframework.context.support-3.0.6.RELEASESpring-context的扩展支持,用于MVC方面org.springframework.context-3.0.6.RELEASESpring提供在基础IoC功能上的扩展服务,此外还提供许多企业级服务的支持,如邮件服务、任务调度、JNDI定位、EJB集成、远程访问、缓存以及各种视图层框架的封装等org.springframework.core-3.0.6.RELEASESpring3.0.6的核心工具包org.springframework.expression-3.0.6.RELEASESpring表达式语言org.springframework.instrument.tomcat-3.0.6.RELEASESpring3.0.6对Tomcat的连接池的集成org.springframework.instrument-3.0.6.RELEASESpring3.0.6对服务器的代理接口org.springframework.jdbc-3.0.6.RELEASE对JDBC的简单封装org.springframework.jms-3.0.6.RELEASE为简化JMS API的使用而作的简单封装org.springframework.orm-3.0.6.RELEASE整合第三方的ORM框架,如hibernate,ibatis,jdo,以及 spring的JPA实现org.springframework.oxm-3.0.6.RELEASESpring 对Object/XMl的映射支持,可以让Java与XML之间来回切换org.springframework.test-3.0.6.RELEASE对Junit等测试框架的简单封装org.springframework.transaction-3.0.6.RELEASE为JDBC、Hibernate、JDO、JPA等提供的一致的声明式和编程式事务管理org.springframework.web.portlet-3.0.6.RELEASE基于protlet的MVC实现org.springframework.web.servlet-3.0.6.RELEASE基于servlet的MVC实现org.springframework.web.struts-3.0.6.RELEASE整合Struts的时候的支持org.springframework.web-3.0.6.RELEASESpringWeb下的工具包搭建Spring步骤:3. 在myeclipse中新建一个web项目,名字叫做TestSpring2,为了省事,直接将上面所有的spring的jar包导入lib文件夹。具体也可以根据上面有选择性的导入。4. 新建spring的配置文件,名字可以随便起,但是要注意,这个文件的路径是需要在web.xml中配置的,我起名叫做ApplicationContext.xml,放在了web-inf目录下,内容如下: 记得如果拷贝这里的内容最好先拷贝到记事本,再拷贝到myeclipse下面去,就不会报错了。5. 找到web.xml文件,打开,加入如下的代码: contextConfigLocation WEB-INF/ApplicationContext.xml org.springframework.web.context.ContextLoaderListener按理来上,做好上面的配置,spring就应该配置好了。但是,如果此时部署到tomcat,在tomcat的config目录中server.xml的最后倒数第三行左右,在这个结束标签之前加入如下配置: Path的值是浏览器的访问项目路径,docBase是项目WebRoot的绝对路径。6. 此时,启动tomcat,会报如下的错误:7. 发生这个错误的原因在于没有导入spring的相关依赖包,现在导入上面罗列的commons-logging-1.1.1.jar包到lib目录。8. 再次启动tomcat,错误消失。9. 测试spring配置正确。这个不一定是必须的,但是为了初步学习一下spring的用法,我举得还是有必要测试一下。测试的方法:我们通过浏览器访问http:/localhost/course/这个地址,然后后台想数据库插入一条数据,表名为TestTable, 建表语句如下:CREATE TABLE testtable ( id int(11) DEFAULT NULL, name varchar(30) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;出入一条id=1,name=”yuanmomo”的数据。10. 先配置spring的数据源,也就是配置数据库的连接。11. 将mysql的驱动包拷贝进lib文件夹,在新建一个properties文件在web-inf文件夹下面,内容如下:driver=com.mysql.jdbc.Driverurl=jdbc:mysql:/localhost:3306/projectsystemuser=rootpassword=root12. 配置spring的配置文件ApplicationContext.xml: 这个里面的value使用了$表达式,中的名称就是上面perties文件中对应的字段名称。但是这个时候需要将Commons-dbcp.jar和Commons-pool.jar导入进lib包下。到这里,Spring的数据源就配置成功了。13. 然后我们写一个vo类 TestTable.java,内容如下:package org.yhb.vo;public class TestTable private int id;private String name;public int getId() return id;public void setId(int id) this.id = id;public String getName() return name;public void setName(String name) = name;14. ITestTableDAO.java这是一个接口文件,如下:package org.yhb.vo.dao;public interface ITestTableDAO public void doInsert();15. ITestTableDAOImpl.java实现类,实现了上面的接口:package org.yhb.vo.impl;import org.springframework.jdbc.core.support.JdbcDaoSupport;import org.yhb.vo.dao.ITestTableDAO;public class ITestTableDAOImpl extends JdbcDaoSupport implements ITestTableDAO /这个类继承了JdbcDaoSupport类public void doInsert() String sql=insert into testtable (id,name) values(1,yuanmomo);this.getJdbcTemplate().execute(sql);16. 在写一个service类,调用该实现类,实现业务逻辑处理:package org.yhb.vo.service;import org.yhb.vo.dao.ITestTableDAO;import org.yhb.vo.impl.ITestTableDAOImpl;public class ITestTableDAOService implements ITestTableDAO private ITestTableDAOImpl testImpl;public ITestTableDAOImpl getTestImpl() return testImpl;/这个setter和重要,setter方式只spring在实现注入的时候调用的方法public void setTestImpl(ITestTableDAOImpl testImpl) this.testImpl = testImpl;public void doInsert() this.testImpl.doInsert();17. 再次配置spring的配置文件ApplicationContext.xml,添加入下列的bean的配置信息:18. 此时可以启动一下tomcat,会发现正常启动,无报错。19. 接下来写一个servlet,TestServlet.java在org.yhb.test包下。代码如下:package org.yhb.test;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.context.ApplicationContext;import org.springframework.web.context.support.WebApplicationContextUtils;import org.yhb.vo.service.ITestTableDAOService;public class TestServlet extends HttpServletOverrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException this.doPost(req, resp);Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException /初始化Spring的容器,得到一个ApplicationContext对象 ApplicationContext context=WebApplicationContextUtils.getWebApplicationContext(this.getServletContext(); /从context的得到一个bean,实例化对象ITestTableDAOService dao=(ITestTableDAOService)context.getBean(ITestTableDAOService); System.out.println(开始插入数据.); dao.doInsert(); System.out.println(插入成功!);20. 在web.xml中配置该servlet,如下:testServletorg.yhb.test.TestServlettestServlet/*21. 启动tomcat,无报错,然后用浏览器访问http:/localhost/course/,查看tomcat后台输出结果和数据库的信息 查看以上信息,后台打印正确。查看数据库,插入成功。那么spring的环境就配置成功了。下一讲我将整理出如何将mybatis整合进spring。配置MybatisMyBatis介绍:首先,说说Mybatis这个东西。Mybatis就是是以前ibatIS的升级版,正是在今年(2011年)的6月中旬,在apache寄居6年的ibatIS脱离apache了,将代码托管到Google Code,与此同时改名为mybatis。Mybatis作为一个实现了JPA( Java Persistence API)规范的一门O/R Mapping 框架(对象/关系映射),有着易学易用,轻巧灵活等特点。尤其是对于擅长SQL的开发人员来说,mybatis对SQL和存储过程的直接支持能够让他们在获得mybatis封装优势的同时而不丧失SQL调优的手段,这是Hibernate所无法比拟的。具体来说:1 mybatis封装了绝大多数的JDBC样板代码,使得开发者只需要关注SQL本身而不需要花费精力去处理例如注册驱动,创建Connection,以及确保关闭Connection这样繁琐的代码。2. 学习成本低,最容易上手和掌握的框架。上面已经搭建好了Spring,我现在就来写将mybatis整合进spring整合mybatis1. 首先我们需要导入mybatis-3.0.6.jar和mybatis-spring的整合包mybatis-spring-1.0.3-SNAPSHOT.jar到lib文件夹中2. 编写MyBatis的总配置文件,名字也可以随便取,但是后面也要在spring的配置文件中指定该配置文件的路径。在WEB-INF目录下新建一个文件SqlMapConfig.xml:3. 接下来我们在spring的配置文件中导入该配置文件,并且配置好mybatis在spring中的bean配置,配置后的文件如下:!- /注销刚刚上面Spring的配置配置实现类,注入数据源 配置service类,注入上面的实现类 - 这里需要指明SqlMapConfig.xml文件的路径4. 编写在SqlMapConfig.xml文件中vo类对应的DAO类对应的xml文件。这个xml中定义在这张表上所有进行的CRUD操作的具体SQL语句,也就是实现类在实现所操作的sql语句都是在这个文件里面所读取的。说白了就是一个SQL语句集合的文件。具体模板如下:INSERT INTO MAJORTABLE (MAJORNAME,INCOLLEGE,STARTSELECTDATE,ENDSELECTDATE) VALUES (#majorName,#inCollege,#startSelectDate,#endSelectDate)DELETE FROM MAJORTABLE WHERE MAJORID =#idUPDATE MAJORTABLE SET MAJORNAME=#majorName,INCOLLEGE=#inCollege,STARTSELECTDATE=#startSelectDate,ENDSELECTDATE=#endSelectDate WHERE MAJORID=#majorId; SELECT COUNT(*)FROM MAJORTABLE WHERE ISDELETED=0SELECT MAJORID,MAJORNAME,INCOLLEGE,STARTSELECTDATE,ENDSELECTDATE,ISDELETED FROM MAJORTABLE WHERE MAJORID=#idSELECT MAJORID,MAJORNAME,INCOLLEGE,STARTSELECTDATE,ENDSELECTDATE,ISDELETED FROM MAJORTABLE WHERE ISDELETED=0但是我这次不会写这么多,我只是做个搭建测试,我的TestTable.xml文件内内容如下:INSERT INTO TESTTABLE (ID,NAME) VALUES(#id,#name)这里要注意,MYBATIS 中的 mapper文件中 $ 和 # 有区别的假如mapper中有如下的语句:INSERT INTO COLLEGETABLE (COLLEGENAME ,COLLEGEDESCRIPTION)VALUES ($(#)collegeName,$(#)collegeDescription)a) $表示取值, 那么从mapper文件中读取这个sql语句为:INSERT INTO COLLEGETABLE(COLLEGENAME ,COLLEGEDESCRIPTION) VALUES (aaa,bbbb) 不是问号,而是具体的值这个时候读取的SQL是讲我们的值设置到了sql语句,就没有占位符?b) #表示占位符,那么从mapper文件中读取的该sql语句如:INSERT INTO ANNOUNCEMENT(TITLE,CONTENT) VALUES (?,?)所以搞不好就会报错:Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column aaa in field list5. 重新编写一个ITestTableDAO的实现类ITestTableDAOImpl2.java,这里,我所有的DAO设计有点问题,但是不影响实现,希望大家以后不要像我这样写。我懒得从前面改了。在DAO接口中的时候就把所有方法的参数带上,我这儿没有带上,所以有点难看。package org.yhb.vo.impl;import org.apache.ibatis.session.SqlSession;import org.yhb.vo.TestTable;import org.yhb.vo.dao.ITestTableDAO;public class ITestTableDAOImpl2 i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 环保设备销售合同第三方担保与售后服务协议
- 《养老保障与子女监护权变更的离婚协议》
- 物联网产业园区信息共享与数据交换平台方案
- 土建工程预拌混凝土供应方案
- 矿产资源开发合同中的矿业权抵押担保分析
- 物流企业股权转让与供应链优化合作协议
- 旅游度假区物业挂靠接管与旅游服务协议
- 建筑垃圾处置方案
- 离异双方签署未成年子女房产监护权及抚养费支付协议
- 二手房买卖合同签订前注意事项及法律风险提示
- 金属学第三章
- 人工智能训练师(5级)培训考试复习题库-上(单选题汇总)
- 小学科学-哪杯水热教学课件设计
- 酒店明住宿清单(水单)
- 《中国儿童维生素A、维生素D临床应用专家共识》解读
- 应用技术推广中心 报告1212
- 教学第七章-无机材料的介电性能课件
- 应急值班值守管理制度
- 外国文学史-总课件
- 《中小企业划型标准规定》补充说明
- 房屋租赁信息登记表
评论
0/150
提交评论