<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>J2EE FrameWork</title><link>http://blog.cnbb.com.cn/shiningsb/category/3921.html</link><description>J2EE FrameWork</description><managingEditor>ReachMan</managingEditor><dc:language>zh-CHT</dc:language><generator>.Text Version 0.958.2004.214</generator><item><dc:creator>ReachMan</dc:creator><title>Spring JdbcTemplate</title><link>http://blog.cnbb.com.cn/shiningsb/archive/2007/06/29/50044.html</link><pubDate>Fri, 29 Jun 2007 00:21:00 GMT</pubDate><guid>http://blog.cnbb.com.cn/shiningsb/archive/2007/06/29/50044.html</guid><wfw:comment>http://blog.cnbb.com.cn/shiningsb/comments/50044.html</wfw:comment><comments>http://blog.cnbb.com.cn/shiningsb/archive/2007/06/29/50044.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.cnbb.com.cn/shiningsb/comments/commentRss/50044.html</wfw:commentRss><trackback:ping>http://blog.cnbb.com.cn/shiningsb/services/trackbacks/50044.html</trackback:ping><description>&lt;p&gt;首先使用mysql建立数据库，并建立表如下：&lt;/p&gt;&lt;p&gt;CREATE TABLE `login` (&lt;br /&gt;&amp;#160; `username` varchar(10) default NULL,&lt;br /&gt;&amp;#160; `passwd` varchar(10) default NULL,&lt;br /&gt;&amp;#160; `address` varchar(10) default NULL&lt;br /&gt;) ENGINE=InnoDB DEFAULT CHARSET=gb2312;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Spring的JDBC框架承担了资源管理和错误处理的重担，使你的JDBC代码非常干净，这就是spring为我们提供的模板类-&amp;#160;JdbcTemplate，他是线程安全的&lt;/p&gt;&lt;p&gt;首先，我们编写配置文件，这里数据库链接部队使用了apache的pool和DBCP作为连接池&lt;/p&gt;&lt;p&gt;我们为PersonDAO这个数据库操作类，注入JdbcTemplate&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;span&gt;&amp;lt;?&lt;/span&gt;&lt;span&gt;xml&amp;#160;version="1.0"&amp;#160;encoding="UTF-8"&lt;/span&gt;&lt;span&gt;?&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;!&lt;/span&gt;&lt;span&gt;DOCTYPE&amp;#160;beans&amp;#160;PUBLIC&amp;#160;"-//SPRING//DTD&amp;#160;BEAN//EN"&amp;#160;"http://www.springframework.org/dtd/spring-beans.dtd"&amp;#160;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;beans&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&amp;#160;&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;bean&amp;#160;&lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;="dataSource"&lt;/span&gt;&lt;span&gt;&amp;#160;class&lt;/span&gt;&lt;span&gt;="org.apache.commons.dbcp.BasicDataSource"&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;property&amp;#160;&lt;/span&gt;&lt;span&gt;name&lt;/span&gt;&lt;span&gt;="driverClassName"&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;value&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;com.mysql.jdbc.Driver&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;value&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;property&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;property&amp;#160;&lt;/span&gt;&lt;span&gt;name&lt;/span&gt;&lt;span&gt;="url"&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;value&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;jdbc:mysql://localhost:3306/javaee&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;value&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;property&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;property&amp;#160;&lt;/span&gt;&lt;span&gt;name&lt;/span&gt;&lt;span&gt;="username"&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;value&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;root&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;value&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;property&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;property&amp;#160;&lt;/span&gt;&lt;span&gt;name&lt;/span&gt;&lt;span&gt;="password"&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;value&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;1234&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;value&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;property&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&amp;#160;&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;bean&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&amp;#160;&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;bean&amp;#160;&lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;="jdbcTemplate"&lt;/span&gt;&lt;span&gt;&amp;#160;class&lt;/span&gt;&lt;span&gt;="org.springframework.jdbc.core.JdbcTemplate"&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;property&amp;#160;&lt;/span&gt;&lt;span&gt;name&lt;/span&gt;&lt;span&gt;="dataSource"&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;ref&amp;#160;&lt;/span&gt;&lt;span&gt;local&lt;/span&gt;&lt;span&gt;="dataSource"&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;property&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&amp;#160;&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;bean&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;bean&amp;#160;&lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;="personDAO"&lt;/span&gt;&lt;span&gt;&amp;#160;class&lt;/span&gt;&lt;span&gt;="SpringJDBCSupport.WriteData.PersonDAO"&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;property&amp;#160;&lt;/span&gt;&lt;span&gt;name&lt;/span&gt;&lt;span&gt;="jdbcTemplate"&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;ref&amp;#160;&lt;/span&gt;&lt;span&gt;local&lt;/span&gt;&lt;span&gt;="jdbcTemplate"&lt;/span&gt;&lt;span&gt;/&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;property&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;bean&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;beans&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;下面是我们的javaBean&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;span&gt;package&lt;/span&gt;&lt;span&gt;&amp;#160;SpringJDBCSupport.WriteData;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt;&amp;#160;com.mysql.jdbc.Driver;&lt;br /&gt;&lt;img id="_87_637_Open_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" align="top" /&gt;&lt;img id="_87_637_Closed_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt;&amp;#160;Person&amp;#160;&lt;/span&gt;&lt;span id="_87_637_Closed_Text"&gt;...&lt;/span&gt;&lt;span id="_87_637_Open_Text"&gt;&lt;span&gt;{&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;private&lt;/span&gt;&lt;span&gt;&amp;#160;String&amp;#160;name;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;private&lt;/span&gt;&lt;span&gt;&amp;#160;String&amp;#160;password;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;private&lt;/span&gt;&lt;span&gt;&amp;#160;String&amp;#160;address;&lt;br /&gt;&lt;img id="_224_299_Open_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /&gt;&lt;img id="_224_299_Closed_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt;&amp;#160;Person(String&amp;#160;name,String&amp;#160;password,String&amp;#160;address)&lt;/span&gt;&lt;span id="_224_299_Closed_Text"&gt;...&lt;/span&gt;&lt;span id="_224_299_Open_Text"&gt;&lt;span&gt;{&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.name&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;name;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.password&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;password;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.address&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;address;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /&gt;&amp;#160;&amp;#160;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img id="_328_347_Open_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /&gt;&lt;img id="_328_347_Closed_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt;&amp;#160;String&amp;#160;getAddress()&amp;#160;&lt;/span&gt;&lt;span id="_328_347_Closed_Text"&gt;...&lt;/span&gt;&lt;span id="_328_347_Open_Text"&gt;&lt;span&gt;{&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt;&amp;#160;address;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img id="_388_415_Open_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /&gt;&lt;img id="_388_415_Closed_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt;&amp;#160;setAddress(String&amp;#160;address)&amp;#160;&lt;/span&gt;&lt;span id="_388_415_Closed_Text"&gt;...&lt;/span&gt;&lt;span id="_388_415_Open_Text"&gt;&lt;span&gt;{&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.address&amp;#160;&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&amp;#160;address;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img id="_441_457_Open_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /&gt;&lt;img id="_441_457_Closed_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt;&amp;#160;String&amp;#160;getName()&amp;#160;&lt;/span&gt;&lt;span id="_441_457_Closed_Text"&gt;...&lt;/span&gt;&lt;span id="_441_457_Open_Text"&gt;&lt;span&gt;{&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt;&amp;#160;name;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img id="_492_513_Open_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /&gt;&lt;img id="_492_513_Closed_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt;&amp;#160;setName(String&amp;#160;name)&amp;#160;&lt;/span&gt;&lt;span id="_492_513_Closed_Text"&gt;...&lt;/span&gt;&lt;span id="_492_513_Open_Text"&gt;&lt;span&gt;{&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.name&amp;#160;&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&amp;#160;name;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img id="_543_563_Open_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /&gt;&lt;img id="_543_563_Closed_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt;&amp;#160;String&amp;#160;getPassword()&amp;#160;&lt;/span&gt;&lt;span id="_543_563_Closed_Text"&gt;...&lt;/span&gt;&lt;span id="_543_563_Open_Text"&gt;&lt;span&gt;{&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt;&amp;#160;password;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img id="_606_635_Open_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /&gt;&lt;img id="_606_635_Closed_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt;&amp;#160;setPassword(String&amp;#160;password)&amp;#160;&lt;/span&gt;&lt;span id="_606_635_Closed_Text"&gt;...&lt;/span&gt;&lt;span id="_606_635_Open_Text"&gt;&lt;span&gt;{&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.password&amp;#160;&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&amp;#160;password;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;这是我们的数据库访问类：&lt;/p&gt;&lt;p&gt;包含了三个方法，其中execute方法是有三个参数，sql,params,type,定义type表示这是一个类型安全的方法&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;span&gt;package&lt;/span&gt;&lt;span&gt;&amp;#160;SpringJDBCSupport.WriteData;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt;&amp;#160;java.sql.PreparedStatement;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt;&amp;#160;java.sql.SQLException;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt;&amp;#160;java.sql.Types;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt;&amp;#160;java.util.List;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt;&amp;#160;org.springframework.jdbc.core.BatchPreparedStatementSetter;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt;&amp;#160;org.springframework.jdbc.core.JdbcTemplate;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;br /&gt;&lt;img id="_292_1659_Open_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" align="top" /&gt;&lt;img id="_292_1659_Closed_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt;&amp;#160;PersonDAO&amp;#160;&lt;/span&gt;&lt;span id="_292_1659_Closed_Text"&gt;...&lt;/span&gt;&lt;span id="_292_1659_Open_Text"&gt;&lt;span&gt;{&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;private&lt;/span&gt;&lt;span&gt;&amp;#160;JdbcTemplate&amp;#160;jdbcTemplate;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&lt;br /&gt;&lt;img id="_370_394_Open_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /&gt;&lt;img id="_370_394_Closed_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt;&amp;#160;JdbcTemplate&amp;#160;getJdbcTemplate()&amp;#160;&lt;/span&gt;&lt;span id="_370_394_Closed_Text"&gt;...&lt;/span&gt;&lt;span id="_370_394_Open_Text"&gt;&lt;span&gt;{&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt;&amp;#160;jdbcTemplate;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&lt;br /&gt;&lt;img id="_452_489_Open_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /&gt;&lt;img id="_452_489_Closed_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt;&amp;#160;setJdbcTemplate(JdbcTemplate&amp;#160;jdbcTemplate)&amp;#160;&lt;/span&gt;&lt;span id="_452_489_Closed_Text"&gt;...&lt;/span&gt;&lt;span id="_452_489_Open_Text"&gt;&lt;span&gt;{&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.jdbcTemplate&amp;#160;&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&amp;#160;jdbcTemplate;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&lt;br /&gt;&lt;img id="_539_743_Open_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /&gt;&lt;img id="_539_743_Closed_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;&amp;#160;insertPersonUseUpdate(Person&amp;#160;person)&lt;/span&gt;&lt;span id="_539_743_Closed_Text"&gt;...&lt;/span&gt;&lt;span id="_539_743_Open_Text"&gt;&lt;span&gt;{&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;String&amp;#160;sql&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;insert&amp;#160;into&amp;#160;login&amp;#160;values(?,?,?)&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;&lt;img id="_617_689_Open_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /&gt;&lt;img id="_617_689_Closed_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Object[]&amp;#160;params&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt;&amp;#160;Object[]&lt;/span&gt;&lt;span id="_617_689_Closed_Text"&gt;...&lt;/span&gt;&lt;span id="_617_689_Open_Text"&gt;&lt;span&gt;{&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;person.getName(),&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;person.getPassword(),&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;person.getAddress()&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.getJdbcTemplate().update(sql,params);&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img id="_793_1093_Open_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /&gt;&lt;img id="_793_1093_Closed_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;&amp;#160;insertPersonUseExecute(Person&amp;#160;person)&lt;/span&gt;&lt;span id="_793_1093_Closed_Text"&gt;...&lt;/span&gt;&lt;span id="_793_1093_Open_Text"&gt;&lt;span&gt;{&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;String&amp;#160;sql&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;insert&amp;#160;into&amp;#160;login&amp;#160;values(?,?,?)&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;&lt;img id="_871_943_Open_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /&gt;&lt;img id="_871_943_Closed_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Object[]&amp;#160;params&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt;&amp;#160;Object[]&lt;/span&gt;&lt;span id="_871_943_Closed_Text"&gt;...&lt;/span&gt;&lt;span id="_871_943_Open_Text"&gt;&lt;span&gt;{&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;person.getName(),&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;person.getPassword(),&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;person.getAddress()&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;&lt;img id="_968_1033_Open_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /&gt;&lt;img id="_968_1033_Closed_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;[]&amp;#160;types&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;[]&lt;/span&gt;&lt;span id="_968_1033_Closed_Text"&gt;...&lt;/span&gt;&lt;span id="_968_1033_Open_Text"&gt;&lt;span&gt;{&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Types.VARCHAR,&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Types.VARCHAR,&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Types.VARCHAR&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.getJdbcTemplate().update(sql,params,types);&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img id="_1155_1654_Open_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /&gt;&lt;img id="_1155_1654_Closed_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;[]&amp;#160;updatePersonUseBatchUpdate(&amp;#160;&lt;/span&gt;&lt;span&gt;final&lt;/span&gt;&lt;span&gt;&amp;#160;List&amp;#160;persons)&lt;/span&gt;&lt;span id="_1155_1654_Closed_Text"&gt;...&lt;/span&gt;&lt;span id="_1155_1654_Open_Text"&gt;&lt;span&gt;{&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;String&amp;#160;sql&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;insert&amp;#160;into&amp;#160;login&amp;#160;values(?,?,?)&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;BatchPreparedStatementSetter&amp;#160;setter&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;null&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;&lt;img id="_1289_1595_Open_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /&gt;&lt;img id="_1289_1595_Closed_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;setter&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt;&amp;#160;BatchPreparedStatementSetter()&lt;/span&gt;&lt;span id="_1289_1595_Closed_Text"&gt;...&lt;/span&gt;&lt;span id="_1289_1595_Open_Text"&gt;&lt;span&gt;{&lt;br /&gt;&lt;img id="_1318_1348_Open_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /&gt;&lt;img id="_1318_1348_Closed_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;&amp;#160;getBatchSize()&lt;/span&gt;&lt;span id="_1318_1348_Closed_Text"&gt;...&lt;/span&gt;&lt;span id="_1318_1348_Open_Text"&gt;&lt;span&gt;{&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt;&amp;#160;persons.size();&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img id="_1425_1592_Open_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /&gt;&lt;img id="_1425_1592_Closed_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt;&amp;#160;setValues(PreparedStatement&amp;#160;ps,&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;&amp;#160;index)&amp;#160;&lt;/span&gt;&lt;span&gt;throws&lt;/span&gt;&lt;span&gt;&amp;#160;SQLException&lt;/span&gt;&lt;span id="_1425_1592_Closed_Text"&gt;...&lt;/span&gt;&lt;span id="_1425_1592_Open_Text"&gt;&lt;span&gt;{&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Person&amp;#160;person&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;(Person)persons.get(index);&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;ps.setString(&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;,person.getName());&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;ps.setString(&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;,person.getPassword());&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;ps.setString(&lt;/span&gt;&lt;span&gt;3&lt;/span&gt;&lt;span&gt;,person.getAddress());&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.getJdbcTemplate().batchUpdate(sql,setter);&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;测试代码：&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;span&gt;package&lt;/span&gt;&lt;span&gt;&amp;#160;SpringJDBCSupport.WriteData;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt;&amp;#160;java.io.File;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt;&amp;#160;java.util.ArrayList;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt;&amp;#160;java.util.List;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt;&amp;#160;org.springframework.beans.factory.BeanFactory;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt;&amp;#160;org.springframework.beans.factory.xml.XmlBeanFactory;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt;&amp;#160;org.springframework.core.io.FileSystemResource;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;br /&gt;&lt;img id="_312_1264_Open_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" align="top" /&gt;&lt;img id="_312_1264_Closed_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt;&amp;#160;TestJDBCTemplate&amp;#160;&lt;/span&gt;&lt;span id="_312_1264_Closed_Text"&gt;...&lt;/span&gt;&lt;span id="_312_1264_Open_Text"&gt;&lt;span&gt;{&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span&gt;static&lt;/span&gt;&lt;span&gt;&amp;#160;String&amp;#160;filePath&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;""&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span&gt;static&lt;/span&gt;&lt;span&gt;&amp;#160;BeanFactory&amp;#160;factory&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;null&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;&lt;img id="_431_1257_Open_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /&gt;&lt;img id="_431_1257_Closed_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span&gt;static&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt;&amp;#160;main(String[]&amp;#160;args)&amp;#160;&lt;/span&gt;&lt;span id="_431_1257_Closed_Text"&gt;...&lt;/span&gt;&lt;span id="_431_1257_Open_Text"&gt;&lt;span&gt;{&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;filePath&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;System.getProperty(&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;user.dir&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;File.separator&lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;SpringJDBCSupport&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;File.separator&lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;WriteData&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;File.separator&lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;hello.xml&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;factory&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt;&amp;#160;XmlBeanFactory(&lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt;&amp;#160;FileSystemResource(filePath));&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;PersonDAO&amp;#160;personDAO&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;(PersonDAO)factory.getBean(&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;personDAO&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;&lt;img id="_694_711_Open_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /&gt;&lt;img id="_694_711_Closed_Image" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span id="_694_711_Closed_Text"&gt;/**/&lt;/span&gt;&lt;span id="_694_711_Open_Text"&gt;&lt;span&gt;/*&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;*&amp;#160;准备数据&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;*/&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Person&amp;#160;p1&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt;&amp;#160;Person(&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;test1&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;test1&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;test1&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Person&amp;#160;p2&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt;&amp;#160;Person(&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;test2&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;test2&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;test2&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Person&amp;#160;p3&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt;&amp;#160;Person(&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;test3&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;test3&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;test3&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Person&amp;#160;p4&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt;&amp;#160;Person(&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;test4&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;test4&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;test4&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Person&amp;#160;p5&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt;&amp;#160;Person(&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;test5&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;test5&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;test5&lt;/span&gt;&lt;span&gt;"&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;List&amp;#160;persons&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt;&amp;#160;ArrayList();&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;persons.add(p3);&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;persons.add(p4);&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;persons.add(p5);&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;使用jdbcTemplate.update方式&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;personDAO.insertPersonUseUpdate(p1);&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;使用jdbcTemplate.execute方式&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;personDAO.insertPersonUseExecute(p2);&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt;使用jdbcTemplate批处理方式&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&lt;/span&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;personDAO.updatePersonUseBatchUpdate(persons);&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /&gt;}&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;结果如下：保存了5条数据，后三条为批量保存，如果我们的数据库不支持批量，则spring会模拟批量操作，实际还是一条条的进行保存&lt;/p&gt;&lt;p&gt;&lt;img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/daryl715/%7B1BEECE5A-3B0A-42B0-BFC9-EC5B340EF6C1%7D.BMP" /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;img src ="http://blog.cnbb.com.cn/shiningsb/aggbug/50044.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ReachMan</dc:creator><title>[原创]Spring HibernateTemplate</title><link>http://blog.cnbb.com.cn/shiningsb/archive/2007/02/27/42842.html</link><pubDate>Tue, 27 Feb 2007 15:03:00 GMT</pubDate><guid>http://blog.cnbb.com.cn/shiningsb/archive/2007/02/27/42842.html</guid><wfw:comment>http://blog.cnbb.com.cn/shiningsb/comments/42842.html</wfw:comment><comments>http://blog.cnbb.com.cn/shiningsb/archive/2007/02/27/42842.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.cnbb.com.cn/shiningsb/comments/commentRss/42842.html</wfw:commentRss><trackback:ping>http://blog.cnbb.com.cn/shiningsb/services/trackbacks/42842.html</trackback:ping><description>这几天弱弱的研究了一下子 Spring里对Hibernate的封装----org.springframework.orm.hibernate3.HibernateTemplate 
&lt;p&gt;成功运行示例后,特拿来与研究Spring的兄弟姐妹门分享,当然比较适合初学者.要进一步提高,请在实际项目中应用 呵呵....&lt;/p&gt;&lt;p&gt;首先当然是Spring中DataSource的配置&lt;/p&gt;&lt;p&gt;在先前的 Spring DataSource Demo 一文中有详细配置说明.&lt;/p&gt;&lt;p&gt;稍微改动beans-config.xml后,详细代码如下&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN"&lt;br /&gt;&amp;#160;"&lt;a href="http://www.springframework.org/dtd/spring-beans.dtd" target="_blank"&gt;http://www.springframework.org/dtd/spring-beans.dtd&lt;/a&gt;"&amp;gt;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;lt;beans&amp;gt;&lt;br /&gt;&amp;#160;&amp;lt;bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"&amp;gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;lt;property name="driverClassName"&amp;gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;lt;value&amp;gt;com.microsoft.jdbc.sqlserver.SQLServerDriver&amp;lt;/value&amp;gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;lt;property name="url"&amp;gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;lt;value&amp;gt;jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=pubs&amp;lt;/value&amp;gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;lt;property name="username"&amp;gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;lt;value&amp;gt;sa&amp;lt;/value&amp;gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;lt;property name="password"&amp;gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;lt;value&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;#160;&amp;lt;/bean&amp;gt;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&amp;lt;bean id="daoTest" class="com.daodemo.DaoTest"&amp;gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;lt;property name="dataSource"&amp;gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;lt;ref bean="dataSource"/&amp;gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;#160;&amp;lt;/bean&amp;gt;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&amp;lt;bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&amp;gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;lt;property name="dataSource"&amp;gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;lt;ref bean="dataSource"/&amp;gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;lt;property name="mappingResources"&amp;gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;list&amp;gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;value&amp;gt;com/daodemo/Employee.hbm.xml&amp;lt;/value&amp;gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/list&amp;gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/property&amp;gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;property name="hibernateProperties"&amp;gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;props&amp;gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;prop key="hibernate.dialect"&amp;gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; org.hibernate.dialect.SQLServerDialect&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/prop&amp;gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/props&amp;gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/property&amp;gt;&lt;br /&gt;&amp;#160;&amp;lt;/bean&amp;gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&amp;lt;bean id="hibernateTemplateDemo" class="com.daodemo.HibernateTemplateDemo"&amp;gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;property name="sessionFactory"&amp;gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ref bean="sessionFactory"/&amp;gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/property&amp;gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/bean&amp;gt;&lt;br /&gt;&amp;lt;/beans&amp;gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;注意:这里完成了sessionFactory对象(bean)的创建,并且映射了先前申明的dataSource用来实例化sessionFactory&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 然后通过注入的方式,把sessionFactory注入到我自己创建的测试类HibernateTemplateDemo中,和先前的示例一样&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;这个类中必须有属性sessionFactory 并且有这个属性的set方法,才能完成注入.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;HibernateTemplateDemo.java&lt;/strong&gt;代码如下&lt;/p&gt;&lt;span class="highlight bg1" style="POSITION: relative; TOP: 10px"&gt;&lt;p&gt;package com.daodemo;&lt;/p&gt;&lt;p&gt;import java.util.ArrayList; &lt;br /&gt;import org.hibernate.SessionFactory;&lt;br /&gt;import org.springframework.context.ApplicationContext;&lt;br /&gt;import org.springframework.context.support.FileSystemXmlApplicationContext;&lt;br /&gt;import org.springframework.orm.hibernate3.HibernateTemplate;&lt;/p&gt;&lt;p&gt;public &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; HibernateTemplateDemo {&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;span style="COLOR: blue"&gt;private&lt;/span&gt; SessionFactory sessionFactory;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;span style="COLOR: blue"&gt;public&lt;/span&gt;&lt;span style="COLOR: blue"&gt;void&lt;/span&gt; setSessionFactory(SessionFactory sessionFactory) {&lt;br /&gt;&amp;#160;&amp;#160;&lt;span style="COLOR: blue"&gt;this&lt;/span&gt;.sessionFactory = sessionFactory;&lt;br /&gt;&amp;#160;}&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;span style="COLOR: blue"&gt;public&lt;/span&gt;&lt;span style="COLOR: blue"&gt;int&lt;/span&gt; query(){&lt;br /&gt;&amp;#160;&amp;#160;HibernateTemplate hibernateTemplate = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; HibernateTemplate(sessionFactory);&lt;br /&gt;&amp;#160;&amp;#160;ArrayList list = (ArrayList) hibernateTemplate.find(&lt;span style="COLOR: #ff00ff"&gt;"from Employee"&lt;/span&gt;);&lt;br /&gt;&amp;#160;&amp;#160;&lt;span style="COLOR: blue"&gt;return&lt;/span&gt; list.size();&lt;br /&gt;&amp;#160;}&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;span style="COLOR: blue"&gt;public&lt;/span&gt;&lt;span style="COLOR: blue"&gt;static&lt;/span&gt;&lt;span style="COLOR: blue"&gt;void&lt;/span&gt; main(String args[]){&lt;br /&gt;&amp;#160;&amp;#160;ApplicationContext context = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; FileSystemXmlApplicationContext(&lt;span style="COLOR: #ff00ff"&gt;"beans-config.xml"&lt;/span&gt;);&lt;br /&gt;&amp;#160;&amp;#160;HibernateTemplateDemo htd = (HibernateTemplateDemo)context.getBean(&lt;span style="COLOR: #ff00ff"&gt;"hibernateTemplateDemo"&lt;/span&gt;);&lt;br /&gt;&amp;#160;&amp;#160;System.out.println(&lt;span style="COLOR: #ff00ff"&gt;"size--"&lt;/span&gt;+htd.query());&lt;br /&gt;&amp;#160;}&lt;br /&gt;}&lt;/p&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&amp;#160;&lt;p&gt;注:这个类比较简单,测试了一下注入后的hibernateTemplate能否正常执行操作,这里要注意的是执行的HQL语句中的对象名必须和类名完全一致,即区分大小写.----- ArrayList list = (ArrayList) hibernateTemplate.find("from Employee"); -----&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;这个数据库表对象的映射类Employee.java 以及映射配置文件Employee.hbm.xml 这里不列出&lt;/p&gt;&lt;p&gt;因为可以通过hibernate插件 自动生成... (当然也可以自己写,也不难,具体写法,网上有很多Hibernate配置文章)&lt;/p&gt;&lt;p&gt;具体下载地址,请baidu搜一下(勤劳致富啊!!!&lt;img src="http://www.webtm.cn/emotion/06.gif" /&gt;)&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;有关注的兄弟发现测试有问题,请回复.... &lt;/p&gt;&lt;p&gt;最后提一下spring的实现用到了很多第三方的包,所以调试程序的时候经常会报NotDefClass等等错误.请导入相关JAR包即可解决&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;img src ="http://blog.cnbb.com.cn/shiningsb/aggbug/42842.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ReachMan</dc:creator><title>[原创]Spring DataSource Demo</title><link>http://blog.cnbb.com.cn/shiningsb/archive/2007/02/06/41623.html</link><pubDate>Tue, 06 Feb 2007 14:31:00 GMT</pubDate><guid>http://blog.cnbb.com.cn/shiningsb/archive/2007/02/06/41623.html</guid><wfw:comment>http://blog.cnbb.com.cn/shiningsb/comments/41623.html</wfw:comment><comments>http://blog.cnbb.com.cn/shiningsb/archive/2007/02/06/41623.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.cnbb.com.cn/shiningsb/comments/commentRss/41623.html</wfw:commentRss><trackback:ping>http://blog.cnbb.com.cn/shiningsb/services/trackbacks/41623.html</trackback:ping><description>&lt;p class=""&gt;本Demo实现一个简单的数据源并注入类对象,然后通过一个Main函数进行调用测试&lt;/p&gt;&lt;p class=""&gt;不想说太多理论知识 由于能力有限 怕说错误导人 请见谅&amp;#160;直接进入正题.&lt;/p&gt;&lt;p class=""&gt;1.配置文件 beans-config.xml&lt;/p&gt;&lt;div class="" id="codesource_0"&gt;&lt;p class=""&gt;&lt;/p&gt;&lt;p class=""&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt; &lt;br class="" /&gt;&amp;lt;!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" &lt;br class="" /&gt;&amp;#160;"&lt;a class="" href="http://www.springframework.org/dtd/spring-beans.dtd" target="_blank"&gt;http://www.springframework.org/dtd/spring-beans.dtd&lt;/a&gt;"&amp;gt; &lt;br class="" /&gt;&amp;#160; &lt;br class="" /&gt;&amp;lt;beans&amp;gt; &lt;br class="" /&gt;&amp;#160;&amp;lt;bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"&amp;gt; &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;lt;property name="driverClassName"&amp;gt; &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;lt;value&amp;gt;com.microsoft.jdbc.sqlserver.SQLServerDriver&amp;lt;/value&amp;gt; &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;lt;/property&amp;gt; &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;lt;property name="url"&amp;gt; &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;lt;value&amp;gt;jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=pubs&amp;lt;/value&amp;gt; &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;lt;/property&amp;gt; &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;lt;property name="username"&amp;gt; &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;lt;value&amp;gt;sa&amp;lt;/value&amp;gt; &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;lt;/property&amp;gt; &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;lt;property name="password"&amp;gt; &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;lt;value&amp;gt;&amp;lt;/value&amp;gt; &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;lt;/property&amp;gt; &lt;br class="" /&gt;&amp;#160;&amp;lt;/bean&amp;gt; &lt;br class="" /&gt;&amp;#160; &lt;br class="" /&gt;&amp;#160;&amp;lt;bean id="daoTest" class="com.daodemo.DaoTest"&amp;gt; &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;lt;property name="dataSource"&amp;gt; &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;lt;ref bean="dataSource"/&amp;gt; &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;lt;/property&amp;gt; &lt;br class="" /&gt;&amp;#160;&amp;lt;/bean&amp;gt; &lt;br class="" /&gt;&amp;lt;/beans&amp;gt;&amp;#160; &lt;br class="" /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p class=""&gt;&lt;/p&gt;&lt;p class=""&gt;注意:这个配置文件放在工程根目录下即可,关于目录调用访问问题可自行测试. &lt;/p&gt;&lt;p class=""&gt;org.springframework.context.support包下面几个读取配置文件的类 访问路径都有区别.&lt;/p&gt;&lt;p class=""&gt;&amp;#160;&lt;/p&gt;&lt;p class=""&gt;2.业务逻辑测试类(一个简单的查询操作) DaoTest.java&lt;/p&gt;&lt;div class="" id="codesource_1"&gt;&lt;p class=""&gt;&lt;/p&gt;&lt;p class=""&gt;package com.daodemo;&lt;/p&gt;&lt;p class=""&gt;import java.sql.Connection; &lt;br class="" /&gt;import java.sql.PreparedStatement; &lt;br class="" /&gt;import java.sql.ResultSet; &lt;/p&gt;&lt;p class=""&gt;import javax.sql.DataSource;&lt;/p&gt;&lt;p class=""&gt;&lt;br class="" /&gt;public class DaoTest { &lt;br class="" /&gt;&amp;#160; &lt;br class="" /&gt;&amp;#160;public DataSource dataSource; &lt;br class="" /&gt;&amp;#160; &lt;br class="" /&gt;&amp;#160;public DataSource getDataSource() { &lt;br class="" /&gt;&amp;#160;&amp;#160;return dataSource; &lt;br class="" /&gt;&amp;#160;} &lt;/p&gt;&lt;p class=""&gt;&amp;#160;public void setDataSource(DataSource dataSource) { &lt;br class="" /&gt;&amp;#160;&amp;#160; &lt;br class="" /&gt;&amp;#160;&amp;#160;this.dataSource = dataSource; &lt;br class="" /&gt;&amp;#160;} &lt;/p&gt;&lt;p class=""&gt;&amp;#160;public ResultSet getEmpName(){ &lt;br class="" /&gt;&amp;#160;&amp;#160;ResultSet rs = null; &lt;br class="" /&gt;&amp;#160;&amp;#160;try{ &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;#160;Connection con = dataSource.getConnection(); &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;#160;String sql = "select fname,lname from employee"; &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;#160;PreparedStatement pstmt = con.prepareStatement(sql); &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;#160;rs = pstmt.executeQuery(); &lt;br class="" /&gt;&amp;#160;&amp;#160;}catch(Exception e){ &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;#160;e.printStackTrace(); &lt;br class="" /&gt;&amp;#160;&amp;#160;} &lt;br class="" /&gt;&amp;#160;&amp;#160;return rs; &lt;br class="" /&gt;&amp;#160;} &lt;/p&gt;&lt;p class=""&gt;}&lt;/p&gt;&lt;p class=""&gt;&lt;/p&gt;&lt;/div&gt;&lt;p class=""&gt;&lt;/p&gt;&lt;p class=""&gt;&amp;#160;&lt;/p&gt;&lt;p class=""&gt;注意:这个类里必须要有setDataSource方法 并且具有dataSource属性,否则配置文件中的&lt;/p&gt;&lt;p class=""&gt;&amp;lt;bean id="daoTest" class="com.daodemo.DaoTest"&amp;gt; &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;lt;property name="dataSource"&amp;gt; &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;lt;ref bean="dataSource"/&amp;gt; &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;lt;/property&amp;gt; &lt;br class="" /&gt;&amp;#160;&amp;lt;/bean&amp;gt; &lt;/p&gt;&lt;p class=""&gt;将不能完成依赖注入&lt;/p&gt;&lt;p class=""&gt;3.测试类 DaoMain.java&lt;/p&gt;&lt;div class="" id="codesource_2"&gt;&lt;p class=""&gt;&lt;/p&gt;&lt;p class=""&gt;package com.daodemo;&lt;/p&gt;&lt;p class=""&gt;import java.sql.ResultSet; &lt;br class="" /&gt;import org.springframework.context.ApplicationContext; &lt;br class="" /&gt;import org.springframework.context.support.FileSystemXmlApplicationContext; &lt;br class="" /&gt;public class DaoMain { &lt;/p&gt;&lt;p class=""&gt;&amp;#160;public static void main(String[] args) { &lt;br class="" /&gt;&amp;#160;&amp;#160;try{ &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;#160;//应用程序上下文ApplicationContext类&amp;#160;是一个接口 不能直接初始化,需要用支持包中的实现类来创建context&amp;#160;对象 &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;#160;ApplicationContext context = new FileSystemXmlApplicationContext("beans-config.xml"); &lt;/p&gt;&lt;p class=""&gt;&amp;#160;&amp;#160; //用context来获得daoTest bean ,&amp;#160;这个类中的dataSource已经被注入,所以无须在业务逻辑中再初始化数据源等操作. &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;#160;DaoTest daoTest = (DaoTest) context.getBean("daoTest"); &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;#160;ResultSet rs = daoTest.getEmpName(); &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;#160;while(rs.next()){ &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;System.out.println(rs.getString("fname")+ " " +rs.getString("lname")); &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;#160;} &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;br class="" /&gt;&amp;#160;&amp;#160;}catch(Exception e){ &lt;br class="" /&gt;&amp;#160;&amp;#160;&amp;#160;e.printStackTrace(); &lt;br class="" /&gt;&amp;#160;&amp;#160;} &lt;br class="" /&gt;&amp;#160;} &lt;/p&gt;&lt;p class=""&gt;}&lt;/p&gt;&lt;p class=""&gt;&lt;/p&gt;&lt;/div&gt;&lt;p class=""&gt;&lt;/p&gt;&lt;p class=""&gt;注意:这个类中FileSystemXmlApplicationContext 也可以换成其他的类来读取bans-config.xml文件 来获得bean&lt;/p&gt;&lt;p class=""&gt;4.输出结果&lt;/p&gt;&lt;div class="" id="codesource_3"&gt;&lt;p class=""&gt;&lt;/p&gt;&lt;p class=""&gt;Aria Cruz &lt;br class="" /&gt;Ann Devon &lt;br class="" /&gt;Annette Roulet &lt;br class="" /&gt;............部分省略............... &lt;br class="" /&gt;Timothy O'Rourke &lt;br class="" /&gt;Victoria Ashworth &lt;br class="" /&gt;Yoshi Latimer &lt;/p&gt;&lt;/div&gt;&lt;div class=""&gt;5. 希望此文对想入门Spring的初学者有所帮助,希望Spring老鸟批评指正.&lt;/div&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;div&gt;注:原创文章,转载请注明出处. &lt;A href="http://blog.cnbb.com.cn/shiningsb"&gt;http://blog.cnbb.com.cn/shiningsb&lt;/a&gt;&lt;/div&gt;&lt;img src ="http://blog.cnbb.com.cn/shiningsb/aggbug/41623.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ReachMan</dc:creator><title>JSP上传文件(newxy)</title><link>http://blog.cnbb.com.cn/shiningsb/archive/2006/07/03/18981.html</link><pubDate>Mon, 03 Jul 2006 07:42:00 GMT</pubDate><guid>http://blog.cnbb.com.cn/shiningsb/archive/2006/07/03/18981.html</guid><wfw:comment>http://blog.cnbb.com.cn/shiningsb/comments/18981.html</wfw:comment><comments>http://blog.cnbb.com.cn/shiningsb/archive/2006/07/03/18981.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.cnbb.com.cn/shiningsb/comments/commentRss/18981.html</wfw:commentRss><trackback:ping>http://blog.cnbb.com.cn/shiningsb/services/trackbacks/18981.html</trackback:ping><description>&lt;span style="COLOR: #3366ff"&gt;&lt;p&gt;1.下载newxy类库 newxy1.02.zip：http://www.newxy.net/zh_cn/download/index.jsp&lt;br /&gt;2.解压，将newxy1.02.jar拷到WEB-INF/lib下，将newxy-html.tld,newxy-logic.tld,newxy-bean.tld三个标签定义文件拷到WEB-INF/classes下.&lt;br /&gt;3.复制下面代码到你的jsp文件中，就可以上传文件到服务器文件夹中了。&lt;/p&gt;&lt;p&gt;&amp;lt;%@ page contentType="text/html; charset=GBK" %&amp;gt;&lt;br /&gt;&amp;lt;%@ taglib uri="/WEB-INF/newxy-html.tld" prefix="nhtml"%&amp;gt;&lt;br /&gt;&amp;lt;%@ taglib uri="/WEB-INF/newxy-logic.tld" prefix="nlogic"%&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;lt;nlogic:action1 id="act1" formName="fileForm"/&amp;gt;&lt;br /&gt;&amp;lt;nhtml:form action="" formName="fileForm" enctype="multipart/form-data"&amp;gt;&lt;br /&gt;&amp;#160; 文件夹：&amp;lt;input type="text" name="_directory" size="40"/&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;&amp;#160; 文件1,不大于1024K：&amp;lt;nhtml:file property="file1" size="40" maxSize="1024"/&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;&amp;#160; 文件2,不大于1024K：&amp;lt;nhtml:file property="file2" size="40" maxSize="1024"/&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;&amp;lt;/nhtml:form&amp;gt;&lt;br /&gt;&amp;lt;nhtml:button actionId="act1" method="upload"/&amp;gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;你可以限制上传文件类型，参见：http://www.newxy.net/doc.jsp#anchor13.3.9&lt;/p&gt;&lt;p&gt;如果你做好了获取数据库连接的准备，将下列代码拷到jsp文件中，就可以上传文件到数据库中了。&lt;br /&gt;&amp;lt;%@ page contentType="text/html; charset=GBK" %&amp;gt;&lt;br /&gt;&amp;lt;%@ taglib uri="/WEB-INF/newxy-html.tld" prefix="nhtml"%&amp;gt;&lt;br /&gt;&amp;lt;%@ taglib uri="/WEB-INF/newxy-logic.tld" prefix="nlogic"%&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;lt;nlogic:action1 id="act1" formName="fileForm"/&amp;gt;&lt;br /&gt;&amp;lt;nhtml:form action="" formName="fileForm" enctype="multipart/form-data"&amp;gt;&lt;br /&gt;&amp;#160; 数据库表名：&amp;lt;input type="text" name="_table" size="40"/&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;&amp;#160; 说明：&amp;lt;input type="text" name="explain" size="40"/&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;&amp;#160; 文件1,不大于1024K：&amp;lt;nhtml:file property="file1" size="40" maxSize="1024"/&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;&amp;#160; 文件2,不大于1024K：&amp;lt;nhtml:file property="file2" size="40" maxSize="1024"/&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;&amp;lt;/nhtml:form&amp;gt;&lt;br /&gt;&amp;lt;nhtml:button actionId="act1" method="update"/&amp;gt;&lt;/p&gt;&lt;p&gt;获取数据连接的方法可参见 《文件上传至数据库》: http://www.newxy.net/doc.jsp#anchor15.2&lt;/p&gt;&lt;/span&gt;&lt;img src ="http://blog.cnbb.com.cn/shiningsb/aggbug/18981.html" width = "1" height = "1" /&gt;</description></item></channel></rss>