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代理接口的实现的更多相关文章

  1. Mybatis源码解析(三) —— Mapper代理类的生成

    Mybatis源码解析(三) -- Mapper代理类的生成   在本系列第一篇文章已经讲述过在Mybatis-Spring项目中,是通过 MapperFactoryBean 的 getObject( ...

  2. Mybatis的基础配置

    mybatis相关配置 mybatis核心文件配置的用法以及事例(初级) properties标签:获取外部的配置文件 <properties resource="jdbc.prope ...

  3. Spring+SpringMVC+MyBatis深入学习及搭建(二)——MyBatis原始Dao开发和mapper代理开发

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6869133.html 前面有写到Spring+SpringMVC+MyBatis深入学习及搭建(一)——My ...

  4. Mybatis 和Spring整合之mapper代理开发

    F:\1ziliao\mybatis\代码 1.1 SqlMapConfig.xml <?xml version="1.0" encoding="UTF-8&quo ...

  5. Mybatis框架基础入门(三)--Mapper动态代理方式开发

    使用MyBatis开发Dao,通常有两个方法,即原始Dao开发方法和Mapper动态代理开发方法. 原始Dao开发方法需要程序员编写Dao接口和Dao实现类,此方式开发Dao,存在以下问题: Dao方 ...

  6. Mybatis第六篇【配置文件和映射文件再解读、占位符、主键生成与获取、Mapper代理】

    配置文件和映射文件再解读 映射文件 在mapper.xml文件中配置很多的sql语句,执行每个sql语句时,封装为MappedStatement对象,mapper.xml以statement为单位管理 ...

  7. mybatis 基础1(动态代理)

    我目前使用的是mybatis 3.3.0版本. 可使用 1.xml文本, 2.dao类, 3.sqlSession.getMapper(Class<T> type), 生成sql类, 原理 ...

  8. 用mybatis实现dao的编写或者实现mapper代理

    一.mybatis和hibernate的区别和应用场景hibernate:是一个标准的ORM框架(对象关系映射).入门门槛较高的,不需要写sql,sql语句自动生成了.对sql语句进行优化.修改比较困 ...

  9. Mybatis【逆向工程,缓存,代理】知识要点

    前言 本文主要讲解Mybatis的以下知识点: Mybatis缓存 一级缓存 二级缓存 与Ehcache整合 Mapper代理 使用Mapper代理就不用写实现类了 逆向工程 自动生成代码 Mybat ...

随机推荐

  1. TFS Build Definition And Auto Deploy

    一台build machine上一般只有一个build service[对应一个build controller]来serve一个team project collection,但又workaroun ...

  2. Topcoder几例C++字符串应用

    本文写于9月初,是利用Topcoder准备应聘时的机试环节临时补习的C++的一部分内容.签约之后,没有再进行练习,此文暂告一段落. 换句话说,就是本文太监了,一直做草稿看着别扭,删掉又觉得可惜,索性发 ...

  3. CSS3新增属性

    1>RGBA透明度(红.绿.蓝.alpha透明度) 2>块阴影 box-shadow(标签).text-shadow(文字) 3>圆角阴影 border-radius 4>边框 ...

  4. Netty

    首先值得注意的是netty的jar包版本问题,版本不同,运用的方式也不同.我这里用4.0版本. 对于小白来说,netty到底是什么,我就没必要在这里阐明了,因为百度上比我描述的更全面. 这里就直接开门 ...

  5. java中String、stringbuilder、stringbuffer区别

    1.可变与不可变 String类中使用字符数组保存字符串,如下就是,因为有"final"修饰符,所以可以知道string对象是不可变的.每次对String对象进行改变的时候其实都等 ...

  6. StringBuilder类型

    一.概念 String对象时不可变的,每次使用String类中的一个方法时,都要在内存中创建一个新的字符串对象,这就需要为该对象分配新的空间.在需要对字符串执行重复修改的情况下,与创建新的String ...

  7. 用Redis构建分布式锁-RedLock(真分布)

    在不同进程需要互斥地访问共享资源时,分布式锁是一种非常有用的技术手段. 有很多三方库和文章描述如何用Redis实现一个分布式锁管理器,但是这些库实现的方式差别很大,而且很多简单的实现其实只需采用稍微增 ...

  8. js对象的继承以及公有私有属性的定义和读写

    最近想写一些js工具,有些方面需要用到面向对象的方法,比如继承父类属性和方法.通过私有化隐藏某些对象的属性等,因为没有系统的学习js,所以不知道怎么做,觉得很伤脑筋. 今天受到技术群里朋友的提示,并查 ...

  9. css元素居中方法

    几种居中方式,分情况使用: 1.已知父盒子宽度,子盒子宽度: div{ transform: translate(-50%,-50%); //margin-left: - 自身宽度一半: positi ...

  10. silverlight控件阴影效果示例

    <ScrollViewer MaxHeight="400" VerticalScrollBarVisibility="Auto" HorizontalSc ...