整合步骤
1. 准备工作 导入相关jar包
2. 编写配置文件,在src下添加一个 源文件夹 conf 存放配置文件
3. 编写类测试
包对应的模块:
- controller---控制器
- service--业务逻辑
- dao ----数据层
- entities ----实体类
- mapper -----mybatis映射文件
一、导入jar包
- aopalliance-1.0.jar
- aspectjweaver.jar
- com.mysql.jdbc.Driver.jar
- commons-fileupload-1.3.1.jar
- commons-lang-2.4.jar
- commons-logging-1.1.3.jar
- commons-pool-1.6.jar
- jstl-impl.jar
- mybatis-3.3.1.jar
- mybatis-spring-1.2.3.jar
- spring-aop-4.2.4.RELEASE.jar
- spring-aspects-4.2.4.RELEASE.jar
- spring-beans-4.2.4.RELEASE.jar
- spring-context-4.2.4.RELEASE.jar
- spring-core-4.2.4.RELEASE.jar
- spring-expression-4.2.4.RELEASE.jar
- spring-instrument-4.2.4.RELEASE.jar
- spring-instrument-tomcat-4.2.4.RELEASE.jar
- spring-jdbc-4.2.4.RELEASE.jar
- spring-jms-4.2.4.RELEASE.jar
- spring-oxm-4.2.4.RELEASE.jar
- spring-test-4.2.4.RELEASE.jar
- spring-tx-4.2.4.RELEASE.jar
- spring-web-4.2.4.RELEASE.jar
- spring-webmvc-4.2.4.RELEASE.jar
- spring-webmvc-portlet-4.2.4.RELEASE.jar
二、 编写配置文件
- 编写 web.xml
<!-- 配置spring4 加载配置文件-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!-- spring的监听器 --><listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 配置springmvc -->
<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:mvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping><servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
- 编写数据源配置文件 db.properties (数据库连接信息)
jdbc.user=root
jdbc.password=199432
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.jdbcUrl=jdbc\:mysql\:///cns_db
- 编写 mybatis配置文件 mybatis.cfg.xml
<!-- 配置实体对象的包 -->
<typeAliases>
<package name="com.cns.entities"/>
</typeAliases>
- 编写spring配置文件 applicationContext.xml
<!-- 配置数据源 -->
<context:property-placeholder location="classpath:db.properties"/>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="username" value="${jdbc.user}" />
<property name="password" value="${jdbc.password}" />
<property name="url" value="${jdbc.jdbcUrl}" />
<property name="driverClassName" value="${jdbc.driverClass}" />
</bean>
<!-- 配置SessionFactory -->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!-- 将myBatis配置加载到sessionFactory -->
<property name="mapperLocations" value="classpath:com/cns/mapper/*.xml" />
<property name="configLocation" value="classpath:mybatis.cfg.xml" />
</bean><!-- 自动为所有Dao注入 sessionFactory -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 接口所在的包 -->
<!-- 注入sessionFactory -->
<property name="basePackage" value="com.cns.dao" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactoryBean" />
</bean><!-- 配置事务管理器 -->
<bean id="txManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="save" propagation="REQUIRED"/>
<tx:method name="get" read-only="true"/>
<tx:method name="*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice><!-- 配置AOP -->
<aop:config>
<aop:pointcut expression="execution (* com.cns.services.impl.*.*(..))" id="pointcut"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut"/>
</aop:config><!-- 注解扫描 -->
<context:component-scan base-package="com.cns.dao" />
<context:component-scan base-package="com.cns.service" />
- 编写springmvc配置文件 mvc.xml
<!-- 注解扫描 -->
<context:component-scan base-package="com.cns.controller" />
三、编写测试类
- UserController---控制器
@Controller
@RequestMapping("/user")
public class UserController {@Resource
private UserService userService;
@RequestMapping("/list")
public String list(HttpServletRequest request){
List<User> list= userService.findAll(); //查询所有用户
System.out.println("list...");
request.setAttribute("userList", list); //存放大request
return "success.jsp"; //返回页面为seccess.jsp
}
}
- UserService--业务逻辑 + UserServiceImpl 实现接口
public interface UserService {
public List<User> findAll();
}
@Service("userService")
public class UserServiceImpl implements UserService{
@Resource
private UserDao userDao; //注解注入dao
@Override
public List<User> findAll() {
return userDao.findAll(); //调用查询方法
}
}
- UserDao ----数据层(使用接口)
public interface UserDao {
public List<User> findAll();
}
- User ----实体类 (数据表 test 字段 id,username )
//实体类测试字段 id username
public class User {
private Integer id;
private String username;
//省略getter/setter
....
}
- UserMapper .xml-----mybatis映射文件
//映射对应的dao
<mapper namespace="com.cns.dao.UserDao">
//定义结果集
<resultMap type="User" id="userResult">
<id property="id" column="id" />
<result property="username" column="username" />
</resultMap>
//id 对应dao中的方法 resultMap 定义结果集
<select id="findAll" resultMap="userResult">
select * from test //查询test表中所有数据
</select>
</mapper>
- 返回的success.jsp 使用jstl标签打印数据
<body>
<h2>success.jsp</h2>
<c:forEach items="${userList }" var="user">
${user.id } --- ${user.username } <br />
</c:forEach>
</body>
成功运行结果
转载请注明:左手代码右手诗 » Spring4+Springmvc+Mybatis整合案例