mybatis与数据库的交互方式

1.可以通过配置文件

<?xml version="1.0" encoding="UTF-8"?>



<context:component-scan base-package=“gamedataserver”></context:component-scan>



<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"  
    destroy-method="close">  
    <property name="driverClassName" value="${driver}" />  
    <property name="url" value="${url}" />  
    <property name="username" value="${username}" />  
    <property name="password" value="${password}" />  
    <!-- 初始化连接大小 -->  
    <property name="initialSize" value="${initialSize}"></property>  
    <!-- 连接池最大数量 -->  
    <property name="maxActive" value="${maxActive}"></property>  
    <!-- 连接池最大空闲 -->  
    <property name="maxIdle" value="${maxIdle}"></property>  
    <!-- 连接池最小空闲 -->  
    <property name="minIdle" value="${minIdle}"></property>  
    <!-- 获取连接最大等待时间 -->  
    <property name="maxWait" value="${maxWait}"></property>  
</bean> 

   <bean id="dataSourceEx" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">  
     <!-- 数据库基本信息配置 -->
     <property name="driverClassName" value="${driver}" />  
    <property name="url" value="${urlEx}" />  
    <property name="username" value="${usernameEx}" />  
    <property name="password" value="${passwordEx}" />  
    <!-- 初始化连接大小 -->  
    <property name="initialSize" value="${initialSize}"></property>  
    <!-- 连接池最大数量 -->  
    <property name="maxActive" value="${maxActive}"></property>  
    <!-- 连接池最大空闲 -->  
    <property name="maxIdle" value="${maxIdle}"></property>  
    <!-- 连接池最小空闲 -->  
    <property name="minIdle" value="${minIdle}"></property>  
    <!-- 获取连接最大等待时间 -->  
    <property name="maxWait" value="${maxWait}"></property>  
</bean>

<bean id="dataSourceThree" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">  
     <!-- 数据库基本信息配置 -->
     <property name="driverClassName" value="${driver}" />  
    <property name="url" value="${urlThree}" />  
    <property name="username" value="${usernameThree}" />  
    <property name="password" value="${passwordThree}" />  
    <!-- 初始化连接大小 -->  
    <property name="initialSize" value="${initialSize}"></property>  
    <!-- 连接池最大数量 -->  
    <property name="maxActive" value="${maxActive}"></property>  
    <!-- 连接池最大空闲 -->  
    <property name="maxIdle" value="${maxIdle}"></property>  
    <!-- 连接池最小空闲 -->  
    <property name="minIdle" value="${minIdle}"></property>  
    <!-- 获取连接最大等待时间 -->  
    <property name="maxWait" value="${maxWait}"></property>  
</bean>

<!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件          第一个数据库链接-->  
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
    <property name="dataSource" ref="dataSource" />  
    <!-- 自动扫描mapping.xml文件 -->  
    <property name="mapperLocations" value="classpath:gamedataserver/mapping/one/*.xml"></property>  
</bean>  


  <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件          第二个数据库链接 -->  
<bean id="sqlSessionFactoryEx" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSourceEx" />
    <!-- mapper扫描 -->
     <property name="mapperLocations" value="classpath:gamedataserver/mapping/two/*.xml"></property> 
</bean>

 <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件          第二个数据库链接 -->  
<bean id="sqlSessionFactoryThree" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSourceThree" />
    <!-- mapper扫描 -->
     <property name="mapperLocations" value="classpath:gamedataserver/mapping/three/*.xml"></property> 
</bean>

<!-- DAO接口所在包名,Spring会自动查找其下的类 -->  
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
    <property name="basePackage" value="gamedataserver.dao.one" />  
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>  
</bean>

 <!-- DAOEx接口所在包名,Spring会自动查找其下的类 -->  
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
    <property name="basePackage" value="gamedataserver.dao.two" />  
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactoryEx"></property>  
</bean>

<!-- DAOEx接口所在包名,Spring会自动查找其下的类 -->  
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
    <property name="basePackage" value="gamedataserver.dao.three" />  
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactoryThree"></property>  
</bean>

<!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->

<bean name="transactionManagerEx"
    class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSourceEx"></property>
</bean>
<bean id="transactionManager"
    class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource" />
</bean>
<bean id="transactionManagerThree"
    class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSourceThree" />
</bean>

 <!-- 配置自定义Realm -->
<bean id="myRealm" class="shiro.MyRealm"/>






<!-- 安全管理器 -->
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
    <property name="realm" ref="myRealm"/>
</bean>

<!-- Shiro过滤器 核心-->
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
    <!-- Shiro的核心安全接口,这个属性是必须的 -->
    <property name="securityManager" ref="securityManager"/>
    <!-- 身份认证失败,则跳转到登录页面的配置 -->
    <property name="loginUrl" value="/jsp/admin/loginIndex.jsp"/>
    <!-- 权限认证失败,则跳转到指定页面 -->
    <property name="unauthorizedUrl" value="/jsp/admin/nopower.jsp"/>
    <!-- Shiro连接约束配置,即过滤链的定义 -->
    <property name="filterChainDefinitions">
        <value>
            <!--anon 表示匿名访问,不需要认证以及授权-->
            /css/=anon
            /js/=anon
            /fonts/=anon
            /img/=anon
            /loginIndex=anon
            
            <!--authc表示需要认证 没有进行身份认证是不能进行访问的-->
            /jsp/sysconfig/*=authc,roles[superadmin]
            /jsp/moneyRecord/*=authc
            /jsp/index.jsp=authc,roles[superadmin]
            /jsp/index_player.jsp=authc,roles[admin]
        </value>
    </property>
</bean>

<!-- 保证实现了Shiro内部lifecycle函数的bean执行 -->
<bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/>

<!-- 开启Shiro注解 -->
<bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor"/>
<bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
    <property name="securityManager" ref="securityManager"/>
</bean>

这里有三个数据源

2.可以通过注解(不需要mapping.xml)

<?xml version="1.0" encoding="UTF-8"?> package gamedataserver.dao.one;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import gamedataserver.model.Player;

public interface PlayerMapper {
@Delete( “DELETE FROM tbl_Player where id=#{id}”)
int deleteByPrimaryKey(Long id);

int insert(Player record);

int insertSelective(Player record);
@Select("SELECT * FROM tbl_Player where id=#{id}")
Player selectByPrimaryKey(Long id);
 
int updateByPrimaryKeySelective(Player record);
@Update("update tbl_Player set UserName = #{username,jdbcType=VARCHAR} ,UserPass = #{userpass,jdbcType=VARCHAR},"
  +"SessionKey = #{sessionkey,jdbcType=VARCHAR},"
  +"GameMoney = #{gamemoney,jdbcType=BIGINT},"
  +"RealName = #{realname,jdbcType=VARCHAR},"
  +"OpenRoomFreeTimes = #{openroomfreetimes,jdbcType=INTEGER},"
  +"IsMember = #{ismember,jdbcType=INTEGER},"
  +"UnionId = #{unionid,jdbcType=VARCHAR},"
  +"HeadUrl = #{headurl,jdbcType=VARCHAR},"
  +"Sex = #{sex,jdbcType=INTEGER},"
  +"Diamond = #{diamond,jdbcType=INTEGER},"
  +"GoldenFlowerCard = #{goldenflowercard,jdbcType=INTEGER},"
  +"BullCard = #{bullcard,jdbcType=INTEGER},"
  +"MahjongCard = #{mahjongcard,jdbcType=INTEGER},"
  +"LoginTime = #{logintime,jdbcType=BIGINT},"
  +"LogoutTime = #{logouttime,jdbcType=BIGINT},"
  +"CreateTime = #{createtime,jdbcType=BIGINT},"
  +"IsOnLine = #{isonline,jdbcType=INTEGER},"
  +"Version = #{version,jdbcType=VARCHAR} "
  +"where ID = #{id,jdbcType=BIGINT}")
int updateByPrimaryKey(Player record);
@Select("SELECT * FROM tbl_Player")
public List<Player> selectAllPlayer();
//这个是start limit
List<Player> selectPlayerByStartLimit(Map params);
//这个是 where
int selectPlayerByWhere(Map params);
@Select("SELECT count(*) FROM tbl_Player where CreateTime>=#{timeStartStamp} and CreateTime<=#{timeEndStamp}")
int selectPlayerCountByCreateTime(Map<String,Long> map);

}

     关注公众号一起学习

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值