SSM知识整合

环境搭建

附:需求工程流程

在这里插入图片描述
1、开发环境的搭建
jdk8 、tomcat7+ eclipse|myeclipse|idea
2、项目环境
创建项目,添加jar包依赖(spring的核心包、springMVC的包、mybatis的包、数据库的驱动包、连接池的包、apache的commons系列、log4加粗样式j系列、语法包jstl):有两种方式
2.1 maven 添加依赖(搭建仓库,引入依赖的地址pom.xml中配置)
2.2 手动本地添加jar包(适合新手)

ssm整合的基础配置

ssm单独开发开发的时候:单独使用spring,需要applicationContext.xml;单独使用springMVC,需要springMVC.xml
单独使用mybatis,需要mybatis.xml文件
所以: 整合的时候,我们还是需要这三个配置文件
创建配置文件:applicationContext.xml、springMVC.xml、mybatis.xml配置文件,配置文件的头部约束和命名空间等
如果是第一次配置,每一个配置文件的官方文档中都带有一个设置好的配置文件,下载即可
ssm框架中spring作用是: 起到对其他框架以及类的管理和粘合: 对象的管理、事务的管理等以及一些其他的开发模式
主要思想:注解、反射、面向切面编程。。。
springMVC:基于servlet的,代替servlet进行前后端的交互,MVC模式进行控制
mybatis: 主要是数据库操作,动态sql语句,二级缓存等
在web.xml中进行配置,设置springMVC.xml和applicationContext.xml的文件加载

加载spring容器:

contextConfigLocation classpath:applicationContext.xml org.springframework.web.context.ContextLoaderListener springMVC的加载: DispatcherServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:springMVC.xml DispatcherServlet *.do 编码格式过滤器:主要过滤的是中文 characterFilter org.springframework.web.filter.CharacterEncodingFilter characterFilter /* applicationContext.xml文件中关于数据库的配置:
<bean  id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
       <!-- 5.+找对应的驱动包,
         8+ 可以使用专门的驱动包,也可以使用5系列的驱动包,比如8对应5系列5.1.45包 
         如果用8系列的驱动包,驱动包名 com.mysql.cj.jdbc.Driver-->
       <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
       <!--?后面的是附属的约束条件,由于环境等问题可能需要;
           连接协议:数据库类型://主机地址:端口号/数据名字?约束条件  -->
       <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/shop?characterEncoding=utf-8"></property>
       <property name="user"  value="root"></property>
       <property name="password" value="1234"></property>
</bean>

<!--sqlsessionFactory,通过工厂模式管理  -->
<bean  id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
   <property name="configLocation" value="classpath:mybatis.xml"></property>
   <property name="dataSource"    ref="dataSource"></property>
</bean>

<!-- 事务管理 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
     <property name="dataSource" ref="dataSource"></property>
</bean>

<!-- 通知 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
	<tx:attributes>
		<tx:method name="save*" propagation="REQUIRED"/>
		<tx:method name="get*" propagation="SUPPORTS"/>
	</tx:attributes>
</tx:advice>

访问

访问界面

把jsp文件放在了webContent下面的WEB-INF下的jsp文件夹里,其他的静态资源文件放在webContent下就可以了
webContent文件夹下,除了给定的两个文件夹,剩下的都是开放的,一般的静态资源可以直接放在这里
jsp文件我们不希望人们直接访问,那么就放在WEB-INF下面

代码的编写:
在controller中创建方法,返回页面的名字

在springMVC中配置师徒解析器

在浏览器上访问

访问数据库数据

实现功能:首页上一级目录和二级目录的展示
1、controller和请求路径匹配方法的创建:当界面被加载的时候,数据也得加载上,所以,我们依然使用和界面同一个访问请求(不需要重新写一个controller和对应的方法)
2、pojo类: 和要用的数据库表对应起来即可,如果有级联,需要添加关联属性(直接用外键也可以)
3、创建mapper的接口

public interface CategoryMapper {

/*查询所有一级目录和二级目录*/
public List<Category> selectAll();

}
4、创建mapper的xml文件。编写sql语句

<!-- 查询所有的目录,返回查询结果集,结果集存在级联的问题
          一对一,一对多,多对多
          一对一:
          一对多:collection
  -->
select category.*,categorysecond.* from category,categorysecond where category.cid = categorysecond.cid 5、在applicationContext.xml文件配置mapper的扫描器(第一次写的话,后续不用再配置)
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
      <property name="basePackage"  value="com.qf.edu.mapper"></property>
      <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean>

6、service业务逻辑层的创建和编写

public class CategoryService {

@Autowired
public CategoryMapper categoryMapper;

/*查询所有的目录*/
public  List<Category>   selectAllCategory(){
	//调用mapper中方法,获取数据库操作结果
	List<Category> list=categoryMapper.selectAll();
	if(list!=null&&list.size()>0){
		return list;
	}else{
		return null;
	}
		
}

}
7、再applicationContext中配置service的bean
8、回到controller中的方法里,向前端返回结果
可以使用Model进行返回,也可以使用session对话返回,还可以打包成json串,用response返回

9、前端接收
可以用jstl语法接收,也可以用session接收,还可以用ajax接收

猜你喜欢

转载自blog.csdn.net/weixin_43812609/article/details/95254495