MyBatis使用操作,springmvc

application.xml

<?xml version="1.0" encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:aop="http://www.springframework.org/schema/aop"
     xmlns:tx="http://www.springframework.org/schema/tx"
     xmlns:jdbc="http://www.springframework.org/schema/jdbc"
     xmlns:context="http://www.springframework.org/schema/context"
     xsi:schemaLocation="
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
     http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">

	<bean id="propertyConfigurer"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="locations">
			<list>
				<value>classpath:important.properties</value>
			</list>
		</property>
	</bean>
	
	<import resource="classpath*:datasource-mysql.xml" />
	
	
    <!-- enable component scanning (beware that this does not enable mapper scanning!) -->    
    <context:component-scan base-package="com.xx.xxdp.service" />
    <context:component-scan base-package="com.xx.xxdp.web.action" />

    <!-- enable autowire -->
    <context:annotation-config />

    <!-- enable transaction demarcation with annotations -->
    <tx:annotation-driven />
    
   
</beans>
 

   mybatis的配置文件:

 datasource-mysql.xml

<?xml version="1.0" encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:aop="http://www.springframework.org/schema/aop"
     xmlns:tx="http://www.springframework.org/schema/tx"
     xmlns:jdbc="http://www.springframework.org/schema/jdbc"
     xmlns:context="http://www.springframework.org/schema/context"
     xsi:schemaLocation="
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
     http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">

	<bean id="mysqlDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
		<property name="url" value="${db.mysql.url}?characterEncoding=utf-8&amp;connectTimeout=1000&amp;autoReconnect=true"></property>
		<property name="username" value="${mysql.username}"></property>
		<property name="password" value="${mysql.password}"></property>
		<property name="initialSize" value="1" />
		<property name="maxActive" value="100" />
		<property name="maxIdle" value="20" />
		<property name="maxWait" value="1000" />
		<property name="poolPreparedStatements" value="true"/>
		<property name="validationQuery" value="select 1" />
		<property name="testWhileIdle" value="true" />
		<property name="testOnBorrow" value="true" />
		<property name="timeBetweenEvictionRunsMillis" value="3600000" />
		<property name="minEvictableIdleTimeMillis" value="3600000" />
	</bean>
    <bean id="mysqlTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
        <property name="dataSource" ref="mysqlDataSource"/>  
    </bean>
    <tx:annotation-driven transaction-manager="mysqlTransactionManager"/>


    <!-- mybatis -->
    <bean id="mysqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="mysqlDataSource" />
        <property name="typeAliasesPackage" value="com.xx.xxdp.domain.mysql" />
        <property name="mapperLocations" value="classpath*:sqlmap/mysql/*.xml" />
    </bean>
    <!--inject dao list -->  
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 
        <property name="sqlSessionFactoryBeanName" value="mysqlSessionFactory"></property>  
        <property name="basePackage" value="com.xx.xxdp.dao.mysql" />
    </bean>
    
</beans>

 DemoMysql2DaoMapper.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.xx.xxdp.dao.mysql.demo.DemoMysql2Dao">
	<insert id="insert" parameterType="DemoMysql2" >
		insert into demoMysql2  values (#{id}, #{name})
	</insert>

	<update id="update" parameterType="DemoMysql2" >
		update demoMysql2
		<set>
			<if test="name != null" >
				name = #{name}
			</if>
		</set>

		where id = #{id}
	</update>

	<delete id="delete" >
		delete from demoMysql2 where id = #{id}
	</delete>
	
	<select id="get"  resultType="DemoMysql2">
	    select name from demoMysql2 where id = #{id}
	</select>
	
	<select id="list"  resultType="DemoMysql2">
	    select name from demoMysql2
	</select>
	
</mapper>

DemoMysql2Dao.java

package com.xx.xxdp.dao.mysql.demo;

import java.util.List;

import com.xx.xxdp.domain.mysql.demo.DemoMysql;
import org.apache.ibatis.annotations.Param;

import com.xx.xxdp.domain.mysql.demo.DemoMysql2;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;


/**
 * demo dao
 */
@Repository
public interface DemoMysql2Dao {
	public int insert(DemoMysql2 demo);//注意方法名和Mapper中定义一致
	public int delete(@Param("id") Integer id);
	public int update(DemoMysql2 demo);
	public DemoMysql2 get(@Param("id") Integer id);
	public List<DemoMysql2> list();
    //注解形式
    @Select("select name,title from demoMysql2")
    public List<DemoMysql2> getList();
}

service接口

package com.xx.xxdp.service.demo;

import org.springframework.transaction.annotation.Transactional;

import com.xx.xxdp.domain.hivemeta.demo.DemoHiveMeta;
import com.xx.xxdp.domain.mysql.demo.DemoMysql;

import java.util.List;



public interface DemoService {

	/**
	 * 跨数据源的事务, DemoMysql和DemoHiveMeta位于不同的数据库
	 * @param demoMysql
	 * @param meta
	 */
	@Transactional
	public void update(DemoMysql demoMysql, DemoHiveMeta meta);
        //注解的形式
        public List<DemoMysql> setList();
}

   Impl调用实例

package com.xx.xxdp.service.demo.impl;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.xx.xxdp.dao.hivemeta.demo.DemoHiveMetaDao;
import com.xx.xxdp.dao.mysql.demo.DemoMysqlDao;
import com.xx.xxdp.domain.hivemeta.demo.DemoHiveMeta;
import com.xx.xxdp.domain.mysql.demo.DemoMysql;
import com.xx.xxdp.service.demo.DemoService;

import java.util.List;


/**
 * demo服务实现类
 * @author  
 */
 @Service("demoService")
public class DemoServiceImpl implements DemoService {
	private final static Logger LOG = Logger.getLogger(DemoServiceImpl.class);
	@Autowired
	private DemoMysqlDao demoMysqlDao;
	@Autowired
	private DemoHiveMetaDao demoHiveMetaDao;
	
	public void update(DemoMysql demoMysql, DemoHiveMeta meta) {

		demoMysqlDao.update(demoMysql);
		if (  1 == 1 ) {
			throw new RuntimeException();
		}
		demoHiveMetaDao.update(meta);
	}

    public List<DemoMysql> setList(){
        return demoMysqlDao.getList();
    }
}

 接下来就是@Controller调用了

@Controller
public class SingleAnalysisControl {
    private static final Logger log = Logger.getLogger(Control.class);
    @Resource(name="demoService")
    private demoServiceDemoService;


    @RequestMapping(value = "/getList", method = RequestMethod.GET)
    public ModelAndView getSingleAnalysis(HttpServletRequest httpServletRequest,@RequestParam(value = "sku", required = false, defaultValue = "") String sku,@RequestParam(value = "theDay", required = false, defaultValue = "") String theDay) {
        ModelAndView view = new ModelAndView();
        List<DemoMysql> listPro=null;
        try {
            if (theDay.isEmpty()) {
                return null;
            } else { 
                listPro = demoService.getList();
                view.addObject("listViewsSourceDetail",listPro);
            }
        } catch (Exception ex) {
            log.error(ex.getMessage());
        }
        return view;
    }
}