SpringMVC mybatis整合实例代码详解

时间:2021-05-19

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。

一、逆向工程生成基础信息

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><context id="testTables" targetRuntime="MyBatis3"><commentGenerator><!-- 是否去除自动生成的注释 true:是 : false:否 --><property name="suppressAllComments" value="true" /></commentGenerator><!--数据库连接的信息:驱动类、连接地址、用户名、密码 --><jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3307/mybatis" userId="root"passaspku.com/pc/softtech/office/word/" target="_blank"><u>word</u>="jalja"></jdbcConnection><!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal --><javaTypeResolver><property name="forceBigDecimals" value="false" /></javaTypeResolver><!-- targetProject:生成PO类的位置 --><javaModelGenerator targetPackage="com.jalja.springmvc_mybatis.model.pojo"targetProject=".\src"><!-- enableSubPackages:是否让schema作为包的后缀 --><property name="enableSubPackages" value="false" /><!-- 从数据库返回的值被清理前后的空格 --><property name="trimStrings" value="true" /></javaModelGenerator><!-- targetProject:mapper映射文件生成的位置 --><sqlMapGenerator targetPackage="com.jalja.springmvc_mybatis.mapper"targetProject=".\src"><!-- enableSubPackages:是否让schema作为包的后缀 --><property name="enableSubPackages" value="false" /></sqlMapGenerator><!-- targetPackage:mapper接口生成的位置 --><javaClientGenerator type="XMLMAPPER"targetPackage="com.jalja.springmvc_mybatis.mapper"targetProject=".\src"><!-- enableSubPackages:是否让schema作为包的后缀 --><property name="enableSubPackages" value="false" /></javaClientGenerator><!-- 指定数据库表 --><table tableName="items"></table><table tableName="orders"></table><table tableName="orderdetail"></table><table tableName="user"></table></context></generatorConfiguration> public static void main(String[] arhs) throws Exception{List<String> warnings = new ArrayList<String>();boolean overwrite = true;File configFile = new File("src.main.resources/generator.xml");ConfigurationParser cp = new ConfigurationParser(warnings);Configuration config = cp.parseConfiguration(configFile);DefaultShellCallback callback = new DefaultShellCallback(overwrite);MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);myBatisGenerator.generate(null);}

二、springMVC与Mybatis整合 各个配置文件

1.项目结构

2、各个文件的核心代码

a.web.xml

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://.jalja.springmvc_mybatis.service.ItemsService;/*** 商品 * @author PC003*conterver参数转换器 springMvc提供了很多参数转换器*/@Controller@RequestMapping("/items") //窄化请求映射public class ItemsController {@Autowired ItemsService itemsService;@RequestMapping(value="/findItemsList")public String findItemsList(Model model) throws Exception{List<ItemsCustom> itemsList=itemsService.findItemsList(null);System.out.println(itemsList);model.addAttribute("itemsList", itemsList);return "itemsList";}@RequestMapping(value="/editItems", method={RequestMethod.POST,RequestMethod.GET}) //限制Http请求方式//@RequestParam 将请求参数 与 形式参数进行绑定 required:指定属性必须传入值 defaultValue:设置默认值public String editItems(Model model, @RequestParam(value="id",required=true,defaultValue="0") Integer itemsId) throws Exception{ItemsCustom itemsCustom=itemsService.findItemsById(itemsId);if(itemsCustom==null){throw new CustomException("商品不存在");}model.addAttribute("itemsCustom", itemsCustom);return "editItems";}@RequestMapping(value="/updateItems")public String editItemsSubmit(Integer id,ItemsCustom itemsCustom,MultipartFile itemsPic) throws Exception{String uploadFileName=itemsPic.getOriginalFilename();//获取上传的文件名if(itemsPic!=null && uploadFileName!=null && !uploadFileName.equals("")){String imagesPath="E:\\develop\\upload\\images\\";String newFileName=UUID.randomUUID()+uploadFileName.substring(uploadFileName.lastIndexOf("."),uploadFileName.length());File newFile=new File(imagesPath+newFileName);itemsPic.transferTo(newFile);//将内存中的数据写入磁盘itemsCustom.setPic(newFileName);}itemsService.updateItemsById(id, itemsCustom);return "redirect:findItemsList.do"; //重定向}//JSON的使用 @ResponseBody:将对像转json输出 @RequestBody:将请求参数转 java对象@RequestMapping(value="/jsonRequest")public @ResponseBody ItemsCustom jsonRequest(@RequestBody ItemsCustom itemsCustom) throws Exception{return itemsCustom;}//RestFul 风格 编程 /restFulRequest/{id}:表示将这个位置的参数传到 @PathVariable 指定的名称中@RequestMapping(value="/restFulRequest/{id}")public @ResponseBody ItemsCustom restFulRequest(@PathVariable("id") Integer id) throws Exception{ItemsCustom itemsCustom=itemsService.findItemsById(id);return itemsCustom;}}

希望本篇实例对您有所帮助

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章