之前已经搭建好了ss框架,现在接上sm框架搭整合;
1 需要引入几个依赖jar包:
<!--mybatis的依赖--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.1.1</version> </dependency> <!--spring和mybats整合的jar包--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.1.1</version> </dependency>
2 配置XML文件
1⃣️为了扩展和便于管理,将单独配置操作持久层的文件,一个文件一个数据源
上图中:spring-dal-mysql就是我的持久层的配置文件了,如果需要加载到这个文件可以在applicationContext.xml文件中引入:<import resource="spring-dal-mysql.xml"></import>即可。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd" default-lazy-init="true"> <!--destroy-method="close":当数据库连接不使用的时候,就把该连接重新放到数据池中,方便下次使用调用.该连接池是tomcat的--> <bean id="mysqlDataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close"> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> <!--还有一些其他属性需要设置。比如最大连接数,连接时间等等 。。。--> </bean> <!--配置mybatis和spring整合,并自动扫描--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="mysqlDataSource"/> <!--typeAliases 是一个类的数组类型,该配置表示扫描这该包下面的--> <property name="typeAliasesPackage" value="FirstDemo.dao.domain"/> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="FirstDemo.dao.mapper"/> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> </bean> <!--配置事务--> <bean id="mysqlDataSourceTransManage" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="mysqlDataSource"/> </bean> </beans> ps:上面红色标示的参数值(${jdbc.username};${jdbc.password})可是有小技巧的哦。因为这个项目是用maven来管理的,所以下面贴上这个地方的一个小配置,在pom.xml文件中加入:
<!--设置加载不同的配置环境--> <profiles> <profile> <activation> <activeByDefault>true</activeByDefault> </activation> <id>dev</id> <properties> <env>dev</env> </properties> </profile> <profile> <id>test</id> <properties> <env>test</env> </properties> </profile> </profiles> <!--配置可以自动匹配配置文件的信息值--> <build> <finalName>FistSpringMvcPrj</finalName> <!--扫描到到文件到路径,即各个resources中不同后缀文件中的变量的值的配置位置--> <filters> <filter>src/filters/${env}.properties</filter> </filters> <resources> <resource> <directory>src/main/java</directory> <filtering>true</filtering> <includes> <include>**/*.xml</include> <include>**/*.properties</include> <include>**/*.xlsx</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <includes> <include>**/*.xml</include> <include>**/*.properties</include> <include>**/*.xlsx</include> </includes> <excludes> <exclude>**/.svn</exclude> </excludes> </resource> </resources> </build>
3 *mapper.xml 文件的配置,本文中叫:UserMapper.xml .但是还需要一个地方需要注意,就是这个 *mapper.xml 中还需要关联好对应的mapper.java文件,“<mapper namespace="FirstDemo.dao.mapper.UserMapper">” 这句话。不然的话会报错的,见报错。
代码1:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="FirstDemo.dao.mapper.UserMapper"> <!--1 可以配置映射关系--> <!--2 具体的mybatis的sql了,注意这个地方的sql标签的id就是对应的mapper.java文件接口中对应的方法名称--> </mapper>
报错:
15:05:36.343 [RMI TCP Connection(2)-127.0.0.1] ERROR o.m.spring.mapper.MapperFactoryBean - Error while adding the mapper 'interface FirstDemo.dao.mapper.UserMapper' to configuration. org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 8; columnNumber: 1; 文件提前结束。 at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:253) ~[mybatis-3.1.1.jar:3.1.1]
4 几个坑:
jar包版本不一致一般会出现的错误,比如说这里的,因为spring-core的版本应该和其他spring的包保持一致,但是我这里没有,而是低了几个版本,一般报这个错基本是两个原因:1⃣️jar版本不对,2⃣️缺少对应jar包了:
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1633) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1570) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:736) [spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757) [spring-context-4.1.6.RELEASE.jar:4.1.6.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480) [spring-context-4.1.6.RELEASE.jar:4.1.6.RELEASE] at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403) [spring-web-4.1.6.RELEASE.jar:4.1.6.RELEASE] at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306) [spring-web-4.1.6.RELEASE.jar:4.1.6.RELEASE] at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106) [spring-web-4.1.6.RELEASE.jar:4.1.6.RELEASE]
没有在*mapper.xml 中配置对应的namespace:
14:42:14.939 [RMI TCP Connection(2)-127.0.0.1] ERROR o.m.spring.mapper.MapperFactoryBean - Error while adding the mapper 'interface FirstDemo.dao.mapper.UserMapper' to configuration. org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 8; columnNumber: 1; 文件提前结束。
需要加上上面3中红色部门标记的配置,这个制定的是对应的接口的那个mapper.java文件,一般这两个是放在一个包下面的
相关推荐
课程设计期末作业基于ssm框架搭建完成的图书管理系统源码+数据库课程设计期末作业基于ssm框架搭建完成的图书管理系统源码+数据库课程设计期末作业基于ssm框架搭建完成的图书管理系统源码+数据库课程设计期末作业基于...
这个教程将帮助新手快速理解并搭建SSM框架,为后续的项目开发打下基础。 **Spring框架**:Spring是核心的Java企业级应用开发框架,它提供了依赖注入(DI)和面向切面编程(AOP)等功能,使得开发者可以更方便地管理...
这个"SSM框架搭建demo"是为初学者准备的一个实践教程,旨在帮助他们快速理解和掌握如何整合这三大框架,进行实际项目开发。 1. **Spring框架**:Spring是一个全面的Java应用开发框架,核心特性包括依赖注入...
这个"SSM框架搭建学习模板"旨在帮助初学者或开发者快速理解和搭建基于这三个框架的应用程序。下面将详细阐述SSM框架的各个组成部分、它们的功能以及如何进行集成和搭建。 1. Spring框架: Spring是Java企业级应用...
SSM框架搭建视频教程,包含Zookeeper实战课程,文件内含百度云下载链接,请自行下载观看,链接失效时可联系邮箱补发,谢谢,赶快下载吧!!
这个“ssm框架搭建的jar包”很可能包含这三个框架的核心库和其他相关依赖,用于快速构建基于Java的Web应用程序。让我们深入探讨一下SSM框架的主要组件及其在项目中的作用。 1. **Spring框架**:Spring是Java企业级...
这个压缩包文件"ssm_proj"提供了一个基本的SSM框架搭建实例,旨在帮助开发者快速启动一个新的JavaWeb项目。 首先,Spring框架是整个SSM的核心,它提供了依赖注入(Dependency Injection,DI)和面向切面编程...
这个"ssm框架搭建的demo"提供了一个简单易懂的示例,帮助开发者快速理解如何将这三个框架整合在一起。在这个压缩包中,尽管没有提及具体的文件内容,我们可以假设它包含了必要的配置文件、源代码以及可能的测试类,...
SSM框架的搭建通常需要包括Spring、SpringMVC、MyBatis以及它们的依赖库,例如:slf4j、log4j的日志处理库,commons-lang、commons-logging等通用工具库,以及数据库驱动如mysql-connector-java等。 5. **MyBatis ...
基于Java实现的SSM框架整合实战案例 基于Java实现的SSM框架整合实战案例 基于Java实现的SSM框架整合实战案例 基于Java实现的SSM框架整合实战案例 基于Java实现的SSM框架整合实战案例 基于Java实现的SSM框架整合实战...
通过以上步骤,我们就成功地使用Maven搭建了一个基本的SSM框架项目。当然,实际项目中还需要考虑异常处理、安全控制、国际化、日志管理等多个方面,这些都可以通过引入相应的Spring或第三方库来实现。总的来说,SSM...
ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ssm搭建 ...
Dubbo框架和SSM框架搭建。
下面我们将详细探讨SSM框架的搭建过程及其核心组件。 1. **Spring框架**:Spring是Java企业级应用的核心框架,它提供了依赖注入(DI)和面向切面编程(AOP)等特性。在SSM项目中,Spring作为整体架构的容器,管理着...
SSM框架整合是JavaEE开发中的重要组成部分,它包含了Spring、Spring MVC和MyBatis这三个主流的开源框架。这三个框架的结合,为开发者提供了一种高效、灵活且易于管理的Web应用开发解决方案。 首先,Spring框架是...
下面将详细介绍SSM框架的搭建过程以及可能遇到的问题及其解决方案。 **1. 创建项目结构** 一个标准的SSM项目目录结构包括src/main/java(存放Java源代码)、src/main/resources(存放配置文件和静态资源)、src/...
这个"ssm框架搭建"的项目显然旨在为初学者提供一个基础的SSM环境,以便他们能够快速上手并进行实践操作。 **Spring框架**:Spring是Java企业级应用的核心框架,它提供了依赖注入(DI)和面向切面编程(AOP)等核心...
在本项目中,"ssm框架整合redis源码"意味着开发者将SSM框架与Redis缓存系统进行了集成,主要目的是实现session共享。Session共享是Web应用中解决用户会话跨服务器问题的关键技术,尤其是在分布式环境下,确保用户...
SSM框架是Java Web开发中常用的三大框架...总的来说,SSM框架的搭建是一个涉及多方面知识的过程,包括数据库操作、依赖管理、Web开发、持久层处理等。掌握SSM框架的搭建和使用,能为你的Java Web开发提供强大的支持。