ssm整合

xiaoxiao2021-02-28  129

1.搭建开发环境,导入相关jar包,40个jar包的百度云(http://pan.baidu.com/s/1cAK4W2)

包含mybatis核心包和mybatis依赖包

mybatisspring整合包

springjar包(包括springmvcjar包)

数据库驱动包

第三方数据库连接池

 

2.配置文件

mybatis/SqlMapConfig.xml---mybatis全局配置文件

spring/ applicationContext- dao.xml---springmybatis整合的配置(SqlSessionFactorymapper配置)(dao

spring/ applicationContext-service.xml---配置业务接口(service

spring/applicationContext.xml---spring配置文件(配置公用内容:数据源)

spring/springmvc.xml----------springmvc的全局配置文件

db.properties—数据库连接参数

log4j.properties---日志 配置文件

 

3.工程结构

4.整合的思路以及步骤

整合步骤:

1、 整合持久层

Mybatisspring整合

整合目标:

加载数据库参数,数据库连接池交给spring创建,在applicationContext.xml中配置

sqlSessionFactoryBeanxxxdao交给spring创建,在applicationContext-dao.xml配置

SqlMapConfig.xml只需要加载po的映射文件

 

 

2、 整合业务层

Spring管理service

   整合目标:

Service通过spring调用dao,在applicationContext-service.xml中配置

 

3、 整合控制层

因为springmvcspring一个模块,只要加入jar包,配置springmvc.xmlweb.xml即可。

整合目标:action中通过spring调用service

 

 

5.整合持久层

dao交给spring管理

 

配置数据源

applicationContext.xml

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" 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/mvc http://www.springframework.org/schema/mvc/spring-mvc-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/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd "> <!-- 加载数据库参数,用户 密码 等等 --> <context:property-placeholder location="classpath:db.properties"/> <!-- 使用第三方的数据库连接池dbcp --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <!-- 这里用set方法进行注入 --> <property name="driverClassName" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <!-- 开发阶段数据库最大连接数建议设置小一点够用即可,设置为3 --> <property name="maxActive" value="${jdbc.maxActive}" /> <property name="maxIdle" value="${jdbc.maxIdle}" /> </bean> </beans>

db.properties

jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mybatis jdbc.username=root jdbc.password=root jdbc.maxActive=3 jdbc.maxIdle=1

SqlMapConfig.xml

这里默认已经创建了User.java

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- 配置映射文件 --> <mappers> <mapper resource="sqlmap/User.xml"/> </mappers> </configuration>

User.xml

<?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">

spring管理SqlSessionFactory

 

applicationContext-dao.xml

<!-- 配置SqlSessionFactory --> <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 数据源 --> <property name="dataSource" ref="dataSource"/> <!-- 配置SqlMapConfig.xml --> <property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml"/> </bean> <!-- 配置dao --> <bean id="userDao" class="com.mo.dao.UserDaoImpl"> <!-- 注入会话工厂 上面 sqlSessionFactoryBean已经注入容器--> <property name="sqlSessionFactory" ref="sqlSessionFactoryBean"/> </bean>

 

9.开发dao

 

dao接口和dao实现类

 

编写dao的实现类,继承SqlSessionDaoSupport

 

UserDaoImpl.java

/** * * 在这里继承 SqlSessionDaoSupport,SqlSessionDaoSupport中很多东西 * 例如sqlSession等,UserDaoImpl都可以使用,比较方便 * */ public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao{ public User findById(int id) { //创建SqlSession SqlSession sqlSession = this.getSqlSession(); User user = (User)sqlSession.selectOne("test.findUserById", id); return user; } }

定义User.xml

<mapper namespace="test"> <select id="findUserById" parameterType="int" resultType="com.mo.po.User"> SELECT * FROM USER WHERE id = #{id} </select> </mapper>

SqlMapConfig.xml中配置User.xml

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- 配置映射文件 --> <mappers> <mapper resource="sqlmap/User.xml"/> </mappers> </configuration>

applicationContext-dao.xml配置dao

<!-- 配置dao --> <bean id="userDao" class="com.mo.dao.UserDaoImpl"> <!-- 注入会话工厂 上面 sqlSessionFactoryBean已经注入容器--> <property name="sqlSessionFactory" ref="sqlSessionFactoryBean"/> </bean>

测试dao

public class TestDao { @Test public void test(){ ApplicationContext context = new ClassPathXmlApplicationContext(new String[]{ "spring/applicationContext.xml", "spring/applicationContext-dao.xml" }); UserDao userDao = (UserDao)context.getBean("userDao"); User user = (User)userDao.findById(1); System.out.println(user); } }

10.整理业务层

Spring管理service

   整合目标:

Service通过spring调用dao,在applicationContext-service.xml中配置

 

写service接口和service实现类

public class UserServiceImpl implements UserService{ @Resource(name="userDao") //这里需要在applicationContext-service.xml中启动注解的驱动 private UserDao userDao; public User findUserById(int id){ return userDao.findById(id); } }

将service讲给spring管理,在applicationContext-service.xml中配置

<!-- 启动注解的驱动 --> <context:annotation-config/> <!-- 这是service层 --> <bean id="userService" class="com.mo.service.UserServiceImpl"></bean>

测试service层,这时候需要加载3个配置文件

public class TestService { @Test public void test(){ ApplicationContext context = new ClassPathXmlApplicationContext(new String[]{ "spring/applicationContext.xml", "spring/applicationContext-dao.xml", "spring/applicationContext-service.xml" }); UserService userService = (UserService)context.getBean("userService"); User user = (User)userService.findUserById(1); System.out.println(user); } }

11整合控制层

 

整合目标:action中通过spring调用service

 

配置springmvc.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:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd "> <!-- Action控制器 ,扫描 com.mo.action包中有注解的类 并使它成为一个控制器--> <context:component-scan base-package="com.mo.action"/> <!-- 基于注解的映射器(可选) --> <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/> <!-- 基于注解的适配器(可选) --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/> <!-- 视图解析器(可选) --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/> </beans>

web.xml中配置前端控制器,同时加载spring容器

<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!-- 加载spring容器 --> <context-param> <param-name>contextConfigLocation</param-name> <!-- 这里使用了通配符 --> <param-value>/WEB-INF/classes/spring/applicationContext.xml,/WEB-INF/classes/spring/applicationContext-*.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 注册springmvc框架核心控制器 --> <servlet> <servlet-name>DispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <!-- 自定义加载配置文件--> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/springmvc.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>DispatcherServlet</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping> </web-app>

编写action 

目标:通过调用userService取出用户信息,在页面显示。

UserAction.java

@Controller//注意:这里需要在springmvc.xml中配置context:component-scan,启动注解自动扫描 public class UserAction { @Autowired//注入UserService,spring容器中已经装配了 private UserService userService; @RequestMapping(value="queryUser") public String queryUser(Model model){ User user = (User) userService.findUserById(1); model.addAttribute("user", user); model.addAttribute("message", "ssm整合"); return "/jsp/1.jsp"; } }

编写页面

 

1.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>ssm整合</title> </head> <body> ${user.username} ${message} </body> </html>

 

最后tomcat部署访问

http://localhost:8080/ssm/queryUser.action

从数据库读取了数据

ssm整合完成

转载请注明原文地址: https://www.6miu.com/read-33635.html

最新回复(0)