• 软件工程综合实践(3)


    软件工程综合实践(3)

    注意事项:

    1.  mybatis-config.xml

             a.实体类  和  别名设置  (让mybatis 能够识别项目中的实体类   将之与 数据库的   表名,列名,属性一一对应)

      <typeAliases>

        <!--  <typeAlias alias="User" type="com.neusoft.model.User" />-->

        <!--  <package name="com.neusoft.model"/>-->

        <typeAlias alias="Userinfo" type="cn.neusoft.pojo.Userinfo" />

      </typeAliases>

      说明:如果xxMapper.xml配置文件放在和xxMapper.java统一目录下,mappers也可以省略,因为org.mybatis.spring.mapper.MapperFactoryBean默认会去查找与xxMapper.java相同目录和名称的xxMapper.xml

      就不需要写

      <mapper resource="com/neusoft/mapper/userMapper.xml" />

      而   sql文所在 的 mapper.xml文件加载,我们可以通过mapper 扫描的方式进行处理,这里我们交给了spring 帮我们实现,具体内容在  spring-common.xml中操作了,具体方法如下:(在自己项目中,注意修改如下代码  加粗  标红的  包名)

      <!--

        3. mybatis自动扫描加载Sql映射文件/接口 : MapperScannerConfigurer sqlSessionFactory

        basePackage:指定sql映射文件/接口所在的包(自动扫描)

      -->

      <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

        <property name="basePackage" value="cn.neusoft.mapper"></property>

        <property name="sqlSessionFactory" ref="sqlSessionFactory"></property>

      <!--        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>-->

      </bean>

      在spring-mvc.xml文件中,开发的时候,我们全用注解的方式加速开发,这个时候需要注意  对项目中注解的内容进行扫描,具体方法如下:(加粗标红的cn.neusoft  代表是你需要扫描的包所在位置)

      <!-- 注解扫描包 -->

      <context:component-scan base-package="cn.neusoft" />

      <!-- 开启注解 -->

      <mvc:annotation-driven />

    在项目开发中  你们需要写:

    1. controller

    2. mapper 需要写一些常用方法(可以直接使用mybatis逆向工程生成的方法  生成mapper ,同时还可以生成 Userinfo 实体类)

    逆向生成的方法,有些特殊的sql 操作是没有的,还是需要手写

    3.Service的方法,需要写

    4.Jsp 页面需要实现

    package cn.neusoft.controller;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.mvc.Controller;
    
    import cn.neusoft.pojo.Userinfo;
    
    public class UsersController1 implements Controller {
    
        public ModelAndView handleRequest(HttpServletRequest request,
                HttpServletResponse response) throws Exception {
            // TODO Auto-generated method stub
            //模拟一下数据库中信息
            List<Userinfo> list = new ArrayList<Userinfo>();
            //向list  注入数据
            Userinfo user1 = new Userinfo();
            user1.setUserid(1);
            user1.setUsername("neusoft");
            user1.setPwd("123");
            Userinfo user2 = new Userinfo();
            user2.setUserid(2);
            user2.setUsername("东软");
            user2.setPwd("123");        
            
            list.add(user1);
            list.add(user2);
            
            ModelAndView mav = new ModelAndView();
            //在ModelAndView   把 list 的值  传递
            //相当于  实现了  request.setAttribute("users",list);
            mav.addObject("users",list);
            //指定一个显示的   jsp 页面
            mav.setViewName("/users");
            return mav;
        }
    
    }

  • 相关阅读:
    两数之和
    输入一个int型数据,计算出该int型数据在内存中存储时1的个数。
    MySQL事务机制(Transaction)
    JAVA 之 深入理解String类
    MySQL 之 SQL练习
    python常用函数及循环
    python多版本配置pyenv
    ES6语法的简单示例
    学习笔记190—利用matlab求解方程组的解
    学习笔记189—pandas 获取Dataframe元素值的几种方法
  • 原文地址:https://www.cnblogs.com/Yan1970/p/7118197.html
Copyright © 2020-2023  润新知