通过外部配置文件做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名为addItemsql语句。

原文地址:https://www.cnblogs.com/hyj-zy/p/5648936.html