mybatis连接数据库的几种方式
1.可以通过配置文件
<?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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
<!-- 自动扫描 -->
<context:component-scan base-package="gamedataserver"></context:component-scan>
<!-- 引入配置文件 -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:jdbc.properties" />
</bean> <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>
</beans>
这里有三个数据源
2.可以通过注解(不需要mapping.xml)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--
<properties resource="mybatis/jdbc.properties"/>
--> <typeAliases>
<typeAlias alias="Player" type="gamedataserver.model.Player"/>
<typeAlias alias="ServerConfig" type="gamedataserver.model.ServerConfig"/>
</typeAliases> <environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper class="gamedataserver.dao.one.PlayerMapper"/>
<mapper class="gamedataserver.dao.two.ServerConfigMapper"/>
</mappers>
</configuration>
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);
}
鼓励:觉得写得有帮助就支付宝扫一下吧,对你没有损失,也给我动力

mybatis连接数据库的几种方式的更多相关文章
- c3p0连接数据库的3种方式
c3p0连接数据库的3种方式,这里以mysql为例 1. 直接用set方法设置参数, 基本方法 ComboPooledDataSource dataSource = new ComboPooledDa ...
- sqlplus连接数据库的4种方式
本文对sqlplus连接数据库的几种方式进行大概介绍 下面是我的tnsnames.ora相关信息: /opt/oracle/product/10.1.0/db_1/network/admin/tnsn ...
- Java通过JDBC连接数据库的三种方式!!!并对数据库实现增删改查
前言 java连接数据库完整流程为: 1,获得驱动(driver),数据库连接(url),用户名(username),密码(password)基本信息的三种方式. 2,通过获得的信息完成JDBC实现连 ...
- mybatis批量更新两种方式:1.修改值全部一样 2.修改每条记录值不一样
Mybatis批量更新数据 mybatis批量更新两种方式:1.修改值全部一样 2.修改每条记录值不一样 mybatis批量更新两种方式:1.修改值全部一样 2.修改每条记录值不一样 mybatis批 ...
- php连接数据库的两种方式- 面向过程 面向对象
php连接数据库的两种方式- 面向过程 面向对象 一.面向对象1. 链接数据库$conn = @new mysqli("127.0.0.1","root", ...
- 在springboot中使用Mybatis Generator的两种方式
介绍 Mybatis Generator(MBG)是Mybatis的一个代码生成工具.MBG解决了对数据库操作有最大影响的一些CRUD操作,很大程度上提升开发效率.如果需要联合查询仍然需要手写sql. ...
- JSP连接数据库的两种方式:Jdbc-Odbc桥和Jdbc直连(转)
学JSP的同学都要知道怎么连数据库,网上的示例各有各的做法,弄得都不知道用谁的好.其实方法千变万化,本质上就两种:Jdbc-Odbc桥和Jdbc直连. 下面先以MySQL为例说说这两种方式各是怎么连的 ...
- 开发工具:Mybatis.Plus.插件三种方式的逆向工程
本文源码:GitHub·点这里 || GitEE·点这里 一.逆向工程简介 在Java开发中,持久层最常用的框架就是mybatis,该框架需要编写sql语句,mybatis官方提供逆向工程,可以把数据 ...
- JDBC连接数据库的四种方式:DriverManager,DataSource,DBCP,C3P0
方法1:使用java.sql.DriverManager类 驱动管理器类,用于管理所有注册的驱动程序. (注:DataSource 接口是 JDBC 2.0 API 中的新增内容,它提供了连接到数据源 ...
随机推荐
- 飞控入门之C语言指针回顾
指针 何为指针?来个官方定义:指针是一个值为内存地址的变量(或数据对象). 一.指针的声明 //示例 int *pi; //pi是指向int类型变量的指针 char *pc; // pi是指向char ...
- Python的scrapy之爬取6毛小说网的圣墟
闲来无事想看个小说,打算下载到电脑上看,找了半天,没找到可以下载的网站,于是就想自己爬取一下小说内容并保存到本地 圣墟 第一章 沙漠中的彼岸花 - 辰东 - 6毛小说网 http://www.6ma ...
- GoLand(二)语言结构和基础语法
Infi-chu: http://www.cnblogs.com/Infi-chu/ 一.Go语言结构1.Go语言有6大部分组成,分别是:包声明.引入包.函数.变量.语句或表达式.注释2.输出一个He ...
- SSM整合思路
引自网友: https://zhuanlan.zhihu.com/p/23917781
- 20155333 实现mypwd
20155333 实现mypwd 学习pwd命令 Linux中用 pwd 命令来查看"当前工作目录"的完整路径. 命令格式:pwd [选项] 命令功能:查看"当前工作目录 ...
- Kubernetes学习之路(十五)之Ingress和Ingress Controller
目录 一.什么是Ingress? 1.Pod 漂移问题 2.端口管理问题 3.域名分配及动态更新问题 二.如何创建Ingress资源 三.Ingress资源类型 1.单Service资源型Ingres ...
- kali base64命令的使用
1.启动终端 2.输入base64 3.输入需要编码的字符串 4,CTRL+D,结束输入,在屏幕上回显输出结果
- 菜鸟vimer成长记——第2.3章、insert模式
大部分的Vim 命令都在非插入模式中执行,不过有些功能在插入模式中会更好实现些. 如果没有输入当前文件不存在的新文本的需求时,建议通过其他模式来操作完成. 目的 掌握inser模式下常用操作的语法和概 ...
- Flutter - Error: 'xxx' is imported from both package...
Compiler message: lib/main.dart:77:32: Error: 'Toast' is imported from both 'package:easy_alert/src/ ...
- (转载)jquery实现全选、反选、获得所有选中的checkbox
举了7个不同的checkbox状态,和大家一一分享. 1.全选 $("#btn1").click(function(){ $("input[name='checkbox' ...