PostgreSQLGeneratorDao.xml 2.06 KB
Newer Older
mengmeng's avatar
mengmeng committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
<?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="io.hmit.dao.PostgreSQLGeneratorDao">
    <resultMap id="tableMap" type="map">
        <result column="tablename" property="tableName"></result>
        <result column="tablecomment" property="tableComment"></result>
        <result column="columnname" property="columnName"></result>
        <result column="datatype" property="dataType"></result>
        <result column="columncomment" property="columnComment"></result>
        <result column="columnkey" property="columnKey"></result>
        <result column="extra" property="extra"></result>
        <result column="createtime" property="createTime"></result>
    </resultMap>

    <select id="queryList" resultMap="tableMap">
        select t1.tablename as tableName, obj_description(relfilenode, 'pg_class') as tableComment, now() as createTime
        from pg_tables t1, pg_class t2
        where t1.tablename not like 'pg%' and t1.tablename not like 'sql_%' and t1.tablename = t2.relname
        <if test="tableName != null and tableName.trim() != ''">
            and t1.tablename like concat('%', #{tableName}, '%')
        </if>
        order by t1.tablename desc
    </select>

    <select id="queryTable" resultMap="tableMap">
		select t1.tablename as tableName, obj_description(relfilenode, 'pg_class') as tableComment, now() as createTime from pg_tables t1, pg_class t2
			where t1.tablename = #{tableName} and t1.tablename = t2.relname
	</select>

    <select id="queryColumns" resultMap="tableMap">
 		select t2.attname as columnName, pg_type.typname as dataType, col_description(t2.attrelid,t2.attnum) as columnComment, '' as extra,
			(CASE t3.contype WHEN 'p' THEN 'PRI' ELSE '' END) as columnKey
		from pg_class as t1, pg_attribute as t2 inner join pg_type on pg_type.oid = t2.atttypid
			left join pg_constraint t3 on t2.attnum = t3.conkey[1] and t2.attrelid = t3.conrelid
		where t1.relname = #{tableName} and t2.attrelid = t1.oid and t2.attnum>0
	</select>
</mapper>