用eclipse整合SSM框架详解

SSM三层配置分别为:Spring,SpringMVC,Mybaits。

今天呢,把SSM三层框架整合到eclipse里面来,具体我会把配置和依赖都写进来。

呃呃呃,创建MAVEN项目就不用我说了吧,哈哈。

我呢,把所需要的类放在创建的分层里,首先,先来说一下MAVEN配置的依赖文件吧,pom.xml需用到的。


	3.1
	4.3.20.RELEASE
	UTF-8


	
		javax
		javaee-api
		8.0
		provided
	
	
		org.glassfish.web
		javax.servlet.jsp.jstl
		1.2.2
	
	
		org.springframework
		spring-context
		${springframework.version}
	
	
		org.springframework
		spring-webmvc
		${springframework.version}
	
	
		org.springframework
		spring-aspects
		${springframework.version}
	
	
		org.springframework
		spring-jdbc
		${springframework.version}
	
	
		org.springframework
		spring-test
		${springframework.version}
	
	
		mysql
		mysql-connector-java
		5.1.45
	
	
		org.slf4j
		slf4j-log4j12
		1.7.25
		
		
	
	
		org.apache.httpcomponents
		httpclient
		4.5.3
	

	
		org.slf4j
		slf4j-api
		1.7.25
	

	
		org.slf4j
		slf4j-simple
		1.7.25
	
	
		com.mchange
		c3p0
		0.9.5.2
	
	
		com.baomidou
		mybatis-plus
		3.0.5
	
	
		com.fasterxml.jackson.core
		jackson-databind
		2.9.1
	
	
		commons-fileupload
		commons-fileupload
		1.3.3
	
	
		commons-dbutils
		commons-dbutils
		1.6
	
	
		com.sun.mail
		javax.mail
		1.6.2
	
	
		javax.activation
		activation
		1.1.1
	
	
		commons-beanutils
		commons-beanutils-bean-collections
		1.8.3
	
	
		com.alibaba
		fastjson
		1.2.47
	
	
	
            org.apache.commons
            commons-lang3
            3.3.2
        
	
	
		com.github.wxpay
		wxpay-sdk
		0.0.3
	
	
	
		junit
		junit
		4.12
		test
	
	
		org.hamcrest
		hamcrest-library
		1.3
	
	

这是我需要用到的,你们看着使用吧,还可以去网上查找你们需要的版本或者依赖。

建立MAVEN项目后会是类似于下面图片的。
用eclipse整合SSM框架详解_第1张图片
java里面放分层的
用eclipse整合SSM框架详解_第2张图片
resources里面放置配置xml等文件。
用eclipse整合SSM框架详解_第3张图片
先说完配置文件吧。
applicationContext如下:
用eclipse整合SSM框架详解_第4张图片
springMVC如下:
用eclipse整合SSM框架详解_第5张图片
spring-Mybaits如下:
用eclipse整合SSM框架详解_第6张图片
用eclipse整合SSM框架详解_第7张图片
用eclipse整合SSM框架详解_第8张图片

C3P0的配置如下:

#jdbc基本信息
c3p0.driverClass=com.mysql.jdbc.Driver
c3p0.jdbcUrl=jdbc:mysql://localhost:3306/book?useUnicode=true&useSSL=false&characterEncoding=UTF-8&allowMultiQueries=true
c3p0.user=root
c3p0.password=root
#c3p0最基本配置参数为:acquireIncrement、initialPoolSize、maxPoolSize、maxIdleTime、minPoolSize
#配置参照文档:https://www.mchange.com/projects/c3p0/#basic_pool_configuration
#c3p0连接池信息
c3p0.minPoolSize=3
c3p0.maxPoolSize=25
#当连接池中的连接耗尽的时候c3p0一次同时获取的连接数
c3p0.acquireIncrement=3
c3p0.initialPoolSize=7
#定义在从数据库获取新连接失败后重复尝试的次数
c3p0.acquireRetryAttempts=60
#两次连接中间隔时间,单位毫秒
c3p0.acquireRetryDelay=1000
#连接关闭时默认将所有未提交的操作回滚
c3p0.autoCommitOnClose=false
#当连接池用完时客户端调用getConnection()后等待获取新连接的时间,超时后将抛出SQLException,如设为0则无限期等待。单位毫秒
c3p0.checkoutTimeout=3000
#每120秒检查所有连接池中的空闲连接。Default: 0
c3p0.idleConnectionTestPeriod=120
#最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0
c3p0.maxIdleTime=60
#如果设为true那么在取得连接的同时将校验连接的有效性。Default: false
c3p0.testConnectionOnCheckin=true
#JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements属于单个connection而不是整个连接池。
#所以设置这个参数需要考虑到多方面的因素。如果maxStatements与 maxStatementsPerConnection均为0,则缓存被关闭。默认值为  0
c3p0.maxStatements=300
#定义连接池内单个连接所拥有的最大缓存statements数
c3p0.maxStatementsPerConnection=30

log4j的配置如下:

#定义LOG输出级别:
 #ALL输出所有日志,如果换成DEBUG表示输出DEBUG以上级别日志
#log4j.rootLogger的第一个参数DEBUG定义所有日志的级别,第二个以后是定义的引用变量
log4j.rootLogger=DEBUG, stdout, logfile
#定义stdout引用的日志输出目的地为控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
#指定控制台日志输出格式由PatternLayout类进行处理
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#指定日志输出时的具体格式
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

#定义logfile引用的日志输出为每日滚动生成的文件,由DailyRollingFileAppender类进行处理,文件大小到达指定尺寸的时候产生一个新的文件
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
#指定日志文件的输出目录和文件名
log4j.appender.logfile.File=D://log/bookstore.log
#定义日志文件的大小
#log4j.appender.logfile.MaxFileSize=512KB
#定义日志文件生成的数量
#log4j.appender.logfile.MaxBackupIndex=3
#定义日志文件的输出级别
log4j.appender.File.Threshold = DEBUG
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout  
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.logger.com.bs.mall=DEBUG
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.Java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

配置就是这么多,可以根据你们的需求来代入需要的配置。

注意:记得改配置里数据库的地址和自己的用户和密码,我的是本地的,没开的话是连接不上的。

然后分层的是pojo实体类,service是业务逻辑层,dao是数据访问层,controller是请求处理层,而mapper层则是映射。

注意:如果不懂@注解是什么意思的话,可以看看我前面的文章有解释。

从pojo实体类开始吧,我先创建的是一个种类的类,封装起来。

public class Category {
	private String bookCategory;
	public String getBookCategory() {
		return bookCategory;
	}
	public void setBookCategory(String bookCategory) {
		this.bookCategory = bookCategory;
	}
	public Category(String bookCategory) {
		super();
		this.bookCategory = bookCategory;
	}
	public Category() {
		super();
		// TODO Auto-generated constructor stub
	}
	@Override
	public String toString() {
		return "Category [bookCategory=" + bookCategory + "]";
	}
}

加入他的get,set和tostring方法。

然后,在mapper写分类的方法。

public interface AllContentMapper {
//	查询所有的分类
	List selectClassifyById();
} 

接着去mapper.xml映射所需要的sql语句。
用eclipse整合SSM框架详解_第9张图片
注意:这里的resultType可以直接映射到实体类,而parameterType是需要加上resultMap的配置的,我这里是为了方便直接映射到实体类。

接下来是dao接口层的配置:

public interface AllContentDao {
//	查询所有的分类
	List referClassifyByBookId();
}


然后是dao层实现接口的配置:

@Repository
public class AllContentDaoImpl implements AllContentDao {
	@Autowired
	private AllContentMapper acm;
//	查询所有的分类
	@Override
	public List referClassifyByBookId() {
		return acm.selectClassifyById();
	}

然后是service层的接口:

public interface AllContentService {
//	查询所有的分类
	List selectClassifyById();
}

实现service接口的类:

@Service
public class AllContentServiceImpl implements AllContentService {
	@Autowired
	private AllContentDao acd;
//	查询所有的分类
	@Override
	public List selectClassifyById() {
		return acd.referClassifyByBookId();
	}
}

最后,是测试一下是否能够成功运行,在controller层里:

@RestController
public class AllContentController {
	@Autowired
	private AllContentService acs;
//	查询所有的分类
	@GetMapping("selectBook")
	public List findSelectBookCategory(){
		return acs.selectClassifyById();
	}
}

由于我的数据库只有三个类,全都出来了。
在这里插入图片描述

你可能感兴趣的:(框架)