document.write('<link rel="stylesheet" href="http://gist.github.com/stylesheets/gist/embed.css"/>')





document.write('<div id=\"gist-222091\" class=\"gist\">\n  \n  \n    \n            \n\n      <div class=\"gist-file\">\n        <div class=\"gist-data gist-syntax\">\n          \n          \n          \n            <div class=\"gist-highlight\"><pre><div class=\"line\" id=\"LC1\"><span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">JdbcProductDao<\/span> <span class=\"kd\">extends<\/span> <span class=\"n\">SimpleJdbcDaoSupport<\/span> <span class=\"kd\">implements<\/span> <span class=\"n\">ProductDao<\/span> <span class=\"o\">{<\/span><\/div><div class=\"line\" id=\"LC2\">&nbsp;<\/div><div class=\"line\" id=\"LC3\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"cm\">/** Logger for this class and subclasses */<\/span><\/div><div class=\"line\" id=\"LC4\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"kd\">protected<\/span> <span class=\"kd\">final<\/span> <span class=\"n\">Log<\/span> <span class=\"n\">logger<\/span> <span class=\"o\">=<\/span> <span class=\"n\">LogFactory<\/span><span class=\"o\">.<\/span><span class=\"na\">getLog<\/span><span class=\"o\">(<\/span><span class=\"n\">getClass<\/span><span class=\"o\">());<\/span><\/div><div class=\"line\" id=\"LC5\">&nbsp;<\/div><div class=\"line\" id=\"LC6\">&nbsp;<\/div><div class=\"line\" id=\"LC7\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"kd\">public<\/span> <span class=\"n\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"n\">Product<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">getProductList<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span><\/div><div class=\"line\" id=\"LC8\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">logger<\/span><span class=\"o\">.<\/span><span class=\"na\">info<\/span><span class=\"o\">(<\/span><span class=\"s\">&quot;Getting products!&quot;<\/span><span class=\"o\">);<\/span><\/div><div class=\"line\" id=\"LC9\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"n\">Product<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">products<\/span> <span class=\"o\">=<\/span> <span class=\"n\">getSimpleJdbcTemplate<\/span><span class=\"o\">().<\/span><span class=\"na\">query<\/span><span class=\"o\">(<\/span><\/div><div class=\"line\" id=\"LC10\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"s\">&quot;select id, description, price from products&quot;<\/span><span class=\"o\">,<\/span> <\/div><div class=\"line\" id=\"LC11\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">new<\/span> <span class=\"nf\">ProductMapper<\/span><span class=\"o\">());<\/span><\/div><div class=\"line\" id=\"LC12\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">return<\/span> <span class=\"n\">products<\/span><span class=\"o\">;<\/span><\/div><div class=\"line\" id=\"LC13\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"o\">}<\/span><\/div><div class=\"line\" id=\"LC14\">&nbsp;<\/div><div class=\"line\" id=\"LC15\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">saveProduct<\/span><span class=\"o\">(<\/span><span class=\"n\">Product<\/span> <span class=\"n\">prod<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span><\/div><div class=\"line\" id=\"LC16\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">logger<\/span><span class=\"o\">.<\/span><span class=\"na\">info<\/span><span class=\"o\">(<\/span><span class=\"s\">&quot;Saving product: &quot;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">prod<\/span><span class=\"o\">.<\/span><span class=\"na\">getDescription<\/span><span class=\"o\">());<\/span><\/div><div class=\"line\" id=\"LC17\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"kt\">int<\/span> <span class=\"n\">count<\/span> <span class=\"o\">=<\/span> <span class=\"n\">getSimpleJdbcTemplate<\/span><span class=\"o\">().<\/span><span class=\"na\">update<\/span><span class=\"o\">(<\/span><\/div><div class=\"line\" id=\"LC18\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"s\">&quot;update products set description = :description, price = :price where id = :id&quot;<\/span><span class=\"o\">,<\/span><\/div><div class=\"line\" id=\"LC19\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">new<\/span> <span class=\"nf\">MapSqlParameterSource<\/span><span class=\"o\">().<\/span><span class=\"na\">addValue<\/span><span class=\"o\">(<\/span><span class=\"s\">&quot;description&quot;<\/span><span class=\"o\">,<\/span> <span class=\"n\">prod<\/span><span class=\"o\">.<\/span><span class=\"na\">getDescription<\/span><span class=\"o\">())<\/span><\/div><div class=\"line\" id=\"LC20\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"o\">.<\/span><span class=\"na\">addValue<\/span><span class=\"o\">(<\/span><span class=\"s\">&quot;price&quot;<\/span><span class=\"o\">,<\/span> <span class=\"n\">prod<\/span><span class=\"o\">.<\/span><span class=\"na\">getPrice<\/span><span class=\"o\">())<\/span><\/div><div class=\"line\" id=\"LC21\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"o\">.<\/span><span class=\"na\">addValue<\/span><span class=\"o\">(<\/span><span class=\"s\">&quot;id&quot;<\/span><span class=\"o\">,<\/span> <span class=\"n\">prod<\/span><span class=\"o\">.<\/span><span class=\"na\">getId<\/span><span class=\"o\">()));<\/span><\/div><div class=\"line\" id=\"LC22\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">logger<\/span><span class=\"o\">.<\/span><span class=\"na\">info<\/span><span class=\"o\">(<\/span><span class=\"s\">&quot;Rows affected: &quot;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">count<\/span><span class=\"o\">);<\/span><\/div><div class=\"line\" id=\"LC23\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"o\">}<\/span><\/div><div class=\"line\" id=\"LC24\">&nbsp;&nbsp;&nbsp;&nbsp;<\/div><div class=\"line\" id=\"LC25\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"kd\">private<\/span> <span class=\"kd\">static<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">ProductMapper<\/span> <span class=\"kd\">implements<\/span> <span class=\"n\">ParameterizedRowMapper<\/span><span class=\"o\">&lt;<\/span><span class=\"n\">Product<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">{<\/span><\/div><div class=\"line\" id=\"LC26\">&nbsp;<\/div><div class=\"line\" id=\"LC27\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"kd\">public<\/span> <span class=\"n\">Product<\/span> <span class=\"nf\">mapRow<\/span><span class=\"o\">(<\/span><span class=\"n\">ResultSet<\/span> <span class=\"n\">rs<\/span><span class=\"o\">,<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">rowNum<\/span><span class=\"o\">)<\/span> <span class=\"kd\">throws<\/span> <span class=\"n\">SQLException<\/span> <span class=\"o\">{<\/span><\/div><div class=\"line\" id=\"LC28\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">Product<\/span> <span class=\"n\">prod<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">Product<\/span><span class=\"o\">();<\/span><\/div><div class=\"line\" id=\"LC29\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">prod<\/span><span class=\"o\">.<\/span><span class=\"na\">setId<\/span><span class=\"o\">(<\/span><span class=\"n\">rs<\/span><span class=\"o\">.<\/span><span class=\"na\">getInt<\/span><span class=\"o\">(<\/span><span class=\"s\">&quot;id&quot;<\/span><span class=\"o\">));<\/span><\/div><div class=\"line\" id=\"LC30\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">prod<\/span><span class=\"o\">.<\/span><span class=\"na\">setDescription<\/span><span class=\"o\">(<\/span><span class=\"n\">rs<\/span><span class=\"o\">.<\/span><span class=\"na\">getString<\/span><span class=\"o\">(<\/span><span class=\"s\">&quot;description&quot;<\/span><span class=\"o\">));<\/span><\/div><div class=\"line\" id=\"LC31\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">prod<\/span><span class=\"o\">.<\/span><span class=\"na\">setPrice<\/span><span class=\"o\">(<\/span><span class=\"k\">new<\/span> <span class=\"n\">Double<\/span><span class=\"o\">(<\/span><span class=\"n\">rs<\/span><span class=\"o\">.<\/span><span class=\"na\">getDouble<\/span><span class=\"o\">(<\/span><span class=\"s\">&quot;price&quot;<\/span><span class=\"o\">)));<\/span><\/div><div class=\"line\" id=\"LC32\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">return<\/span> <span class=\"n\">prod<\/span><span class=\"o\">;<\/span><\/div><div class=\"line\" id=\"LC33\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"o\">}<\/span><\/div><div class=\"line\" id=\"LC34\">&nbsp;<\/div><div class=\"line\" id=\"LC35\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"o\">}<\/span><\/div><div class=\"line\" id=\"LC36\">&nbsp;<\/div><div class=\"line\" id=\"LC37\"><span class=\"o\">}<\/span><\/div><\/pre><\/div>\n          \n        <\/div>\n\n        <div class=\"gist-meta\">\n          <a href=\"http://gist.github.com/raw/222091/e0b0ac0a0cc7b4fbfa515d04481410a9e4dab464/gistfile1.java\" style=\"float:right;\">view raw<\/a>\n          <a href=\"http://gist.github.com/222091#file_gistfile1.java\" style=\"float:right;margin-right:10px;color:#666\">gistfile1.java<\/a>\n          <a href=\"http://gist.github.com/222091\">This Gist<\/a> brought to you by <a href=\"http://github.com\">GitHub<\/a>.\n        <\/div>\n      <\/div>\n    \n  \n<\/div>\n')
