建立SpringMvc工程
更新时间:2023-09-14 06:13:01 阅读量: 初中教育 文档下载
建立SpringMvc工程
1. 配置generatorConfig.xml
自动生成的配置文件,在进行配置中只需要将“数据库驱动包”的位置、“数据库连接”以及表的名称修改即可,具体操作如下:
connectionURL=\password=\ 在这里将连接数据库的语句以及用户名称和密码写好,由于我使用SQLServer连接数据库,所以连接语句如上。 另外需要注意的是:在使用SQLServer连接数据库的过程中,必须使用SQLServer身份认证。 enableCountByExample=\enableSelectByExample=\ 以上语句只需要将数据库的名称和表名称修改成你所连接的数据库名称和表名。 需要注意的是:SQLServer建立表的数据库名称为dbo。 将所有代码修改完成之后,右击“generatorConfig”,点击“Generate Mybatis/iBATIS Atifacts”就会生成dao,model 通过数据库generator Mybatis,Mybatis主要是生成映射文件。通过修改generatorConfig.xml配置文件来生成Mybatis。生成的文件在src文件夹下面的resource下。 指定SQLServer数据库连接的驱动包,修改驱动包的路径。 修改数据库连接的URL和用户名、密码。这样生成的工具才能访问到你的数据库,先通过访问你的数据库,然后通过表结构来生成类文件或者映射文件。 生成模型文件的包名和位置,将一个个的表映射成模型, 生成映射文件的包名和位置, Dao就是mapper,生成映射文件就会生成dao文件,生成dao的包名和位置。 我们在配置table的时候,将哪些表生成类文件或者映射文件,需要映射几个表就写几个,第一个参数是schema,第二个参数是table name,后面的代码是为了解决生成乱码的, 注:java类名称第一个字母要大写。 Dao下面生成的都是映射文件Mapper,有几个表生成几个映射文件,生成的Mapper文件思路就很清晰,在生成的Mapper配置文件 2. 加入Spring和Mybatis的jar包 因为是Sping、Mvc以及Mybatis整合,所以需要将对应的jar包加入进去,要不然项目都起 不来,不添加jar包项目都起不来。 在建立项目的时候要New一个maven project,建立Spring Mvc就是建立一个web项目, 按照习惯你可以在新建一个项目的时候首先修改编码为UTF-8,在属性properties下可以修改, 新建立的maven项目有一个固定的目录,src/main/java,src/test/java以及src/main/resources其中在src/main/java中主要存放java的文件,src/test/java主要存放编译的文件,src/main/resources中主要存放配置文件。 2.1配置pom.xml Pom文件主要用来添加依赖jar包,在这里你需要将spring 在添加jar包的时候,如果运行不成功,出现Missing artifact com.microsoft.sqlserver:sqljdbc4:jar:4.0 错误,说明Maven can't find this artifact in any of the configured,这个时候需要将所需要jar包通过下面的 maven命令将jar包安装到自己的私服上。 Maven 安装 JAR 包的命令是: mvn install:install-file -Dfile=jar包的位置 -DgroupId=上面的groupId -DartifactId=上面的artifactId -Dversion=上面的version -Dpackaging=jar 我的是:mvn install:install-file -Dfile=D:\\yingyongchengxu\\sqljdbc4.jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.0 -Dpackaging=jar 那么我在 cmd 中敲入的命令就应该是: mvn install:install-file -Dfile= D:\\yingyongchengxu\\sqljdbc4.jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.0 -Dpackaging=jar 回车,显示安装成功: 然后在pom.xml配置文件中引用sqljdbc依赖, 运行之后,就会发现pom.xml将sqljdbc引用进来了,同时在Java Resources/Maven Dependencies中就会看到相应的依赖包。 将所需要的所有jar包引用进去就完成了pom文件俄配置。 由于是maven项目,所以在引入jar包就比较方便,打开pom.xml配置文件就可以将所需要的jar包引入进去,用什么jar包引入什么,其它的依赖包自动加入。 打开pom.xml可以看到现有的jar包依赖,如果我们在引入jar包的时候记不住groupId以及version的时候,打开search.maven.org网址,然后将所需要的spring-core.jar包search出来后,选择相应的依赖jar包的xml,将其复制到pom.xml就会引进jar包。如果添加进去的jar包也有依赖,它会自动将其依赖jar包添加进去。 Pom.xml需要添加spring-core.jar、mybatis.jar、因为我们需要将Spring和Mybatis进行整合,所以我们需要引入一个mybatis-spring.jar包来整合,mybatis是一个操作数据库的东西,那我们需要一个连接数据库驱动包,由于我连接的数据库是SQLServer,所以我找的是SQLServer的驱动包,另外我们将Spring与Mybatis整合到一起需要测试一下,我们需要一个测试包 junit.jar包,这个包只有在测试的时候使用,在发布的时候不会使用,我们给这个包添加一个自作用域, 3. Spring配置文件 3.1Spring.xml文件配置 既然是Spring项目,所以肯定有Spring的配置文件,Spring配置文件(需要自己写)的东西很少,就是一个 今天碰到一个奇怪的问题,spring在初始化xml配置文件的时候报错: Cannot find the declaration of element 'beans' spring配置文件原来是这样写的: Xml代码 1. 2. 3. 由于应用会有无互联网的环境下运行,同事将命名空间的引用改成了 org/springframework/beans/factory/xml/spring-beans-2.0.xsd 但不知道为什么在我本地上运行却不行 最后google了好几次才找到原因 Java代码 1. 2. 3. 需要增加“classpath:/” Spring配置文件xsi:schemaLocation无法解析导致启动失败的解决方案 今天向服务器部署一个console java app之后,启动时发现程序出现异常: Exception in thread ?main? org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 10 in XML document from class path resource [app-config.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element ‘beans’. 然后去看看app-config.xml里的schema声明部分,是这样写的: xmlns:context=?http://www.springframework.org/schema/context? xsi:schemaLocation=?http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd? > 很明显,有关’beans’的声明都放在 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd里面了。可能是网络原因,访问不倒导致解析app-config.xml失败,致使程序抛出异常。 打开spring-beans-3.0.1.RELEASE.jar一看,那个xsd文件就在 org.springframework.beans.factory.xml包下面,这下子好办了,把xsd文件的引用全改为本地的就行了: xmlns:context=?http://www.springframework.org/schema/context? xsi:schemaLocation=?http://www.springframework.org/schema/beans classpath:/org/springframework/beans/factory/xml/spring-beans-3.0.xsd http://www.springframework.org/schema/context classpath:/org/springframework/context/config/spring-context-3.0.xsd? > 3.2Spring-Mybatis.xml配置文件 Spring要和Mybatis进行整合,所以需要一个Spring-mybatis.xml配置文件,当然这个名字不是固定你可以自由取,mybatis是处理数据库的,所以首先要整合数据源, 如果在tomcat配置了数据源,那么使用就JNDI方式配置数据源,如果没有用在tomcat配置数据源,那么就得自己在配置文件中自己写一个配置数据源的文件. 在配置映射文件以及dao文件,不需要一个个配置,用包扫描的方式来配置。 在该配置文件,我们需要配置数据源,Mybatis,事务管理器,拦截方式,注解方式,配置druid这些文件。 在配置Spring-mybatis.xml时出现: cvc-elt.1: Cannot find the declaration of element 'beans'错误。 出现此问题 是spring的jar包与applicationContext.xml中xsd的 版本不同 造成的。 版本不同在联网的情况下不会出现此异常,但当网络断开或者使用内部网络时就会出现此异常。 今天在写spring aop示例的时候,在spring.xml文件中添加spring aop的schema后出现红叉,spring配置文件如下: [html] view plaincopy 1. 2. 3. 提示说:cvc-elt.1: Cannot find the declaration of element 'beans', 从网上搜了一些,有的说是因为网络原因访问不到xsd文件,因为访问不到网络上的xsd文件,我们可以访问本地的啊,在引入的spring的包中spring-beans-3.2.2.RELEASE.jar中有spring-beans-3.0.xsd文件,其他的xsd文件也都能在相应的包中找到,这样就好说了,把xsd文件的引用全部改为本地文件: [html] view plaincopy 1. 2. 3. 4. 5. 6. 7. 8. 9. 整合完Spring与Mybatis之后我们先测试一下,我们首先写service接口interface,命名为User,假设我们来查询一个用户,查询用户我们肯定返回一个User,然后写入 Public User getUserById(String idf); 同时我们建立service的实现类UserServiceimpl ,建立UserServiceimpl的时候实现User接口,new—class—interface的Add--找到对应接口。 实现之后,类的代码变成: package com.test.service.impl; import com.test.service.User; public class UserServiceimpl implements User { public User getUserById(String idf) { // TODO Auto-generated method stub return null; } } 我们这个service是要处理一些业务数据后处理数据库的,在mybatis中处理数据库要调用dao,dao就是mapper,dao只写interface不写实现类, 定义一个usermapper的属性,出现错误提醒,这个时候要将对应的包import进来。 要使用mapper那么就需要Spring注入,这个时候我们需要genertor getters and setters,点击source/Genertor Getters and Setters或者按快捷键Alt+Shift+S就会出现Genertor Getters and Setters选项。 生成如下代码: public void setUsermapper(UserMapper usermapper) { this.usermapper = usermapper; } 我们如何将usermapper注入到service里呢? 遇到这种错误Autowired cannot be resolved to a type 3.3Junit测试Spring和Mybatis是否整合成功 在src/test/java下建立一个TestMybatis的class来做一个junit的测试,测试Spring和Mybatis是否整合成功,我们要通过junit测试,其实Spring也提供了一个测试的jar包,通过这个jar包可以很方便的测试Spring, 通过new一个classpath来获得一个Spring的上下文,在这里面填写一个Spring的配置文件,因为我把Spring的配置文件分为Spring.xml和Spring-mybatis.xml两个配置文件, 老式的测试方法写法如下: @test Public void test1(){ ApplicationContext ac=new ClasspathXmlApplicationContext(new String[]{“Spring.xml”,”Spring-mybatis”}) UserService userService=(UserServiceI)ac.getBean(“userService”); User u=userService.getUserById(“”); System.out.println(u); } 这个时候运行JUnit出现错误,需要将aspectj.jar这个jar包添加进去,有一个测试写一个, 有几个得写几个,每个都需要获得Spring的上下文,那么速度很慢,因为Spring在初始化的过程中很慢,为了改进这种办法,在JUnit配置文件中有一个@Before这样一个注解,这个before类是在所有的测试方法执行之前执行的一个类,那么就可以将所有初始化的东西放到前面,这样执行的时候只会执行一次 @Before public void before(){ } 错误: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void com.test.service.impl.UserServiceImpl.setUserMapper(com.test.dao.inter.UserMapper); 说明我们的注解驱动没有扫描进去,那么我们在Spring.xml文件中更改一下扫描路径,可能出现问题,我的问题是: 继续运行,出现错误: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [spring-mybatis.xml]: Invocation of init method failed; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file 3.4SpringMVC配置 测试Spring与Mybatis整合成功之后,导入SpringMvc的jar包,也就是Spring-webmvc.jar包,导入这个jar包之后,肯定有一个spring-mvc的配置文件。 在com.test.controller建立的类,只要再最上面加上controller注解,就可以将该类加入到spring-mvc的上下文中,并知道下面的类为控制器类。 在controller类中光右controller注解是不够的,我们还必须要知道url,controller访问需要加入@RequestMapping(“”);这个东西就是一个访问地址的 问题集锦: 1,遇到The method of type must override a superclass method,提示的是实现类必须实现接口的方法。实现类里面使用了 @Override在1.5下要使用@Override 这个annotation 必须保证 被标注方法来源于class 而不是interface 解决方法: 将项目的jdk从1.5改为1.6及以上 import com.deliver.tools.internal.ws.processor.model.Response; ( package com.deliver.company.filter;)
正在阅读:
建立SpringMvc工程09-14
变电站直流电源系统技术规范04-21
水肥一体化项目汇报材料04-05
中文教师英文求职信范文08-19
政风行风建设学习心得(张强)07-27
2016职称英语理工类B级新增部分04-12
技术研发部岗位说明书12-30
开题报告样本(修订版)05-23
- 二甲基甲酰胺安全技术说明书
- 南邮计算机网络复习题
- 高分子物理实验指导书 - 图文
- 2009.9.25 莞惠环控专业施工图设计技术要求
- 学生工作简报
- 揭阳市斯瑞尔环境科技有限公司废酸综合利用项目可行性研究报告-广州中撰咨询
- 今日靓汤(佘自强)
- 奥数 - 二年级 - 数学 - 第三讲时间的教师版计算答案 - 图文
- 如何命制一份好的物理试卷
- 数据库开题报告
- 禁用未经批准或已经废止或淘汰技术的制度流程
- 大学英语(二)第2阶段测试题
- 湘教版一年级上册美术教案(全)
- (整套)学生顶岗(毕业)实习手册
- 高频 二极管包络检波 - 图文
- 2018届中考英语复习题型四任务型完形填空备考精编含解析 - 186
- 郑煤集团超化煤矿一采区开采设计 - 图文
- 财政学习题
- 摄影摄像复习资料
- SMC D-A93接线方式 - 图文
- SpringMvc
- 建立
- 工程
- 学生自我学习与成长满意度调查
- 处方药营销推广如何创新
- 五年级修改病句讲座分类与百题训练
- 湖南网络工程职业学院
- 2015年6月中南大学网络教育课程考试《基础英语上》复习资料及参考答案
- 汽车行走的艺术教程考试智慧树答案
- 工程招投标与合同管理习题册第三章2010.11..1
- 小学语文六年级下册《两小儿辩日》教学实录
- 会计基础第二章综合练习
- 工程造价毕业设计任务书
- 五年级语文复习题- 瓦房店市轴承小学 网站首页
- 2018版高考语文大一轮复习3古诗文阅读新人教版
- 统计学考试试题
- 食安132班 石玲 220131410 鲜切果蔬的包装材料及包装技术
- 病原生物学与免疫学复习题(附答案)
- 北师大版小学五年级上册语文教学计划
- 国家教育管理信息系统部分系统建设进展情况
- 1-物理化学第一章练习题 - 图文
- 领导视察解说词
- 听说教程3听力原文-新视野大学英语(第二版) - 图文