zoukankan      html  css  js  c++  java
  • 通过外部配置文件做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语句。

  • 相关阅读:
    为什么要使用智能指针?
    C++如何定义一个函数指针
    Python三个处理excel表格的库
    Python的一个mysql实例
    Python利用xlutils统计excel表格数据
    PHP连接数据库的方式
    利用xlutils第三方库复制excel模板
    Python自动化办公第三方库xlwt
    Python之excel第三方库xlrd和xlwt
    Python生成器
  • 原文地址:https://www.cnblogs.com/hyj-zy/p/5648936.html
Copyright © 2011-2022 走看看