一、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个字
备注:为了减少代码篇幅和突出关键部分,故此代码仅是部分内容。