import java.util.Map;
import javax.annotation.Resource;
import org.apache.ibatis.session.SqlSession;
import org.apache.log4j.Logger;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Repository;
/**
*
* @Description: 公共接口的实现
* @author liyong
* @date 2014年11月14日 下午1:46:53
* @version V1.0
*
*/
@Scope("prototype")
@Repository("baseDao")
public class BaseDao extends SqlSessionDaoSupport {
private static Logger logger = Logger.getLogger(BaseDao.class);
@Resource
private SqlSessionTemplate sqlSessionTemplate;
/**
*
* @Description: 添加数据
* @author liyong
* @date 2014年11月14日 下午1:37:08
* @version V1.0
*
*/
public int insert(String statementName, Object parameterObject) {
SqlSession session = sqlSessionTemplate.getSqlSessionFactory()
.openSession();
int count = session.insert(statementName, parameterObject);
session.close();
return count;
}
/**
*
* @Description: 查询数据--单个对象
* @author liyong
* @date 2014年11月14日 下午1:37:08
* @version V1.0
*
*/
public Object queryForObject(String statementName, Object parameterObject) {
Object oo = null;
SqlSession session = sqlSessionTemplate.getSqlSessionFactory()
.openSession();
try {
oo = session.selectOne(statementName, parameterObject);
} catch (Exception e) {
e.printStackTrace();
logger.error(e);
} finally {
if (null != session)
session.close();
}
return oo;
}
/**
*
* @Description: 查询数据--单个对象-不加参数
* @author liyong
* @date 2014年11月14日 下午1:37:08
* @version V1.0
*
*/
public Object selectList(String statementName) {
Object oo = null;
SqlSession session = sqlSessionTemplate.getSqlSessionFactory()
.openSession();
try {
oo = session.selectList(statementName);
} catch (Exception e) {
e.printStackTrace();
logger.error(e);
} finally {
if (null != session)
session.close();
}
return oo;
}
/**
*
* @Description: 查询集合--有参数
* @author liyong
* @date 2014年11月14日 下午1:37:08
* @version V1.0
*
*/
public Object selectList(String statementName, Object parameterObject) {
Object oo = null;
SqlSession session = sqlSessionTemplate.getSqlSessionFactory()
.openSession();
try {
oo = session.selectList(statementName, parameterObject);
} catch (Exception e) {
e.printStackTrace();
logger.error(e);
} finally {
if (null != session)
session.close();
}
return oo;
}
/**
*
* @Description: 修改数据
* @author liyong
* @date 2014年11月14日 下午1:37:08
* @version V1.0
*
*/
public int updateObject(String statementName, Object parameterObject) {
SqlSession session = sqlSessionTemplate.getSqlSessionFactory()
.openSession();
int count = session.update(statementName, parameterObject);
session.close();
return count;
}
/**
*
* @Description: 删除数据
* @author liyong
* @date 2014年11月14日 下午1:37:08
* @version V1.0
*
*/
public int deleteObject(String statementName, Object parameterObject) {
SqlSession session = sqlSessionTemplate.getSqlSessionFactory()
.openSession();
int count = session.delete(statementName, parameterObject);
session.close();
return count;
}
/**
*
* @Description: 查询数据
* @author liyong
* @date 2014年11月14日 下午1:37:08
* @version V1.0
*
*/
public int selectOne(String statementName, Object parameterObject) {
Integer count = 0;
SqlSession session = sqlSessionTemplate.getSqlSessionFactory()
.openSession();
try {
count = session.selectOne(statementName, parameterObject);
} catch (Exception e) {
e.printStackTrace();
logger.error(e);
} finally {
if (null != session)
session.close();
}
return count;
}
public double selectOneDouble(String statementName, Object parameterObject) {
SqlSession session = sqlSessionTemplate.getSqlSessionFactory()
.openSession();
double val = 0;
try {
val = session.selectOne(statementName, parameterObject);
} catch (Exception e) {
e.printStackTrace();
logger.error(e);
} finally {
if (null != session)
session.close();
}
return val;
}
/**
*
* @Description: 查询数据
* @author liyong
* @date 2014年11月14日 下午1:37:08
* @version V1.0
*
*/
public Map<String, Object> selectObjectByProcedure(String statementName,
Map<String, Object> map) {
SqlSession sqlSession = sqlSessionTemplate.getSqlSessionFactory()
.openSession();
try {
sqlSession.selectOne(statementName, map);
} catch (Exception e) {
e.printStackTrace();
} finally {
sqlSession.close();
}
return map;
}
}
分享到:
相关推荐
MyBatis BaseDAO 是一种基于 MyBatis 框架的工具类库,它旨在简化数据库操作,通过封装常见的CRUD(Create、Read、Update、Delete)方法,为开发者提供便利,减少重复代码,提高开发效率。在Java Web 开发中,...
Mybatis通用DAO设计封装主要涉及的是在Java开发中如何高效地使用Mybatis框架进行数据库操作。Mybatis是一款轻量级的持久层框架,它避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。通过提供自定义SQL、存储...
springMVC+Mybatis封装整合:整合搭建已经完成不再述,本框架特色主要针对Mybatis框架BaseDao,BaseService,BaseServiceImpl封装,有点贵,本人也是循序见进到这一步,花了将近一个月时间,之前发布版本可以不下载...
本项目涉及到的主题是“SpringBoot+MyBatis实现多数据源以及基于BaseDAO的分页功能”。 多数据源是指在一个应用中同时管理多个数据库。这在分布式系统或者需要隔离不同业务数据的场景中非常常见。SpringBoot可以...
- 可能的ORM框架,如Hibernate或MyBatis的集成(虽然描述中没有明确提及) - Maven或Gradle项目管理工具的使用 - 面向对象编程,尤其是抽象类和接口的设计 在实际开发中,使用BaseDao可以大大提高开发效率,但同时...
这是一个Spring MVC + Mybatis 的项目,不仅仅只是简单的demo或是增删改查,她将含括很多的方面:尽量抽取basedao,baseService公共部分,做出一个简单的framework,为以后分布式开发提供基础。 ##内容 Spring的国际...
例如,使用MyBatis框架时,BaseDao可能会利用MyBatis的动态SQL来实现。 此外,BaseDao还可能提供了事务管理功能。事务是数据库操作的基本单元,确保数据的一致性。例如: 1. `void startTransaction()`: 开启一个...
在本示例项目"springboot-mybatis-pagehelper-jsp"中,主要展示了如何将Spring Boot、MyBatis、PageHelper和JSP技术整合在一起,构建一个功能完善的Web应用。下面将详细阐述这些技术及其整合的关键点。 首先,...
SpringBoot集成了多种数据访问技术,如JDBC、MyBatis、Hibernate等,使得我们可以轻松配置和使用。在SpringBoot中,通过@Configuration和@Bean注解,我们可以配置DataSource(数据源)和JdbcTemplate或JPA实体,来...
以上代码仅为示例,实际应用中,BaseDao通常会使用ORM框架如Hibernate或MyBatis,它们提供了更高级别的抽象,能够自动处理SQL生成和结果映射,使代码更加简洁且易于维护。 **总结** BaseDao是Java开发中非常实用的...
这些方法通常通过JDBC(Java Database Connectivity)或ORM(Object-Relational Mapping)框架如Hibernate、MyBatis来实现。`BaseDao`的封装使得每个具体的DAO类只需要关注业务逻辑,无需关心底层的数据访问细节。 ...
3. **实现方式**:BaseDao通常基于JDBC或ORM框架(如Hibernate、MyBatis)实现,提供基本的SQL执行和结果映射功能。 4. **扩展性**:子类可以继承BaseDao,并根据业务需求添加特定的数据库操作方法。 四、Spring...
整合了spring 4.1.6+mybatis3.2.8的组合算是最新的稳定版本了,而且附带了一个basedao操作接口,泛型的通用写法,下载即可运行,我用的是idea项目最好用idea来开发。不会的有问题随时拍砖:308444582,我的扣扣,准您...
通过这种方式,你可以更好地掌握数据库编程,并为后续的ORM框架(如Hibernate、MyBatis)的学习打下坚实的基础。 总结,`jdbcBaseDao`是数据库操作的基础工具类,通过封装JDBC操作,降低了数据库编程的复杂度,尤其...
同时,BaseDao通常会与MyBatis或Hibernate等ORM框架结合使用,以简化SQL编写和对象关系映射。 总之,"Java通用的BaseDao"是一个高效且灵活的设计,它利用连接池提升性能,并通过提供基本的数据库操作接口,降低了...
通常,我们会创建一个BaseDAO类,提供通用的CRUD方法,然后让SchoolService继承它。 4. **事务管理**:SpringMVC可以与MyBatis的事务管理集成,通过@Transactional注解控制事务边界,确保数据的一致性。 在实际应用...
综上所述,本例子展示了如何在SpringBoot环境下集成MyBatis作为持久层框架,使用Druid作为数据连接池,通过PageHelper实现分页查询,并且采用BaseDao的方式来简化数据库操作。此外,还使用了JSP技术进行前端展示。...
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。在实际的项目开发中,MyBatis 提供了强大的功能,使得开发者可以更灵活地控制 SQL 执行,从而实现数据的增删改查操作。在本教程中,我们...
此外,为了保证代码的可维护性和可扩展性,我们通常会结合使用Spring Data JPA或MyBatis这样的持久层框架,它们已经实现了很多高级功能,可以减少手写SQL和反射处理的工作量。 总结来说,基于注解反射封装的 `...
10. **动态SQL**:如果使用了像MyBatis这样的框架,BaseDao可能支持动态SQL,允许根据条件动态生成SQL语句。 了解和熟练运用BaseDao模式是提升Java后端开发效率的关键,它使得开发者能够专注于业务逻辑的实现,而...