推荐的文件分层结构如下
com.XXX.lib.action 主要放置Action,控制前台跳转
com.XXX.lib.cservice 主要放置Service,实现业务逻辑
com.XXX.lib.dao 主要放置dao,实现数据库操作
com.XXX.lib.emodel 主要放置Model,实现模型操作
com.XXX.lib.fintface 主要放置interface,定义接口
com.XXX.lib.global 主要放置全局共享类和管理者
com.XXX.lib.global.constant 主要放置全局变量
com.XXX.lib.global.proxy 主要放置全局代理
com.XXX.lib.mybatis 主要放置Mybatis对象
接着上面的,完成mybatis链接
globalManager如下
package com.XXX.lib.global;
import org.apache.ibatis.session.SqlSessionFactory;
public class GlobalManager {
private static GlobalManager instance = null;
public static void setInstance(GlobalManager instance) {
GlobalManager.instance = instance;
}
public static GlobalManager getInstance() {//synchronized防止多线程错误 synchronized
if(instance == null){//第一次调用被实例化,以后再也不会被实例化了
instance = new GlobalManager();
instance.init();
}
return instance;
}
public SqlSessionFactory sqlSessionFactory;//全局sqlSessionFactory
public void init(){
sqlSessionFactory = (new SqlSesFacBuilder()).GetFactory();//获得一个SqlSessionFactory,对全局可见
}
}
SqlSesFacBuilder代码如下
package com.XXX.lib.global;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.XXX.lib.global.constant.MybatisConstant;
public class SqlSesFacBuilder {
public SqlSessionFactory GetFactory(){
SqlSessionFactory sqlSessionFactory=null;
try{
//配置路径
String resource = MybatisConstant.MybatisResource;
//加载配置文件
Reader reader = Resources.getResourceAsReader(resource);
//生成一个SqlSessionFactory
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
}catch(Exception e){
e.printStackTrace();
}
return sqlSessionFactory;
}
}
MybatisConstant如下
package com.XXX.lib.global.constant;
public class MybatisConstant {
public final static String MybatisResource = "com/XXX/lib/mybatis/Configuration.xml";
}
SqlSessionProxy如下
package com.XXX.lib.global.proxy;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import com.XXX.lib.global.GlobalManager;
public class SqlSessionProxy implements InvocationHandler{
private Object proxyobj;
public SqlSessionProxy(Object obj){
proxyobj = obj;
}
/**
* @param obj
* @return
* 静态工厂方法
*/
public static Object factory(Object obj){
Object result = null;
Class<?> cls = obj.getClass();
result = Proxy.newProxyInstance(cls.getClassLoader(), cls.getInterfaces(), new SqlSessionProxy(obj));
return result;
}
/**
* Java反射方法
*/
public Object invoke(Object proxy, Method method, Object[] args)throws Throwable {
Object result;
try{
SqlSessionFactory sqlSessionFactory= GlobalManager.getInstance().sqlSessionFactory;
SqlSession sqlSession = sqlSessionFactory.openSession(true);//打开一个SqlSession,true代表自动提交
args[0] = sqlSession;//改变第一个参数的值
result = method.invoke(proxyobj, args);
sqlSession.close();//关闭一个SqlSession
}catch(InvocationTargetException e){
e.printStackTrace();
throw e.getTargetException();
}catch(Exception e){
e.printStackTrace();
throw new RuntimeException("unexpected invocation exception: " + e.getMessage());
}
return result;
}
}
一个mybatis配置实例如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.XXX.lib.fintface.common.CommonIntface">
<select id="lodgCateList" parameterType="HashMap" resultType="HashMap">
SELECT * FROM EMP
</select>
</mapper>
分享到:
相关推荐
struts2+spring+mybatis框架,附带数据库建表,适合初学者搭建环境。
基于注解的Spring+Struts2+Mybatis+Maven项目,Spring 3.0 Struts2 Mybatis3.0
一个简单的spring+struts2+hibernate+mybatis整合(数据库脚本放在项目资源文件的sql目录下) 因为没想好mvc用springmvc好,还是struts2好 所以没有整合进去
maven构建项目,简单的struts2、spring、mybatis结构实现,页面展示用的easyui
struts2+mybatis+spring3框架整合,里面有必须的所有Jar包,源代码,还有数据库的建表语句,在WEBROOT下面sql.txt里面。
web框架PPT——Struts 2+Hibernate+MyBatis+Spring 网站开发案例课堂 备注:书籍信息:清华大学出版社,9787302500605
一个Spring+Struts2+MyBatis完整框架,直接拿来可以了
SSM(Spring+Struts2+Mybatis)整合步骤 纯手写
spring+struts2+mybatis 简单的一个框架
Struts2+maven+spring+mybatis整合,并实现注册功能实例。
一个很简单的spring+struts2+mybatis的小例子,仅供学习使用,附带sql,使用数据库,mysql
一个简答的spring+Struts2+mybatis框架整合的demo
Spring+Struts2+Mybatis的一个增删改查的例子,本例子使用 Spring+Struts2 + Mybatis 框架整合,实现了对用户表数据的增、删、改、查的功能, 基于 Spring 注解实现, 省去了 Spring 繁琐的 bean 手工配置。
spring+struts2+mybatis整合的一个小工程,可以用来学习框架搭建,里面是工程的原代码,可以直接导入到eclipse中。
spring+struts2+mybatis jar包
spring+struts+mybatis+security+memcached+GBAC权限架构开源项目, 懂的自己下载看,不懂的就去问懂的,还有就是有的人说上一个版本的代码有点乱,我只能说你站在你的角度看,我站在我的角度写,说明我们有代沟,大概如此...
(SSM框架集成)spring+struts2+mybatis三大框架集成实现用户的增删改查入门操作案例!
简单的SPRING3+STRUTS2+MYBATIS3开发例子,非常简单入门。
struts2+mybatis+mysql 在线考试系统;struts2+mybatis+mysql 在线考试系统;struts2+mybatis+mysql 在线考试系统
本例子使用 Spring+Struts2 + Mybatis 框架整合,实现了用户登录,对用户表数据的增、删、改、查的功能, 基于 Spring 注解实现, 省去了 Spring 繁琐的 bean 手工配置。