不积跬步,无以至千里;不积小流,无以成江海。

Spring4+Springmvc+Mybatis整合案例

JAVA 康康 1487℃ 0评论

整合步骤

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>

成功运行结果

QQ截图20160407152431

 

转载请注明:左手代码右手诗 » Spring4+Springmvc+Mybatis整合案例

喜欢 (3)or分享 (0)
发表我的评论
取消评论

 

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址