软件工程综合实践(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; } }