SSM(Spring+SpringMVC+MyBatis)開發極簡示例
阿新 • • 發佈:2018-12-26
一、MyBatis
百度百科:MyBatis 是一款優秀的持久層框架,它支援定製化 SQL、儲存過程以及高階對映。MyBatis 避免了幾乎所有的 JDBC 程式碼和手動設定引數以及獲取結果集。MyBatis 可以使用簡單的 XML 或註解來配置和對映原生資訊,將介面和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java物件)對映成資料庫中的記錄。
1、生成ORMapping檔案
生成資料庫表對應的Dao、Model、Mapping檔案,可以使用工具MyBatis Generator,也可以在已有程式碼基礎上覆制、修改。
1.1 Dao檔案
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個字
備註:為了減少程式碼篇幅和突出關鍵部分,故此程式碼僅是部分內容。