手动配置三大框架整合:Spring+Struts2+mybatis
现在主流的项目框架中,数据库持久层有可能不是hibernate,而是mybatis或者ibatis,其实它们都是一样的,下面我来把环境搭建一下:
【导入相关jar包】新建web项目工程mss,Spring+Struts2+mybatis整合,除了Spring和Struts的jar包外(可以在我的资源中下载),我们还需导入mybatis的几个jar包:
//配置web.xm
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
index.jsp
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2
/*
contextConfigLocation
classpath:springConfig/applicationContext-*.xml
org.springframework.web.context.ContextLoaderListener
log4jConfigLocation
/WEB-INF/classes/log4j.properties
log4jRefreshInterval
60000
org.springframework.web.util.Log4jConfigListener
【创建数据表结构】:项目中我们使用的是mysql数据库,在里面新建了一个user表:
有对密码进行MD5加密:
使用mybatis,得配置xml文件,将实体类User与表user映射,也将UserDao中的方法进行映射实现,这样不需要写UserDaoImpl,因为对数据库的操作也在这个xml中进行:UserDao.xml,这个很重要.....
整体代码结构:
其中,跟mybatis相关最大的一个就是UserDao.xml文件了,我们的所有对数据库的操作和方法都可以在里面进行相应的配置和参数设置,只要将相应的名称设置和匹配好,mybatis就能够自动调用
【配置我们自己的spring xml文件:applicationContext-user.xml】,其中mybatis和spring集成的下面属性配置很重要:,配置在项目里,此处就不一一解说了。
【项目中我们用到了log4j,配置log4j.properties】
项目的基础配置基本完成,编写我们的视图层,上面Action中我们跳转到了UserList.jsp,编写我们的jsp显示页面
一个简单的添加页面:
SQL脚本:
/*
Navicat MySQL Data Transfer
Source Server : localhost_3306
Source Server Version : 50538
Source Host : localhost:3306
Source Database : db_mybatis
Target Server Type : MYSQL
Target Server Version : 50538
File Encoding : 65001
Date: 2015-04-15 20:03:35
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`ID` int(10) NOT NULL AUTO_INCREMENT,
`USERNAME` varchar(60) DEFAULT NULL,
`PASSWORD` varchar(64) DEFAULT NULL,
`EMAIL` varchar(60) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', '小红', '21232f297a57a5a743894a0e4a801fc3', '[email protected]');
INSERT INTO `user` VALUES ('2', '小黑', '21232f297a57a5a743894a0e4a801fc3', '[email protected]');
INSERT INTO `user` VALUES ('3', '小白', '21232f297a57a5a743894a0e4a801fc3', '[email protected]');
INSERT INTO `user` VALUES ('4', 'admin', '21232f297a57a5a743894a0e4a801fc3', '[email protected]');
之前的连接不小心删除了,深表歉意,现在是这个demo项目的完整页面及代码。
因上传文件过大,固本次传的是项目源码。
由最代码官方编辑于2015-4-16 13:41:43