使用idea基于创建maven的ssm项目的crud

配置使用机器和文件:
window10,jdk1.8,mysql5.7,连接池druid1.1.5,spring5.0.2.RELEASE全家组合,orm框架使用的mybatis3.4.5(其实版本并不重要主要是考虑到某些版本的兼容性)
假如习惯了eclipse的小伙伴转到idea很容易的,在setting中把快捷键改成eclipse的,使用一段时间后你会发现idea是真的好.
使用idea基于创建maven的ssm项目的crud_第1张图片
首先打开创建页面(别忘点击对勾)
使用idea基于创建maven的ssm项目的crud_第2张图片
选择webapp项目–>点击next
使用idea基于创建maven的ssm项目的crud_第3张图片
进行设置
使用idea基于创建maven的ssm项目的crud_第4张图片
使用idea基于创建maven的ssm项目的crud_第5张图片
经过一段傻瓜点击到达项目初始位置:
使用idea基于创建maven的ssm项目的crud_第6张图片
补充java源代码文件夹
使用idea基于创建maven的ssm项目的crud_第7张图片
将文件夹改为
使用idea基于创建maven的ssm项目的crud_第8张图片
建立好初步的目录
使用idea基于创建maven的ssm项目的crud_第9张图片
最重要的来了:—>配置文件
1.pom.xml
推荐的一种模式我们可以通过properties来控制版本
`


	UTF-8
	5.0.2.RELEASE
	3.4.5




	
	
		org.springframework
		spring-context
		${spring.version}
	
	
		org.springframework
		spring-jdbc
		${spring.version}
	
	
		org.springframework
		spring-webmvc
		${spring.version}
	
	
		org.springframework
		spring-test
		${spring.version}
		test
	
	
	
		org.mybatis
		mybatis
		${mybatis.version}
	
	
	
		org.mybatis
		mybatis-spring
		1.3.0
	

	
	
		mysql
		mysql-connector-java
		5.1.38
		runtime
	
	
	
		com.alibaba
		druid
		1.0.26
	

	
	
		org.aspectj
		aspectjweaver
		1.8.7
	

	
	
		com.fasterxml.jackson.core
		jackson-databind
		2.9.5
	
	
	
		junit
		junit
		4.12
		test
	

	
	
		javax.servlet
		javax.servlet-api
		3.0.1
		provided
	


	
	
		jstl
		jstl
		1.2
	


	
	
		org.slf4j
		slf4j-api
		1.7.21
	
	
		org.slf4j
		slf4j-log4j12
		1.7.21
	

	
	
		org.projectlombok
		lombok
		1.16.6
		compile
	


	
		
		
			org.apache.maven.plugins
			maven-compiler-plugin
			3.5.1
			
				1.8
				1.8
				UTF-8
			
		
		
		
			org.apache.tomcat.maven
			tomcat7-maven-plugin
			2.2
			
				UTF-8
				/
				80
			
		
	

` 我呢刚开始比较low用的是



4.0.0

com.chair
temp
1.0
war

temp Maven Webapp

http://www.example.com


  UTF-8
  1.7
  1.7


  
    junit
    junit
    4.11
    test
  
  
  
    org.junit.jupiter
    junit-jupiter-api
    5.3.1
    test
  
  
    org.junit.platform
    junit-platform-launcher
    1.0.1
    test
  
  
    org.junit.vintage
    junit-vintage-engine
    4.12.1
    test
  
  
  
    org.springframework
    spring-core
    5.0.2.RELEASE
  

  
    org.springframework
    spring-web
    5.0.2.RELEASE
  
  
    org.springframework
    spring-oxm
    5.0.2.RELEASE
  
  
    org.springframework
    spring-tx
    5.0.2.RELEASE
  

  
    org.springframework
    spring-jdbc
    5.0.2.RELEASE
  

  
    org.springframework
    spring-webmvc
    5.0.2.RELEASE
  
  
    org.springframework
    spring-aop
    5.0.2.RELEASE
  

  
    org.springframework
    spring-context-support
    5.0.2.RELEASE
  

  
    org.springframework
    spring-test
    5.0.2.RELEASE
  

  
  
    org.mybatis
    mybatis
    3.4.5
  

  
  
    org.mybatis
    mybatis-spring
    1.3.1
  

  
  
    mysql
    mysql-connector-java
    5.1.6
  

  
  
  
    com.alibaba
    druid
    1.1.5
  

  
    commons-dbcp
    commons-dbcp
    1.4
    
  

  
  
  
    log4j
    log4j
    1.2.17
  

  
  
    commons-fileupload
    commons-fileupload
    1.3.1
  
  
    commons-io
    commons-io
    2.4
  
  
    commons-codec
    commons-codec
    1.9
  

  
  
    com.github.pagehelper
    pagehelper
    4.0.0
  

  
  
    com.thetransactioncompany
    cors-filter
    2.6
  

  
  
    org.aspectj
    aspectjrt
    1.6.11
  
  
    org.aspectj
    aspectjweaver
    1.7.3
  

  
  
    com.mchange
    c3p0
    0.9.5.2
  
  
  
    org.codehaus.jackson
    jackson-mapper-asl
    1.9.12
  
  
    javax.servlet
    servlet-api
    2.5
  
  
  
    javax.servlet
    javax.servlet-api
    4.0.1
    provided
  
  
  
  
    javax.servlet
    jstl
    1.2
  



  temp
  
    
      
        maven-clean-plugin
        3.1.0
      
      
      
        maven-resources-plugin
        3.0.2
      
      
        maven-compiler-plugin
        3.8.0
      
      
        maven-surefire-plugin
        2.22.1
      
      
        maven-war-plugin
        3.2.2
      
      
        maven-install-plugin
        2.5.2
      
      
        maven-deploy-plugin
        2.8.2
      
      
        org.mybatis.generator
        mybatis-generator-maven-plugin
        1.3.2
        
          true
          true
        
      
    
  

  
    
      src/main/java
      
        **/*Mapper.xml
      
    
  



2.确定搭建项目此时还没有配置resources文件
使用idea基于创建maven的ssm项目的crud_第10张图片
(为了避免这里的UserMapper.xml不被编译进target中,所以我们需要在pom.xml中配置这一行:)

  
    
      src/main/java
      
        **/*Mapper.xml
      
    
  

3.配置resources中的文件
首先是applicationContext.xml




    
    

    
    

    
    
    
    
        
        
        
        
    
    
    
        
        
        
        
        
        
        
        
    

    
    
        
    


    


刚刚大家也看到了连接池的一些配置使用idea基于创建maven的ssm项目的crud_第11张图片

请自己创建一个db.properties

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:端口/数据库名字
jdbc.username=用户名
jdbc.password=用户密码

日志记录文件log4j.properties

# Global logging configuration
log4j.rootLogger=ERROR, stdout
# MyBatis logging configuration...
log4j.logger.cn.wolfcode.ssm.mapper=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

在applicationContext.xml中我们看到还有一个mybatis.xml是从外部引入的,这里我们来配置对mybatis的配置




    
        
        
        
        
        
        
    


如果只像先测试一下在spring下的mybatis的crud这里已经配置完成了!!!
为了后序实现tomcat的部署
当然我们是个ssm项目,不能缺少springMVC的配件




	
	

	
	

	
	
	
	
	
		
		
	

配置文件完成!!!
使用idea基于创建maven的ssm项目的crud_第12张图片
当然需要一件事情成功少不了三步,假设源代码已经完成,配置文件也已经配置完成,还有一个就是让配置文件生效的文件.那就是web.xml文件使用idea基于创建maven的ssm项目的crud_第13张图片
这里使用servlet3.0的规范



    

过滤器

  
  
    encodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    
      encoding
      UTF-8
    
    
      forceRequestEncoding
      true
    
  
  
    encodingFilter
    /*
  

使springMVC前端控制器DispatcherServlet生效

  
  
    encodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    
      encoding
      UTF-8
    
    
      forceRequestEncoding
      true
    
  
  
    encodingFilter
    /*
  

把这两个文件内容放入web.xml的便ok了.
这里繁琐的业务逻辑也就是真正的代码部分请自动完成.
这里会发现idea中报出了许多错误
1.dtd约束文件错误
解决方法:我这里提前下载好了,所以选择本地配置
使用idea基于创建maven的ssm项目的crud_第14张图片
点击第一行的加号把URL和File配置好注意这里的URL要和你文件里的一致例如:在这里插入图片描述
1.配置mysql在数据库中的表,例如叫User
2.在domain中配置实体对象User这里属性的数据类型和mysql中相匹配.
使用idea基于创建maven的ssm项目的crud_第15张图片
3.配置dao这里使用mybatis所以在mapper中创建两个文件
UserMapper.java(写方法)接口和UserMapper.xml()
注意事项:
a:接口的类全路径名要和xml的namespace匹配,一个字不能差
b:*Mapper.xml是否便宜到target目录里面(没有的看上文)
c:*Mapper.xml中的方法要和接口中的方法名称类型一模一样
d:查看返回值ResultMap是否配错
这里贴入代码以供参考:




    
    
        
        
    
    
    
		INSERT INTO user (name) VALUES ( #{name})
	
    
    
		UPDATE user SET name = #{name} WHERE id = #{id}
	
    
    
		DELETE FROM user WHERE id = #{id}
	
    
    
    
    

这里idea的人工美学设计会报出一大串警告
解决方法配置mysql;打开选项卡一般就打开了
使用idea基于创建maven的ssm项目的crud_第16张图片
点击Database
使用idea基于创建maven的ssm项目的crud_第17张图片
使用idea基于创建maven的ssm项目的crud_第18张图片
使用idea基于创建maven的ssm项目的crud_第19张图片
还有警告,那就只能最后一招:打开setting搜索inspection
使用idea基于创建maven的ssm项目的crud_第20张图片
使用idea基于创建maven的ssm项目的crud_第21张图片
4.创建个service业务方法包IUserService接口和IUserServiceimpl.java实现类,这里我贴出我的源代码仅供参考:

package com.chair.service.impl;

import com.chair.domain.User;
import com.chair.mapper.UserMapper;
import com.chair.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
@Service
public class IUserServiceImpl implements IUserService {
    @Autowired
    private UserMapper mapper;
    @Override
    public List listAll() {
        List list=mapper.listAll();
        return list;
    }

    @Override
    public void add(User user) {
        mapper.add(user);
    }

    @Override
    public void delete(int id) {
        mapper.delete(id);
    }

    @Override
    public void update(User user) {
        mapper.update(user);
    }

    @Override
    public User selectOne(int id) {
        return mapper.selectOne(id);
    }
}

applicationContext.xml中的


        
    

配置会自动帮我们把Mapper接口给在Spring中声明,这里我们只要在
private UserMapper mapper;的声明上添加@Autowired标签便可以给我们自动注入:
好了我们开始测试吧!!!
因为idea中的junit是自动只能在test中使用的
在这里插入图片描述
在App中测试,先贴上代码

import com.chair.domain.User;
import com.chair.service.IUserService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;

import java.util.List;

@SpringJUnitConfig
@ContextConfiguration(value = "classpath:applicationContext.xml")
public class App {
    @Autowired
    IUserService service;
    @Test
    void testUser(){
        List list = service.listAll();
        for (User user : list) {
            System.out.println(user);
        }
    }
}

这里我用的junit5,因为我们已经在pom.xml中加上了junit5的依赖包


    junit
    junit
    4.11
    test
  
  
  
    org.junit.jupiter
    junit-jupiter-api
    5.3.1
    test
  
  
    org.junit.platform
    junit-platform-launcher
    1.0.1
    test
  
  
    org.junit.vintage
    junit-vintage-engine
    4.12.1
    test

当然junit4的我们把
@SpringJUnitConfig
@ContextConfiguration(value = “classpath:applicationContext.xml”)
改为
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(“classpath:applicationContext.xml”)
并且把test方法全部弄成以public开头的.
使用idea基于创建maven的ssm项目的crud_第22张图片
到这里我们便成功了.
后序的mvc项目敬请关注哦!

你可能感兴趣的:(ssm)