springMVC +mybites 中SqlSessionDaoSupport 的使用
来源:互联网 发布:怀化干部在线网络 编辑:程序博客网 时间:2024/05/19 05:34
使用spring注解的方式,使用 mybites 中的 SqlSessionDaoSupport
只是测试的例子,表中只有2个字段
1 。继承SqlSessionDaoSupport 的顶级dao 层代码
package com.inf.base;import java.sql.Connection;import java.util.List;import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.apache.ibatis.session.SqlSessionFactory;import org.mybatis.spring.SqlSessionTemplate;import org.mybatis.spring.support.SqlSessionDaoSupport;import org.springframework.beans.factory.annotation.Autowired;import com.inf.system.utiles.PropertyUtils;import com.inf.system.utiles.page.PageBean;/** * 顶层接口 * @author zongxin */public class BaseDao extends SqlSessionDaoSupport{/* // 使用 SqlSessionTemplate @Autowired private SqlSessionTemplate sqlSessionTemplate; @Autowired public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {super.setSqlSessionTemplate(sqlSessionTemplate); }*///使用sqlSessionFactory@Autowired private SqlSessionFactory sqlSessionFactory;@Autowired public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) { super.setSqlSessionFactory(sqlSessionFactory); }/** * 执行insert操作 * @param statement * @return */public int insert(String statement) {return getSqlSession().insert(statement);}/** * 执行insert操作 * @param statement * @param parameter * @return */public int insert(String statement, Object parameter) {return getSqlSession().insert(statement, parameter);}public int update(String statement) {return getSqlSession().update(statement);}public int update(String statement, Object parameter) {return getSqlSession().update(statement, parameter);}public int delete(String statement) {return getSqlSession().delete(statement);}public int delete(String statement, Object parameter) {return getSqlSession().delete(statement, parameter);}/** * 获取一个list集合 * @param statement * @return */public List<?> selectList(String statement) {return getSqlSession().selectList(statement);}/** * 根据参数 获取一个list集合 * @param statement * @param parameter * @return */public List<?> selectList(String statement, Object parameter) {return getSqlSession().selectList(statement, parameter);}public Map<?, ?> selectMap(String statement, String mapKey) {return getSqlSession().selectMap(statement, mapKey);}public Map<?, ?> selectMap(String statement, Object parameter, String mapKey) {return getSqlSession().selectMap(statement, parameter, mapKey);}/** * 获取Object对象 * @param statement * @return */public Object selectOne(String statement) {return getSqlSession().selectOne(statement);}/** * 获取connection, 以便执行较为复杂的用法 * @return */public Connection getConnection() {return getSqlSession().getConnection();}}
2.实体类 代码:
package com.inf.sys.user.model;public class TestGener { private Long generId;private String generValue;public Long getGenerId() {return generId;}public void setGenerId(Long generId) {this.generId = generId;}public String getGenerValue() {return generValue;}public void setGenerValue(String generValue) {this.generValue = generValue;} }
3,dao层接口代码:
package com.inf.sys.user.repository;public interface TestDao {public Long getTestIds(String generName);}
4,dao的实现类代码
package com.inf.sys.user.repository.impl;import org.springframework.stereotype.Repository;import com.inf.base.BaseDao;import com.inf.sys.user.repository.TestDao;@Repositorypublic class TestDaoImpl extends BaseDao implements TestDao{public Long getTestIds(String generName){Object object= this.selectOne("com.inf.sys.user.mapper.TestMapper.getTestIds",generName);Long reault=Long.valueOf(String.valueOf(object));return reault;}}
com.inf.sys.user.mapper.TestMapper 为对应的mapper接口文件, <pre name="code" class="java">getTestIds 为对应的参数
5,mapper 接口代码:
package com.inf.sys.user.mapper;public interface TestMapper {Long getTestIds(String generName);}
6.mapper 对应的xml映射文件
<?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.inf.sys.user.mapper.TestMapper"><select id="getTestIds" parameterType="String" resultType="String">SELECT GENER_IDFROM tb_sys_id_generatorWHERE GENER_VALUE=#{generName}</select></mapper>
7. 测试使用的action代码:
package com.inf.sys.user.action;import java.io.PrintWriter;import java.util.HashMap;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;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.RequestParam;import com.inf.sys.user.repository.TestDao;import com.inf.system.utiles.JsonBean;//test@Controller@RequestMapping("test/")public class TestCollection {@Autowiredprivate TestDao testDao;@RequestMapping("testGetgen.do")public void testGetgen(@RequestParam(required=true) String generName,HttpServletRequest request, HttpServletResponse response) throws Exception{response.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=UTF-8");Map<String, Object> result=new HashMap<String, Object>();Long resulte=testDao.getTestIds(generName);result.put("success",true);result.put("msg",resulte);System.out.println( "this is result======"+result);PrintWriter out = response.getWriter();out.print(JsonBean.toJson(result));}}
<context:property-placeholderignore-unresolvable="true" location="classpath*:/datasource.properties" /><context:property-placeholderignore-unresolvable="true" location="classpath*:/config.properties" /><context:property-placeholderignore-unresolvable="true" location="classpath*:/applicationContext.properties" /><context:component-scan base-package="com.inf.sys"><context:exclude-filter type="annotation"expression="org.springframework.stereotype.Controller" /><context:exclude-filter type="annotation"expression="org.springframework.web.bind.annotation.ControllerAdvice" /></context:component-scan><bean id="abstractDataSource" abstract="true"class="org.apache.commons.dbcp.BasicDataSource"><property name="driverClassName" value="${datasource.driverClass}" /><property name="validationQuery" value="${datasource.validationQuery}" /><property name="maxIdle" value="${datasource.maxIdle}" /><property name="minIdle" value="${datasource.minIdle}" /><property name="maxActive" value="${datasource.maxActive}" /><property name="initialSize" value="${datasource.initialSize}" /></bean><!-- 默认数据源-mybatis使用 --><bean id="dataSource" parent="abstractDataSource"><property name="url" value="${datasource.url.0}" /><property name="username" value="${datasource.username}" /><property name="password" value="${datasource.password}" /></bean><!--事务管理器配置 --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean><!-- 定义SqlSessionFactoryBean --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="configLocation" value="classpath:mybatis-config.xml" /><property name="mapperLocations" value="classpath:com/inf/sys/*/mapper/*.xml" /><property name="typeAliasesPackage" value="com.inf.sys.*.model" /></bean><!-- <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg index="0" ref="sqlSessionFactory" /> </bean> --><!-- 扫描Mapper文件,并实施自动注入 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /><property name="basePackage" value="com.inf.sys.*.mapper;" /></bean>
注意:
在dao的实现类上增加注解 @Repository
在 顶层dao类 baseDa 中
@Autowired
public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory)
{
super.setSqlSessionFactory(sqlSessionFactory);
}
注入sqlSessionFactory 或者是 sqlSessionTemplate
通常使用mybites 直接使用mapper的方式 ,不使用dao层接口和dao的实现类,
applicationContext.xml 中的配置 :
<!-- 扫描Mapper文件,并实施自动注入 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /><property name="basePackage" value="com.inf.sys.*.mapper;" /></bean>
<!-- 扫描Mapper文件,并实施自动注入 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /><property name="basePackage" value="com.inf.sys.*.mapper;" /></bean>
0 0
- springMVC +mybites 中SqlSessionDaoSupport 的使用
- mybatis SqlSessionDaoSupport的使用
- MyBites的使用,连接xml
- Maven构建springMVC+mybites
- mybatis SqlSessionDaoSupport的使用(附代码下载)
- SqlSessionDaoSupport
- Mybites 的 报错总结
- mybatis 使用SqlSessionDaoSupport批量插入
- mybites 大于 小于符号的情况
- MyBatis + Spring 基于SqlSessionDaoSupport的泛型基类
- SpringMVC中ModelAndView的使用
- SpringMVC中@ModelAttribute的使用
- springmvc中validator的使用
- 实习第一天:mybites的学习笔记(纯手打)
- MyBatis中如何通过继承SqlSessionDaoSupport来编写DAO
- SpringMVC中拦截器的使用
- SpringMVC中拦截器的使用
- 关于SpringMvc中使用aop的问题
- Swift Access Control 权限控制的黑与白
- 第一次接触Spring
- 使用MAP文件快速定位程序崩溃代码行
- 关于xpath相对路径前加点与不加点的区别
- 饥饿营销
- springMVC +mybites 中SqlSessionDaoSupport 的使用
- RMI原理揭秘之远程对象
- c++栈和堆
- css之缩进
- Leetcode 动态规划DP类题目
- 堆:欢乐和痛苦
- Swift 造个类型不是梦-白话Swift类型创建
- 2.5.4 进程同步,互斥的区别和联系
- Swift Swift与C语言指针友好合作