博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis3.2.6整合spring4.0和springMVC4.0开发
阅读量:6258 次
发布时间:2019-06-22

本文共 14843 字,大约阅读时间需要 49 分钟。

1. 新建项目,导入jar包

在eclipse/myeclipse上新建一个web项目,导入如下图所示的jar包,关于jar包的整合资源可到http://download.csdn.net/detail/qwe6112071/9467007进行下载

这里写图片描述

如果使用了maven,则配置更为方便:

UTF-8
4.0.2.RELEASE
3.2.6
1.7.7
1.2.17
junit
junit
4.11
test
org.springframework
spring-core
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-oxm
${spring.version}
org.springframework
spring-tx
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-aop
${spring.version}
org.springframework
spring-context-support
${spring.version}
org.springframework
spring-test
${spring.version}
org.mybatis
mybatis
${mybatis.version}
org.mybatis
mybatis-spring
1.2.2
javax
javaee-api
7.0
mysql
mysql-connector-java
5.1.30
commons-dbcp
commons-dbcp
1.2.2
log4j
log4j
${log4j.version}
com.alibaba
fastjson
1.1.41
org.slf4j
slf4j-api
${slf4j.version}
org.slf4j
slf4j-log4j12
${slf4j.version}
org.codehaus.jackson
jackson-mapper-asl
1.9.13
commons-io
commons-io
2.4
org.aspectj
aspectjweaver
1.6.11

2. 配置web.xml文件

demo
default
/js/*
/css/*
/images/*
/fonts/*
contextConfigLocation
classpath*:spring/spring-*.xml
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
true
encoding
UTF-8
encodingFilter
/*
org.springframework.web.context.ContextLoaderListener
org.springframework.web.util.IntrospectorCleanupListener
SpringMVC
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring/spring-mvc.xml
1
true
SpringMVC
/
/index.jsp

3. 配置日志记录文件

在classpath路径下创建文件log4j.properties,并在里面填写

log4j.rootLogger=DEBUG,Console,File  #定义日志输出目的地为控制台  log4j.appender.Console=org.apache.log4j.ConsoleAppender  log4j.appender.Console.Target=System.out  #可以灵活地指定日志输出格式,下面一行是指定具体的格式  log4j.appender.Console.layout = org.apache.log4j.PatternLayout  log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n  #文件大小到达指定尺寸的时候产生一个新的文件  log4j.appender.File = org.apache.log4j.RollingFileAppender  #指定输出目录  log4j.appender.File.File = logs/ssm.log  #定义文件最大大小  log4j.appender.File.MaxFileSize = 10MB  # 输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志  log4j.appender.File.Threshold = ALL  log4j.appender.File.layout = org.apache.log4j.PatternLayout  log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n

4. 配置spring-mybatis整合文件

5. 配置model、mapping文件

先配置数据库测试表,这里以一个移动端后台的用户表为例,因为已经在数据库建好表了,这时可以到$MYSQL_HOME/bin目录下使用命令:

mysqldump -u用户名 -p密码 数据库 用户表
来导出相应的表结构如
mysqldump -uyc -pyc yc User > /home/user.sql
到对应目录打开user.sql文件则得到如下的建表sql语句:

DROP TABLE IF EXISTS `User`;CREATE TABLE `User` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `headImg` varchar(255) DEFAULT NULL,  `isDeleted` int(11) NOT NULL DEFAULT '0',  `name` varchar(255) DEFAULT NULL,  `password` varchar(255) DEFAULT NULL,  `phoneNum` varchar(255) DEFAULT NULL,  `userType` varchar(255) DEFAULT NULL,  `openId` varchar(255) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;#以下插入两条测试数据LOCK TABLES `User` WRITE;/*!40000 ALTER TABLE `User` DISABLE KEYS */;INSERT INTO `User` VALUES (12,'http://localhost:8090/dheadImg/1.jpg',0,'glcnk','$2a$10$EpmkvDhQU5AHkn3Mvq1oDuJbT83aZRooqF0ZxdawiQsTz/sWfpxJa','1234','normal',NULL),(13,'http://localhost:8090/dheadImg/1.jpg',0,'psnys','$2a$10$dv4EQjbMwmUpbNB.kFySNe9RRJ1jwAXliK4FotoRLDrdfSAyWkk7C','3412','normal',NULL);UNLOCK TABLES;

完成数据库建表后,创建pojo文件、xml等文件,这里有两种方式,一种是手动配置,另一种是通过数据库反向生成:

1. 手动配置

  1. 先创建对应的pojo类

    package com.yc.model;    public class User {
    private Integer id; private String headimg; private Integer isdeleted; private String name; private String password; private String phonenum; private String usertype; private String openid; //方便测试时用到 @Override public String toString() { return "User [id=" + id + ", headimg=" + headimg + ", isdeleted=" + isdeleted + ", name=" + name + ", password=" + password + ", phonenum=" + phonenum + ", usertype=" + usertype + ", openid=" + openid + "]"; } getter and setter here.....}
  2. 创建映射接口java文件

    package com.yc.dao;    import com.yc.model.User;    public interface UserMapper {
    User selectByPrimaryKey(Integer id); }
  3. 创建对应的UserMapper.xml文件
id, headImg, isDeleted, name, password, phoneNum, userType, openId

这里需要注意的是一些开发规范的问题,对应spring-mybatis.xml扫描配置,UserMapper.java文件存放在classpath:com/yc/dao下,UserMapper.xml存放在classpath:com/yc/mapping下,同时要特别注意的是UserMapper.xml文件中的namespace套与UserMapper.java文件相对应,如本例中的com.yc.model.User如果这里配置错误的话,我们在测试时会报如下错误信息:

nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: ‘file [/home/myBatisYc/target/classes/com/yc/mapping/UserMapper.xml]’; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias ‘com.yc.User’. Cause: java.lang.ClassNotFoundException: Cannot find class: com.yc.User

2. 通过数据库建表反向生成

可先到 http://download.csdn.net/detail/qwe6112071/9467019下载生成工具,解压,然后配置里面的generator.xml文件,配置实例如下:

注意根据你的下载路径来配置正确的数据库驱动包位置,对应targetProject等属性的配置,不一定真正要在你的项目中,可以先生成到任意位置,然后复制导入,配置好后,在当前目录下通过命令行执行java -jar mybatis-generator-core-1.3.2.jar -configfile generator.xml -overwrite即可

6. 使用junit4测试配置

创建测试文件:

package com.yc.test;import org.junit.After;import org.junit.Before;import org.junit.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.yc.dao.UserMapper;import com.yc.model.User;public class Test1 {
private UserMapper userMapper; /** * 这个before方法在所有的测试方法之前执行,并且只执行一次 * 所有做Junit单元测试时一些初始化工作可以在这个方法里面进行 * 比如在before方法里面初始化ApplicationContext和usermapper */ @Before public void before(){ ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:spring/spring-mybatis.xml"); userMapper = (UserMapper) ac.getBean("userMapper"); } @Test public void test(){ User user = userMapper.selectByPrimaryKey(12); System.out.println(user); /* * 结合前面数据库插入的数据,这里会打印出信息: * User [id=12, headimg=http://localhost:8090/dheadImg/1.jpg, isdeleted=0, name=glcnk, password=$2a$10$EpmkvDhQU5AHkn3Mvq1oDuJbT83aZRooqF0ZxdawiQsTz/sWfpxJa, phonenum=1234, usertype=normal, openid=null] */ } /* * 在测试方法后调用,主要进行资源的销毁工作。 */ @After public void after(){ userMapper = null; ac = null; }}

7. 配置spring-mvc.xml文件

text/html;charset=UTF-8

8. 配置service层和controller层文件

package com.yc.service;import com.yc.model.User;public interface IUserService {
User selectByPrimaryKey(Integer id);}/*--------------------------分割线-------------------------*/package com.yc.service;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import com.yc.dao.UserMapper;import com.yc.model.User;@Servicepublic class UserService implements IUserService {
@Autowired private UserMapper userMapper; @Override public User selectByPrimaryKey(Integer id) { return userMapper.selectByPrimaryKey(id); }}/*--------------------------分割线-------------------------*/package com.yc.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import com.yc.model.User;import com.yc.service.IUserService;@Controller@RequestMapping("/user")public class UserController {
@Autowired private IUserService userService; @RequestMapping("getUser") @ResponseBody//将返回内容序列化成json格式输出 public User getUser(Integer id){ return userService.selectByPrimaryKey(id); }}

9. 测试springMVC

将项目部署到tomcat服务器中,打开游览器,访问http://localhost:8080/myBatisYc/user/getUser?id=13,我们会看到游览器中打印了User序列化后的json格式字符串:

{"id":13,"headimg":"http://localhost:8090/dheadImg/1.jpg","isdeleted":0,"name":"psnys","password":"$2a$10$dv4EQjbMwmUpbNB.kFySNe9RRJ1jwAXliK4FotoRLDrdfSAyWkk7C","phonenum":"3412","usertype":"normal","openid":null}

至此,我们的mybatis3.2.6整合spring4和springMVC4配置已完成

你可能感兴趣的文章
demos.jquerymobile
查看>>
【Android】解决Android横竖屏切换数据丢失问题的方法
查看>>
spring+mybatis的多源数据库配置实战
查看>>
Oracle 导入外部文件数据库
查看>>
数值压缩存储方法Varint
查看>>
【转】Unity3.5 GameCenter基础教程
查看>>
C#_Profile 配置
查看>>
WCF和ASP.NET Web API在应用上的选择
查看>>
关于空指针NULL、野指针、通用指针
查看>>
从GIMP的Retinex算法里发现了一种高斯模糊的快速实现方法【开发记录】。
查看>>
c编写程序完成m名旅客和n辆汽车的同步程序代写
查看>>
oracle与sqlserver区别
查看>>
hdu4722之简单数位dp
查看>>
Android Fragment 学习<四>
查看>>
js 控制图片大小核心讲解
查看>>
从零开始编写自己的C#框架(2)——开发前准备工作
查看>>
装机 win7 64 IE11
查看>>
约瑟夫环问题
查看>>
五子棋
查看>>
和为S的连续正数序列
查看>>