blob: 370639f9ca4650167bed40a454ea67d4e3b56678 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8" ?>
<sqlMap
namespace="phonebook"
xmlns="http://ibatis.apache.org/mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
  <parameterMaps>
    <parameterMap id="entry_save_param">
<parameter property="last_name"/>
<parameter property="first_name"/>
<parameter property="extension"/>
<parameter property="user_name"/>
<parameter property="hired"/>
<parameter property="hours"/>
<parameter property="editor"/>
    <parameter property="entry_key"/>   
        </parameterMap>    
 
  </parameterMaps>
<statements>
<select id="last_name_list" resultClass="string">
SELECT DISTINCT
last_name
FROM entry
ORDER BY last_name
</select>
<select id="first_name_list" resultClass="string">
SELECT DISTINCT
first_name
FROM entry
ORDER BY first_name
</select>
<select id="extension_list" resultClass="string">
SELECT DISTINCT
extension
FROM entry
ORDER BY extension
</select>
<select id="user_name_list" resultClass="string">
SELECT DISTINCT
user_name
FROM entry
ORDER BY user_name
</select>
<select id="hired_list" resultClass="date">
SELECT DISTINCT
hired
FROM entry
ORDER BY hired
</select>
<select id="hours_list" resultClass="string">
SELECT DISTINCT
hours
FROM entry
ORDER BY hours
</select>
<select id="entry" paramClass="Hashtable" resultClass="Hashtable">
SELECT
last_name,
first_name,
extension,
user_name,
hired,
hours,
editor,
pk_entry AS entry_key
FROM entry
<dynamic prepend="WHERE">
<isNotNull property="initial" prepend="AND">
last_name LIKE #initial#
</isNotNull>
<isNotNull property="last_name" prepend="AND">
last_name=#last_name#
</isNotNull>
<isNotNull property="first_name" prepend="AND">
first_name=#first_name#
</isNotNull>
<isNotNull property="extension" prepend="AND">
extension=#extension#
</isNotNull>
<isNotNull property="user_name" prepend="AND">
user_name=#user_name#
</isNotNull>
<isNotNull property="hired" prepend="AND">
hired=#hired#
</isNotNull>
<isNotNull property="hours" prepend="AND">
hours=#hours#
</isNotNull>
<isNotNull property="editor" prepend="AND">
hours=#editor#
</isNotNull>
<isNotNull property="entry_key" prepend="AND">
pk_entry=#entry_key#
</isNotNull>
</dynamic>
<dynamic>
<isNotNull property="item_limit">
LIMIT #item_limit# OFFSET #item_offset#
</isNotNull>
</dynamic>;
</select>
<select id="entry_count" paramClass="Hashtable" resultClass="string">
SELECT COUNT(*) FROM entry
<dynamic prepend="WHERE">
<isNotNull property="initial" prepend="AND">
last_name LIKE #initial#
</isNotNull>
<isNotNull property="last_name" prepend="AND">
last_name=#last_name#
</isNotNull>
<isNotNull property="first_name" prepend="AND">
first_name=#first_name#
</isNotNull>
<isNotNull property="extension" prepend="AND">
extension=#extension#
</isNotNull>
<isNotNull property="user_name" prepend="AND">
user_name=#user_name#
</isNotNull>
<isNotNull property="hired" prepend="AND">
hired=#hired#
</isNotNull>
<isNotNull property="hours" prepend="AND">
hours=#hours#
</isNotNull>
<isNotNull property="editor" prepend="AND">
hours=#editor#
</isNotNull>
<isNotNull property="entry_key" prepend="AND">
pk_entry=#entry_key#
</isNotNull>
</dynamic>
</select>
<select id="entry_initial" paramClass="string" resultClass="string">
SELECT COUNT(*)
FROM entry
WHERE last_name LIKE #value#
</select>
<insert id="entry_insert" parameterMap="entry_save_param">
    INSERT INTO entry (    
last_name,
first_name,
extension,
user_name,
hired,
hours,
editor,
pk_entry
)
VALUES (?,?,?,?, ?,?,?,?)
</insert>
<update id="entry_update" parameterMap="entry_save_param">
UPDATE entry SET
last_name=?,
first_name=?,
extension=?,
user_name=?,
hired=?,
hours=?,
editor=?
WHERE
pk_entry=?
</update>
<delete id="entry_delete" paramClass="Hashtable">
DELETE FROM entry WHERE pk_entry=#entry_key#;
</delete>
</statements>
</sqlMap>