• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Spring3+mybatis+mysql整合详解(5)

mysql 搞代码 7年前 (2018-06-04) 125次浏览 已收录 0个评论

Spring3+mybatis+mysql整合详解(五)

下面来看java代码:

1、Control层代码:

 

package com.hl.usersmanager.controller;  import java.util.List;  import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping;  import com.hl.usersmanager.model.Users; import com.hl.usersmanager.service.IUserService;  @Controller public class UserController { // 使用注解实现自动装配 不需要再写get set方法以及在context中配置bean  @Autowired  private IUserService userService;   @RequestMapping(value = "findUserByName.do")  public String findUserByName(String name,ModelMap model) {   Users users = userService.findUserByName(name);   model.addAttribute("userPhone",users.getPhone());   System.out.println("userPhone:" + users.getPhone());   return "showUser";  }    …… } 

欢迎大家阅读《Spring3+mybatis+mysql整合详解(5)》,跪求各位点评,by 搞代码

 

 在较低版本Spring中,Controller需要实现一个接口,在Spring3中,我们采用注解的方式实现。只需要加入一个@Controller注解即可(当然,你需要在配置文件中开启注解功能。可参考Spring3+mybatis+mysql整合详解(三))。

再使用注解声明一个IUserService(Service层接口)属性。

 @RequestMapping(value = “findUserByName.do”)表示拦截findUserByName.do的请求,交由被注解的方法处理。

findUserByName方法有两个参数,第一个参数name从页面上传入。由于我们需要找到Users后将其userPhone属性返回给页面,所以我们需要第二个参数model。这个参数由Spring自行封装,我们不管它。然后将users.getPhone()放入model中。就好像我们往response中放参数一样。

最后返回一个String类型的showUser,告诉Spring mvc这个Controller执行完了需要返回到showUser这个视图。具体由哪个页面进行渲染,由Spring mvc的视图解析器配置决定。当然findUserByName也可以使用其他返回类型。

这里有篇帖子讲得比较详细,分享给大家:

http://www.ibm.com/developerworks/cn/java/j-lo-spring25-mvc/

 

2、Service层代码

package com.hl.usersmanager.service.impl;  import java.util.List;  import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional;  import com.hl.usersmanager.dao.IUserMapper; import com.hl.usersmanager.model.Users; import com.hl.usersmanager.service.IUserService;  //使用Service注解 不需要再在配置文件中配置bean @Service public class UserServiceImpl implements IUserService{  @Autowired  private IUserMapper userMapper;    @Override  @Transactional  public Users findUserByName(String name) {   return userMapper.findUserByName(name);  }   …… } 

 首先,我们在Service层IUserService的实现类上加入@Service注解。UserController中就会自动装载这个bean。

这里我们配置了一个 @Transactional注解,表示需要进行事务管理(这里我没有写事务相关的代码)。

3、DAO层代码

package com.hl.usersmanager.dao;  import java.util.List;  import com.hl.usersmanager.model.Users;  public interface IUserMapper {  public Integer insertUser(Users user);       public List<Users> findAllUsers();           public Users findUserByName(String name);      } 

 使用Mybatis+Spring后,dao层只需要这样一个接口就行了。在配置文件中作如下配置:

 <!-- 数据映射器类  mapper bean -->  <bean id="UserMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">   <property name="sqlSessionFactory" ref="SqlSessionFactory" />   <!-- 注意指定的映射器类必须是一个接口,而不是具体的实现类  -->      <property name="mapperInterface" value="com.hl.usersmanager.dao.IUserMapper" />  </bean>

 Mybatis会自动创建代理类,执行接口中的方法。当然还需要数据映射器的配置。参见Spring3+mybatis+mysql整合详解(四)。

 

整个结构就是这样。需要完整源代码的请访问http://my249645546.iteye.com/blog/1413847 ,进行下载(不含jar包)


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Spring3+mybatis+mysql整合详解(5)

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

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

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