通过外部配置文件做mybatis的基础配置,以及Mapper代理接口的实现
1.通过外部配置文件做mybatis的基础性的配置。
1)先编写config.properties的文件(做一些动态的配置)。
配置的内容如下:
jdbc.jdbcUrl=jdbc:oracle:thin:@127.0.0.1:1521:orcl
jdbc.driverClass=oracle.jdbc.driver.OracleDriver
jdbc.user=bbs
jdbc.password=123
2)在mybatis-config.xml文件下引入config.properties文件。
<?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="config.properties"><!—引入外部的配置文件-->
</properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.jdbcUrl}"/>
<property name="url" value="${jdbc.driverClass}"/>
<property name="username" value="${jdbc.user}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/gxa/bj/model/UserInfoMapper.xml"/>
</mappers>
</configuration>
3)做一个SQL映射文件:
2.Mapper接口代理的实现。
1)先定义一个接口(主要针对数据库表操作的接口)。比如:
package com.gxa.bj.dao;
import java.util.List;
/**
* 针对数据库的数据的增删改查的功能做的接口
* @author ZY
*
*/
public interface IDaoBBS<T> {
/**
* 向数据库表里添加一条数据的方法
* @param t
* @throws SQLException
* @throws IllegalAccessException
* @throws IllegalArgumentException
*/
public int addItem(T t);
/**
* 从数据库表里删除一条数据的方法
* @param objId
*/
public int removeItem(Object objId);
/**
* 更新数据库表里的一条字段的方法
* @param t
*/
public int updateItem(T t);
/**
* 根据主键字段获取该条数据,并转换成实体对象
* @param objId
* @return
* @throws InvocationTargetException
* @throws IllegalArgumentException
* @throws IllegalAccessException
* @throws SecurityException
* @throws NoSuchMethodException
*/
public T getModel(Object objId) ;
/**
* 根据查询条件获取多条数据,并转换成相应的集合
* @param objects
* @return
* @throws InvocationTargetException
* @throws IllegalArgumentException
* @throws IllegalAccessException
* @throws SecurityException
* @throws NoSuchMethodException
*/
public List<T> getList(T t);
}
再针对该接口做一个针对UserInfo表的实现的接口:
package com.gxa.bj.dao.imp;
import com.gxa.bj.dao.IDaoBBS;
import com.gxa.bj.model.UserInfo;
public interface UserMapper extends IDaoBBS<UserInfo> {
}
2)在SQL的映射的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.gxa.bj.dao.imp.UserMapper">
<insert id="addItem" parameterType="com.gxa.bj.model.UserInfo">
insert into UserInfo(userid,username,userpwd,useremail,useraddress,regreason)
values(usernext.nextval,#{userName},#{userPwd},#{userEmail},#{userAddress},#{regReason})
</insert>
<delete id="removeItem">
delete from UserInfo where userId=#{id}
</delete>
</mapper>
注意:namespace里是所针对的接口的名称(包括包名)。
接口里的方法全部定义为SQL语句的ID名。比如接口里有一个叫做addItem的方法,那么在SQL语句里就有一个id名为addItem的sql语句。
通过外部配置文件做mybatis的基础配置,以及Mapper代理接口的实现的更多相关文章
- Mybatis源码解析(三) —— Mapper代理类的生成
Mybatis源码解析(三) -- Mapper代理类的生成 在本系列第一篇文章已经讲述过在Mybatis-Spring项目中,是通过 MapperFactoryBean 的 getObject( ...
- Mybatis的基础配置
mybatis相关配置 mybatis核心文件配置的用法以及事例(初级) properties标签:获取外部的配置文件 <properties resource="jdbc.prope ...
- Spring+SpringMVC+MyBatis深入学习及搭建(二)——MyBatis原始Dao开发和mapper代理开发
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6869133.html 前面有写到Spring+SpringMVC+MyBatis深入学习及搭建(一)——My ...
- Mybatis 和Spring整合之mapper代理开发
F:\1ziliao\mybatis\代码 1.1 SqlMapConfig.xml <?xml version="1.0" encoding="UTF-8&quo ...
- Mybatis框架基础入门(三)--Mapper动态代理方式开发
使用MyBatis开发Dao,通常有两个方法,即原始Dao开发方法和Mapper动态代理开发方法. 原始Dao开发方法需要程序员编写Dao接口和Dao实现类,此方式开发Dao,存在以下问题: Dao方 ...
- Mybatis第六篇【配置文件和映射文件再解读、占位符、主键生成与获取、Mapper代理】
配置文件和映射文件再解读 映射文件 在mapper.xml文件中配置很多的sql语句,执行每个sql语句时,封装为MappedStatement对象,mapper.xml以statement为单位管理 ...
- mybatis 基础1(动态代理)
我目前使用的是mybatis 3.3.0版本. 可使用 1.xml文本, 2.dao类, 3.sqlSession.getMapper(Class<T> type), 生成sql类, 原理 ...
- 用mybatis实现dao的编写或者实现mapper代理
一.mybatis和hibernate的区别和应用场景hibernate:是一个标准的ORM框架(对象关系映射).入门门槛较高的,不需要写sql,sql语句自动生成了.对sql语句进行优化.修改比较困 ...
- Mybatis【逆向工程,缓存,代理】知识要点
前言 本文主要讲解Mybatis的以下知识点: Mybatis缓存 一级缓存 二级缓存 与Ehcache整合 Mapper代理 使用Mapper代理就不用写实现类了 逆向工程 自动生成代码 Mybat ...
随机推荐
- TCP拥塞控制算法 优缺点 适用环境 性能分析
[摘要]对多种TCP拥塞控制算法进行简要说明,指出它们的优缺点.以及它们的适用环境. [关键字]TCP拥塞控制算法 优点 缺点 适用环境公平性 公平性 公平性是在发生拥塞时各源端(或同一源端 ...
- MySQL分区表管理
RANGE,LIST分区管理 1:为未分区表创建分区 ALTER TABLE trb3 PARTITION BY KEY(id) PARTITIONS 2; 2:删除某个分区的数据 ALTER TAB ...
- 基于angular写的一个todolist
对于新手来说,使用angularjs写一个todolist可以快速入门
- sublime 关闭自动更新
第一步: 点击菜单栏“Preferences”=> "Settings-User" 进入个人参数设置页面: 第二步: 在大括号内插入如下代码:"update_che ...
- type
MollyPages.org"You were wrong case.To live here is to live." Home Pages / Database / Forms ...
- A股各概念板块龙头股大全
A股各概念板块龙头股大全一.新兴信息产业龙头 1.车联网龙头——软控股份002073 启明信息002232.荣之联002642 2.通信网络龙头——恒宝股份002104 3.通信设备制造龙头——新海宜 ...
- vc++ mfc中拖动效果的实现 借助于CImageList
拖动是界面编程频繁使用的一个效果,在windows系统下可谓大行其道.纵观时下的应用软件几乎各个都支持各种各样拖动的效果,windows7更是把拖动做到了极致.其实说起来拖动的实现也很简单,对于有句柄 ...
- 关于angularjS与jQuery框架的那些事
这篇文章主要介绍了jQuery和angularJS的区别浅析,本文着重讲解一个熟悉jQuery的程序员如何应对angularJS中的一些编程思想的转变吗,需要的朋友可以参考下 最近一直研究angula ...
- ora-02429:无法删除用于强制唯一/主键的索引
今天打算删除orcale数据库中无用的表空间,发现报错,查资料删除,写个过程留着备用. 1.drop tablespace dldata INCLUDING CONTENTS CASCADE CONS ...
- VS中展开和折叠代码
VS2005代码编辑器的展开和折叠代码确实很方便和实用.以下是展开代码和折叠代码所用到的快捷键,很常用: Ctrl + M + O: 折叠所有方法 Ctrl + M + M: 折叠或者展开当前方法 C ...