在idea中使用SSM实例(eclipse大致一样)
来源:互联网 发布:mysql 两张表合并 编辑:程序博客网 时间:2024/06/06 02:45
spring + springmvc + mybatis使用实例
申明:开发工具是idea, 个人感觉在eclipse中,ssm更好搭建,可能是因为我刚开始使用idea,在搭建过程中,遇到不少问题。
准备工作: 在数据库中创建一个user表,具体字段可以自己控制
这里用到了mybatis-generator,根据数据库的表,自动生成对应的mapper,dao,实体类等,具体可以查看我的另一篇文章http://blog.csdn.net/fantasic_van/article/details/75269476
1、导包
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.van</groupId> <artifactId>SSM</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>SSM Maven Webapp</name> <url>http://maven.apache.org</url> <properties> <spring.version>4.2.3.RELEASE</spring.version> <!-- mybatis版本号 --> <mybatis.version>3.2.6</mybatis.version> <!-- log4j日志文件管理包版本 --> <slf4j.version>1.7.7</slf4j.version> <log4j.version>1.2.17</log4j.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- spring核心包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.0.0</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> <exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency> <!-- mybatis核心包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <!-- mybatis/spring包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.2</version> </dependency> <!-- 导入Mysql数据库链接jar包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.30</version> </dependency> <!-- 日志文件管理包 --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> <!-- 格式化对象,方便输出日志 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.41</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${slf4j.version}</version> </dependency> <!-- druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.7</version> </dependency> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> </dependencies> <build> <finalName>SSM</finalName> <!-- mybatis generator插件--> <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <configuration> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> </plugin> </plugins> <!--解决idea打包读取不到java文件夹下的xml文件的问题--> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build></project>
2、添加spring和springmvc和mybatis的配置文件
- springmvc.xml
<?xml version="1.0" encoding="UTF-8"?><beans default-lazy-init="true" xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <!--在controller中支持springmvc的注解,不加的话将不支持,注入会失败--> <mvc:annotation-driven/> <context:component-scan base-package="cn.van.controller"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/> </context:component-scan> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean></beans>
- applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd"> <import resource="spring-mybatis.xml"/> <context:component-scan base-package="cn.van.*"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/> </context:component-scan></beans>
- spring-mybatis.xml, 这里用到了mybatis-generator逆向工程,生成相应的dao,mapper,实体类等文件,具体怎么操作,可以查看我的另一篇文章
http://blog.csdn.net/fantasic_van/article/details/75269476
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd"> <!-- 引入配置文件 --> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:jdbc.properties"/> </bean> <!-- 使用阿里巴巴的durid 配置数据源 --> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> <property name="driverClassName" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> <!-- 初始化连接数--> <property name="initialSize" value="${initialSize}"/> <!-- 最大连接数--> <property name="maxActive" value="${maxActive}"/> <!--最大空闲数--> <property name="maxIdle" value="${maxIdle}"/> <!--最小空闲数--> <property name="minIdle" value="${minIdle}"/> <!--最大等待时间--> <property name="maxWait" value="${maxWait}"/> </bean> <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- 自动扫描mapping.xml文件 --> <property name="mapperLocations" value="classpath*:cn/van/mapping/*.xml"/> </bean> <!-- DAO接口所在包名,Spring会自动查找其下的类 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="cn.van.dao" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> </bean> <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!-- 声明式事务 --> <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" /></beans>
- jdbc.properties
driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/vantestusername=rootpassword=123initialSize=0minIdle=1maxIdle=20maxActive=20maxWait=6000
- log4j.properties
### set log levels ####log4j.rootLogger = debug , stdout , D , Elog4j.rootLogger = debug , stdout , D### output to the console ###log4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target = System.outlog4j.appender.stdout.layout = org.apache.log4j.PatternLayout#log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%nlog4j.appender.stdout.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n### Output to the log file ###log4j.appender.D = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File = ${springmvc.root}/WEB-INF/logs/log.loglog4j.appender.D.Append = truelog4j.appender.D.Threshold = DEBUG log4j.appender.D.layout = org.apache.log4j.PatternLayoutlog4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n### Save exception information to separate file ###log4j.appender.D = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File = ${springmvc.root}/WEB-INF/logs/error.log log4j.appender.D.Append = truelog4j.appender.D.Threshold = ERROR log4j.appender.D.layout = org.apache.log4j.PatternLayoutlog4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
- web.xml
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app> <display-name>Archetype Created Web Application</display-name> <!--加载spring容器--> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <!-- log4j--> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>classpath:log4j.properties</param-value> <!--监听器 自定义applicationContext.xml的路径--> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping></web-app>
3、开始测试
- 写一个接口
public interface TestService { void save(User user);}
- 实现类
@Servicepublic class TestServiceImpl implements TestService{//在idea中,注入这个mapper时,在原来的类上,需要加@Repository注解,否则将无法注入,具体原因我也不清楚,因为在eclipse中是不需要的 @Autowired private UserMapper userDao; public void save(User user) { userDao.insert(user); System.out.println("save================="); }}
- 控制器
@Controllerpublic class Hello { @Autowired private TestService testService; @RequestMapping("/test") public String hello(){ return "hello"; } @RequestMapping("save") public String saveUser(){ User user = new User(); user.setId("xxxxx"); user.setUsername("yushan"); user.setPassword("33333"); user.setAge("18"); user.setTel("88888"); System.out.println(user.toString()); testService.save(user); return "hello"; }}
启动项目,到页面请求
查看数据库,发现数据已经插入成功。
其他的方法就不一一测试了,ssm到此完成,最后说一下idea和eclipse中的不同点,
1、在idea中,自动生成的mapper.java,需要加上@Repository注解,否则无法注入
2、自动生成的mapper.xml文件位置问题,可以查看
http://blog.csdn.net/fantasic_van/article/details/75269476欢迎技术交流 QQ 361552730
阅读全文
1 0
- 在idea中使用SSM实例(eclipse大致一样)
- 在Eclipse中使用JUnit4进行单元测试(实例篇)
- [转]在Eclipse中使用JUnit实例
- eclipse中使用springmvc搭建的web项目大致步骤
- 在 Eclipse 中使用IDEA的项目工程
- 原创翻译:在Eclipse中使用jigloo(像JB中使用Design面板一样)第一部分
- 在IntelliJ IDEA上使用Maven搭建SSM框架(一)
- 在IntelliJ IDEA上使用Maven搭建SSM框架(二)
- 在IntelliJ IDEA上使用Maven搭建SSM框架(三)
- 在eclipse中使用tomcat像开发普通JEE项目一样开发RED5项目
- 在Eclipse中框架SSM整合sql server 数据库 中的包含不能使用
- Intellij IDEA使用(十二)—— 使用Intellij IDEA导入Eclipse创建的Spring+SpringMVC+Mybatis(SSM)整合项目并修改相关配置
- 使用idea搭建SSM框架
- 使用IDEA搭建SSM框架
- 在Idea中使用Git
- 在IDEA中使用junit
- 在IDEA中使用Git
- 在ssm项目中使用redisTemplate
- 插入排序
- ubuntu 16.04 更换源
- 端口与服务
- 第三章 线性模型
- [bzoj]1520: [POI2006]Szk-Schools
- 在idea中使用SSM实例(eclipse大致一样)
- JVM高级特性与实践(二):对象存活判定算法(引用) 与 回收
- [计数] 美团 CodeM 复赛 排列
- Eclipse中编写JSP文件时报错 The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build P
- hadoop-2.6.1安装
- Java学习第二天
- 算法设计与分析复习(一):算法和算法分析
- 如何在 Mac 上的 IDEA 上传代码到 GitHub
- JDBC连接Oracle12c