SSM(Spring+SpringMVC+MyBatis)开发极简示例

一、MyBatis

百度百科:MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

1、生成ORMapping文件

生成数据库表对应的Dao、Model、Mapping文件,可以使用工具MyBatis Generator,也可以在已有代码基础上复制、修改。
1.1 Dao文件一般以Mapper结尾,当然也可以使用自己熟悉的风格,以Dao替换Mapper等

public interface CxMapper {
    Cxbb selectByPK(CxbbKey key);
    Cxbb selectByMc(@Param("mc") String mc);
    int deleteByPrimaryKey(CxKey key);
    int insert(Cxbb record);
    int insertSelective(Cxbb record);
    List<Cxbb> selectByExample(CxExample example);
} 

1.2 Model文件就是getter/setter方法的java类(POJO),对应表结构
1.3 Mapping文件简单理解就是SQL语句

  <insert id="insert" parameterType="com.mtest.po.Cxbb">
    insert into CXBB (MC, MS, MD5)
    values (#{mc,jdbcType=VARCHAR}, #{ms,jdbcType=VARCHAR}, #{md5,jdbcType=VARCHAR})
  </insert>

2、配置Spring整合文件

1.4 spring-mybatis.xml

<!-- 自动扫描 --> 
  <context:component-scan base-package="com.mtest"/> 
  <!-- JDBC配置文件 --> 
  <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="classpath:jdbc.properties"/>
  </bean>

  <!-- 数据源 -->
  <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="${driver}"/> 
    <property name="url" value="${url}"/> 
    <property name="username" value="${username}"/> 
    <property name="password" value="${password}"/>
  </bean> 
   
  <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/> 
    <!-- 自动扫描mapping.xml文件 --> 
    <property name="mapperLocations" value="classpath:com/mtest/mapper/*.xml"/>
  </bean> 
  <!-- DAO接口所在包名,Spring会自动查找其下的类 --> 
  <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.mtest.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>

二、SpringMVC

1、生成控制器类CxbbController

@Controller
@RequestMapping("/test")
public class CxbbController {
	@Resource
	private CxbbMapper cxbbDao = null;
	@RequestMapping("/showCxbb")
	public String toIndex(HttpServletRequest request, Model model) {
		String mc = request.getParameter("mc");
		Cxbb cxbb = cxbbDao.selectByMc(mc);
		model.addAttribute("record", cxbb);
		return "showCxbb";
	}
}

2、配置spring-mvc.xml

  <!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 -->
  <!-- 如果一个类带了@Component、@Repository、@Controller、@Service等注解,将自动注册到Spring容器,不需要再在applicationContext.xml文件定义bean了 -->
  <context:component-scan base-package="com.mtest.controller"/>

  <!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 -->  
  <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> 
    <property name="messageConverters"> 
      <list> 
        <ref bean="mappingJacksonHttpMessageConverter"/>  
        <!-- JSON转换器 --> 
      </list> 
    </property> 
  </bean>  
  <!-- 定义跳转的文件的前后缀 ,视图模式配置-->  
  <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <!-- 自动将action方法return的字符串加上前缀和后缀,生成对应jsp -->  
    <property name="prefix" value="/WEB-INF/jsp/"/>  
    <property name="suffix" value=".jsp"/> 
  </bean>  

3、配置web.xml

 <!-- Spring和mybatis的配置文件 -->  
  <context-param> 
    <param-name>contextConfigLocation</param-name>  
    <param-value>classpath:spring-mybatis.xml</param-value> 
  </context-param>  
  
  <!-- Spring监听器 -->  
  <listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
  </listener>  
  <!-- 防止Spring内存溢出监听器 -->  
  <listener> 
    <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class> 
  </listener>  
  
  <!-- Spring MVC servlet -->  
  <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:spring-mvc.xml</param-value> 
    </init-param>  
    <load-on-startup>1</load-on-startup>  
    <async-supported>true</async-supported> 
  </servlet>  
  <servlet-mapping> 
    <servlet-name>SpringMVC</servlet-name>
    <url-pattern>/</url-pattern> 
  </servlet-mapping>  
  <welcome-file-list> 
    <welcome-file>/index.jsp</welcome-file> 
  </welcome-file-list> 

4、showCxbb.jsp【对应controller返回字符串】

jsp文件路径【ssmtest\WEB-INF\jsp】,参见springMVC配置文件

<html>
<head>
	<title>SSM测试</title>
</head>
<body>
	<!-- 从controller中获取数据 -->
	<p>文件名称: ${record.mc}  </p>
	<p>MD5: ${record.md5}  </p>
</body>
</html>

三、部署测试

部署、测试省略N个字
测试结果
备注:为了减少代码篇幅和突出关键部分,故此代码仅是部分内容。

猜你喜欢

转载自blog.csdn.net/weixin_44153121/article/details/85126057