资讯专栏INFORMATION COLUMN

基于注解方式配置springMVC 并整合mybatis(二)

peixn / 2679人阅读

摘要:基于注解方式配置并整合一接上篇文章,如下是整合数据层。整合时,如果不加上就无法启动容器。

基于注解方式配置springMVC 并整合mybatis(一)

接上篇文章,如下是整合数据层。

spring-mybatis.xml




    
    
    
    
    
    
        
    

    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    

    
    
        
        
        
    

    
    
        
        
    

    
    
        
    
    
    

jdbc.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8
username=root
password=123qwe
#定义初始连接数
initialSize=0
#定义最大连接数
maxActive=20
#定义最大空闲
maxIdle=20
#定义最小空闲
minIdle=1
#定义最长等待时间
maxWait=60000

UserTMapper.xml




  
    
    
    
    
    
  
  
    
    id, user_name, password, age
  
  
  
    
    delete from user_t
    where id = #{id,jdbcType=INTEGER}
  
  
    
    insert into user_t (id, user_name, password, 
      age)
    values (#{id,jdbcType=INTEGER}, #{userName,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, 
      #{age,jdbcType=INTEGER})
  
  
    
    insert into user_t
    
      
        id,
      
      
        user_name,
      
      
        password,
      
      
        age,
      
    
    
      
        #{id,jdbcType=INTEGER},
      
      
        #{userName,jdbcType=VARCHAR},
      
      
        #{password,jdbcType=VARCHAR},
      
      
        #{age,jdbcType=INTEGER},
      
    
  
  
    
    update user_t
    
      
        user_name = #{userName,jdbcType=VARCHAR},
      
      
        password = #{password,jdbcType=VARCHAR},
      
      
        age = #{age,jdbcType=INTEGER},
      
    
    where id = #{id,jdbcType=INTEGER}
  
  
    
    update user_t
    set user_name = #{userName,jdbcType=VARCHAR},
      password = #{password,jdbcType=VARCHAR},
      age = #{age,jdbcType=INTEGER}
    where id = #{id,jdbcType=INTEGER}
  
  
    
      
         and user_name = #{userName,jdbcType=VARCHAR}
      
      
         and password = #{password,jdbcType=VARCHAR}
      
      
         and age = #{age,jdbcType=INTEGER}
      
    
  
  

UserTMapper

public interface UserTMapper {
    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table user_t
     *
     * @mbggenerated Fri Oct 27 15:37:49 CST 2017
     */
    int deleteByPrimaryKey(Integer id);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table user_t
     *
     * @mbggenerated Fri Oct 27 15:37:49 CST 2017
     */
    int insert(UserT record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table user_t
     *
     * @mbggenerated Fri Oct 27 15:37:49 CST 2017
     */
    int insertSelective(UserT record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table user_t
     *
     * @mbggenerated Fri Oct 27 15:37:49 CST 2017
     */
    UserT selectByPrimaryKey(Integer id);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table user_t
     *
     * @mbggenerated Fri Oct 27 15:37:49 CST 2017
     */
    int updateByPrimaryKeySelective(UserT record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table user_t
     *
     * @mbggenerated Fri Oct 27 15:37:49 CST 2017
     */
    int updateByPrimaryKey(UserT record);

    List getList(UserT UserT);
}

UserService

@Service
public class UserService {
    @Resource
    private UserTMapper userTMapper;

    public UserT getUserById(int userId) {
        return userTMapper.selectByPrimaryKey(userId);
    }

}

HelloController

@Controller
public class HelloController {

    @Resource
    private UserService userService;

    @RequestMapping("index")
    public String hello(){
        System.out.println("hello world");
        return "index";
    }

    @RequestMapping(value = "/user")
    @ResponseBody
    public String Random(){
        UserT userById = userService.getUserById(1);
        return "data:"+ JSON.toJSONString(userById);
    }

}

在WebInitializer中需加入监听器

public class WebInitializer implements WebApplicationInitializer {

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {

        AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
        context.register(MyMvcConfig.class);
        context.setServletContext(servletContext);
        ServletRegistration.Dynamic servlet = servletContext.addServlet("dispatcher",new DispatcherServlet(context));
        servlet.addMapping("/");
        servlet.setLoadOnStartup(1);
        servlet.setAsyncSupported(true);
        servletContext.setInitParameter("contextConfigLocation","classpath:spring-mybatis.xml");
        servletContext.addListener(ContextLoaderListener.class);
    }
}

最后目录结构为

总结:
基于java类配置,是spring4中推荐的方式,类和注解组合可以减少很多配置文件。整合mybatis时,如果不加上servletContext.addListener(ContextLoaderListener.class);就无法启动容器。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67934.html

相关文章

  • Java后端

    摘要:,面向切面编程,中最主要的是用于事务方面的使用。目标达成后还会有去构建微服务,希望大家多多支持。原文地址手把手教程优雅的应用四手把手实现后端搭建第四期 SpringMVC 干货系列:从零搭建 SpringMVC+mybatis(四):Spring 两大核心之 AOP 学习 | 掘金技术征文 原本地址:SpringMVC 干货系列:从零搭建 SpringMVC+mybatis(四):Sp...

    joyvw 评论0 收藏0
  • 基于注解方式配置springMVC 整合mybatis(一)

    摘要:在实战一书中前面两部分分别介绍了和的高级特性,并且基于类配置有一套层的,但是没有将层整合层,于是我试着整合了下,也方便以后写测试。 在《springBoot实战》 一书中前面两部分分别介绍了spring 和 springMVC的高级特性,并且基于java类配置有一套web层的demo,但是没有将web层整合dao层,于是我试着整合了下,也方便以后写测试demo。下面是我的整理 pom....

    岳光 评论0 收藏0
  • 手撕面试官系列():开源框架面试题Spring+SpringMVC+MyBatis

    摘要:跳槽时时刻刻都在发生,但是我建议大家跳槽之前,先想清楚为什么要跳槽。切不可跟风,看到同事一个个都走了,自己也盲目的开始面试起来期间也没有准备充分,到底是因为技术原因影响自己的发展,偏移自己规划的轨迹,还是钱给少了,不受重视。 跳槽时时刻刻都在发生,但是我建议大家跳槽之前,先想清楚为什么要跳槽。切不可跟风,看到同事一个个都走了,自己也盲目的开始面试起来(期间也没有准备充分),到底是因为技...

    Flink_China 评论0 收藏0
  • Java学习路线总结,搬砖工逆袭Java架构师(全网最强)

    摘要:哪吒社区技能树打卡打卡贴函数式接口简介领域优质创作者哪吒公众号作者架构师奋斗者扫描主页左侧二维码,加入群聊,一起学习一起进步欢迎点赞收藏留言前情提要无意间听到领导们的谈话,现在公司的现状是码农太多,但能独立带队的人太少,简而言之,不缺干 ? 哪吒社区Java技能树打卡 【打卡贴 day2...

    Scorpion 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<