`
knight_black_bob
  • 浏览: 824591 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(可以跑通,有数据库的 )mybatis+mysql+springmvc + multidatasource+Atomikos 多数据源

阅读更多

 

本文 由于上一篇 mybatis+mysql+springmvc + multidatasource+mchange 没有跑通 换另一种 不是aop 注入写的文章 看过这一篇博客的,可以看看上一篇 ,帮我找到错误。。。。。 

 

 

自动生成 代码 (自动生成mysql+springmvc + mybatis ) 

http://knight-black-bob.iteye.com/blog/2208162

 http://download.csdn.net/download/knight_black_bob/9226373

 

mybatis+mysql+springmvc + multidatasource+Atomikos 多数据源 

下载 :http://download.csdn.net/download/knight_black_bob/9233289

 

 

jar  包括

Atomikos的: 
transactions-jdbc 
transactions-jta 
transactions-api 
transactions 
atomikos-utils 

 

使用 maven

<dependency>
	<groupId>com.atomikos</groupId>
	<artifactId>transactions-jdbc</artifactId>
	<version>3.7.0</version>
</dependency>
<dependency>
	<groupId>javax.transaction</groupId>
	<artifactId>jta</artifactId>
	<version>1.1</version>
</dependency>

 

 

 



 

application Context .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:cache="http://www.springframework.org/schema/cache"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee"
	xmlns:jms="http://www.springframework.org/schema/jms" xmlns:lang="http://www.springframework.org/schema/lang"
	xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:oxm="http://www.springframework.org/schema/oxm"
	xmlns:p="http://www.springframework.org/schema/p" xmlns:task="http://www.springframework.org/schema/task"
	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:util="http://www.springframework.org/schema/util"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd    
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd    
    http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-3.1.xsd    
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd    
    http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd    
    http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd    
    http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-3.1.xsd    
    http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-3.1.xsd    
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd    
    http://www.springframework.org/schema/oxm http://www.springframework.org/schema/oxm/spring-oxm-3.1.xsd    
    http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd    
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd    
    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd">

	<context:annotation-config />
	<aop:aspectj-autoproxy proxy-target-class="true" />

    <context:component-scan base-package="cn.com.oneweb" />  
    <context:component-scan base-package="cn.com.twoweb" />  
    <context:component-scan base-package="cn.com.baoy.controller" />
	

	<bean id="propertyConfigurer"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="location" value="classpath:db-config.properties" />
	</bean>


	<bean id="dataSourceOne" class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init" destroy-method="close">  
	    <property name="uniqueResourceName" value="ds1"/>  
	    <property name="xaDataSourceClassName" value="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource"/>  
	    <property name="xaProperties">  
	        <props>  
	            <prop key="url">jdbc:mysql://localhost:3306/database?useUnicode=true&amp;characterEncoding=utf8</prop>  
	            <prop key="user">root</prop>  
	            <prop key="password">root</prop>  
	        </props>  
	    </property>  
	    <property name="minPoolSize" value="10" />  
	    <property name="maxPoolSize" value="100" />  
	    <property name="borrowConnectionTimeout" value="30" />  
	    <property name="testQuery" value="select 1" />  
	    <property name="maintenanceInterval" value="60" />  
	</bean>


	<bean id="dataSourceTwo" class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init" destroy-method="close">  
	     <property name="uniqueResourceName" value="ds2"/>  
	    <property name="xaDataSourceClassName" value="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource"/>  
	    <property name="xaProperties">  
	        <props>  
	            <prop key="url">jdbc:mysql://localhost:3306/database2?useUnicode=true&amp;characterEncoding=utf8</prop>  
	            <prop key="user">root</prop>  
	            <prop key="password">root</prop>  
	        </props>  
	    </property>  
	    <property name="minPoolSize" value="10" />  
	    <property name="maxPoolSize" value="100" />  
	    <property name="borrowConnectionTimeout" value="30" />  
	    <property name="testQuery" value="select 1" />  
	    <property name="maintenanceInterval" value="60" />  
	</bean>
    
	<!-- <bean id="dataSourceTwo" class="com.mchange.v2.c3p0.ComboPooledDataSource"
		destroy-method="close">
		<property name="driverClass" value="${two.jdbc.driverClass}" />
		<property name="jdbcUrl" value="${two.jdbc.url}" />
		<property name="user" value="${two.jdbc.user}" />
		<property name="password" value="${two.jdbc.password}" />
		<property name="initialPoolSize" value="${two.jdbc.initialPoolSize}" />
		<property name="minPoolSize" value="${two.jdbc.minPoolSize}" />
		<property name="maxPoolSize" value="${two.jdbc.maxPoolSize}" />
		<property name="checkoutTimeout" value="${two.jdbc.checkoutTimeout}" />
		<property name="idleConnectionTestPeriod" value="${two.jdbc.idleConnectionTestPeriod}" />
		<property name="maxIdleTime" value="${two.jdbc.maxIdleTime}" />
		<property name="maxStatements" value="${two.jdbc.maxStatements}" />
		<property name="testConnectionOnCheckout" value="${two.jdbc.testConnectionOnCheckout}" />
	</bean> -->

	 

</beans>   

 

applicationContext-mybatis.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:cache="http://www.springframework.org/schema/cache"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee"
	xmlns:jms="http://www.springframework.org/schema/jms" xmlns:lang="http://www.springframework.org/schema/lang"
	xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:oxm="http://www.springframework.org/schema/oxm"
	xmlns:p="http://www.springframework.org/schema/p" xmlns:task="http://www.springframework.org/schema/task"
	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:util="http://www.springframework.org/schema/util"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd    
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd    
    http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-3.1.xsd    
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd    
    http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd    
    http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd    
    http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-3.1.xsd    
    http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-3.1.xsd    
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd    
    http://www.springframework.org/schema/oxm http://www.springframework.org/schema/oxm/spring-oxm-3.1.xsd    
    http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd    
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd    
    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd">
  
	 <!-- 创建SqlSessionFactory,同时指定数据源 -->  
   <!--  <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
        <property name="dataSource" ref="dataSource"/>
        <property name="mapperLocations" value="classpath*:cn/com/*/mapper/*.xml" />
    </bean>  
    
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="cn.com.*.dao" />
    </bean> -->
    
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="cn.com.oneweb.dao" />
		<property name="sqlSessionFactory" ref="sqlSessionFactory1"/>
	</bean>
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="cn.com.twoweb.dao" />
		<property name="sqlSessionFactory" ref="sqlSessionFactory2"/>
	</bean>
    
    
    <bean id="sqlSessionFactory1" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSourceOne"/>
		<property name="mapperLocations" value="classpath*:cn/com/oneweb/mapper/*.xml" />
	</bean>
	<bean id="sqlSessionFactory2" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSourceTwo"/>
		<property name="mapperLocations" value="classpath*:cn/com/twoweb/mapper/*.xml" />
	</bean>
</beans>   

 

springmvc-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:oxm="http://www.springframework.org/schema/oxm"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
				http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
				http://www.springframework.org/schema/oxm http://www.springframework.org/schema/oxm/spring-oxm-3.0.xsd
				http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
				http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">
	<!-- 激活Spring注解方式:自动扫描,并注入bean -->
	<context:component-scan base-package="cn.com.baoy.controller" /> 

	
	<!-- 配置视图解析 -->
     <bean  
        class="org.springframework.web.servlet.view.InternalResourceViewResolver"  
        p:prefix="" p:suffix=".jsp">  
        <property name="order" value="0" />  
    </bean> 
	 <!-- 默认的注解映射的支持 -->
	<mvc:annotation-driven/>
	
	
	 
	
</beans>

 

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp"
	xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
	version="3.0">
	<display-name></display-name>

	<!-- welcome page -->
	<welcome-file-list>
		<welcome-file>/back/jsp/main.jsp</welcome-file>
	</welcome-file-list>


	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:applicationContext*.xml</param-value>
	</context-param>
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>




	<!-- springmvc -->
	<servlet>
		<servlet-name>springMVC</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:springMVC-servlet.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>springMVC</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>



</web-app>

 

UserDao

package cn.com.oneweb.dao;
import java.util.List;
import cn.com.baoy.bean.User;


public interface UserDao {

	 //查所有
	 public List<User> allUser();

	 //删除
	 public void delUser(int userId);

	 //获取一个form
	 public  User  user(int  userId);

	 //修改
	 public void updateUser(User  user);

	 //添加
	 public void addUser(User  user);

}

 

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="cn.com.oneweb.dao.UserDao">   

    <select id="allUser" resultType="cn.com.baoy.bean.User">   
    	select * from t_user   
    </select>   

    <delete id="delUser" parameterType="int">   
    	delete from t_user where userId = #{ userId}   
    </delete>   
    <insert id="addUser" parameterType="cn.com.baoy.bean.User">   
		INSERT INTO t_user   
		(userId,userName,password,tel,sex,description)   
		VALUE (null,#{userName},#{password},#{tel},#{sex},#{description})   
	</insert>   

	<select id="user" resultType="cn.com.baoy.bean.User">   
    	select * from t_user where  userId = #{ userId}   
    </select>   

	 <update id="updateUser" parameterType="cn.com.baoy.bean.User" >   
		update t_user
		 <set>   
			<if test="userName != null ">userName = #{userName},</if>   
			<if test="password != null ">password = #{password},</if>   
			<if test="tel != null ">tel = #{tel},</if>   
			<if test="sex != null ">sex = #{sex},</if>   
			<if test="description != null ">description = #{description},</if>   
		</set>   
		where   userId = #{ userId}   
	</update>	   

</mapper>   

 

service 

package cn.com.oneweb.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import cn.com.baoy.bean.User; 
import cn.com.oneweb.dao.UserDao;

@Service
 public class UserService {


   @Autowired
   UserDao userDao;


   public List<User> allUser(){
	     return userDao.allUser();
   }

   public void delUser(int userId){
	   userDao.delUser(userId);
   }

   public User user(int userId){
	   return userDao.user(userId);
   }

   public void updateUser(User user){
	   userDao.updateUser(user);
   }

   public void addUser(User user){
   	userDao.addUser(user);
   }

}

 

 

controller

import java.util.List;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import cn.com.baoy.bean.User; 
import cn.com.oneweb.service.UserService;
import cn.com.twoweb.service.User2Service;

@Controller
public class UserController {

      
      @Autowired
      User2Service user2Service;
      @Autowired
      UserService userService;

      @RequestMapping(value = "/userView.do")
      public String userView(ModelMap modelMap,String pageNo, String choice, HttpSession session){
            List<User> userList = userService.allUser();
            List<User> userList2 = user2Service.allUser();
            userList.addAll(userList2);
           modelMap.put("userList", userList);
           return "back/jsp/user/userView";
     }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

捐助开发者

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。



 
 
 谢谢您的赞助,我会做的更好!

 

 

 

  • 大小: 21.9 KB
3
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics