<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Der Blog von Benny Neugebauer &#187; Prepared Statements</title>
	<atom:link href="http://www.bennyn.de/tag/prepared-statements/feed" rel="self" type="application/rss+xml" />
	<link>http://www.bennyn.de</link>
	<description>Alles über die Informatik &#38; Co.</description>
	<lastBuildDate>Tue, 22 May 2012 09:22:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>MySQL NOW() equivalent in Java for prepared statements</title>
		<link>http://www.bennyn.de/programmierung/java/mysql-now-equivalent-in-java-for-prepared-statements.html</link>
		<comments>http://www.bennyn.de/programmierung/java/mysql-now-equivalent-in-java-for-prepared-statements.html#comments</comments>
		<pubDate>Sun, 01 Apr 2012 20:30:59 +0000</pubDate>
		<dc:creator>bennyn</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Date]]></category>
		<category><![CDATA[GregorianCalendar]]></category>
		<category><![CDATA[JDBC]]></category>
		<category><![CDATA[JEE]]></category>
		<category><![CDATA[JSE]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[NOW()]]></category>
		<category><![CDATA[Prepared Statements]]></category>
		<category><![CDATA[timestamp]]></category>

		<guid isPermaLink="false">http://www.bennyn.de/?p=3344</guid>
		<description><![CDATA[If you are used to MySQL then you probably know the MySQL function NOW() which inserts the current date and time in a MySQL query. But if you use JDBC and prepared statements, then you can reconstruct this function with a GregorianCalendar (which is the successor of Date): 1 2 3 4 5 6 7 [...]]]></description>
			<content:encoded><![CDATA[<p>If you are used to MySQL then you probably know the MySQL function <code>NOW()</code> which inserts the current date and time in a MySQL query. But if you use JDBC and prepared statements, then you can reconstruct this function with a <code>GregorianCalendar</code> (which is the successor of <code>Date</code>):</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> insertArticle<span style="color: #009900;">&#40;</span>Article article<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">SQLException</span>
<span style="color: #009900;">&#123;</span>
  <span style="color: #666666; font-style: italic;">//query = &quot;INSERT INTO articles(title,content,date) VALUES (?,?,NOW())&quot;;</span>
  query <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;INSERT INTO articles(title,content,date) VALUES (?,?,?)&quot;</span><span style="color: #339933;">;</span>
&nbsp;
  statement <span style="color: #339933;">=</span> connection.<span style="color: #006633;">prepareStatement</span><span style="color: #009900;">&#40;</span>query<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  statement.<span style="color: #006633;">setString</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span>, article.<span style="color: #006633;">getTitle</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  statement.<span style="color: #006633;">setString</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">2</span>, article.<span style="color: #006633;">getContent</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  statement.<span style="color: #006633;">setTimestamp</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">3</span>, <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Timestamp</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">GregorianCalendar</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getTimeInMillis</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  logger.<span style="color: #006633;">info</span><span style="color: #009900;">&#40;</span>statement<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  statement.<span style="color: #006633;">executeUpdate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.bennyn.de/programmierung/java/mysql-now-equivalent-in-java-for-prepared-statements.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL-Statements als Prepared Statements</title>
		<link>http://www.bennyn.de/programmierung/java/sql-statements-als-prepared-statements.html</link>
		<comments>http://www.bennyn.de/programmierung/java/sql-statements-als-prepared-statements.html#comments</comments>
		<pubDate>Tue, 09 Mar 2010 14:26:18 +0000</pubDate>
		<dc:creator>bennyn</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[JEE]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Prepared Statements]]></category>

		<guid isPermaLink="false">http://www.bennyn.de/programmierung/java/sql-statements-als-prepared-statements.html</guid>
		<description><![CDATA[Ein PreparedStatement besteht ist ein SQL-Statement mit Platzhaltern. Das Besondere daran ist, dass das Statement überprüft wird, bevor die Platzhalter gesetzt werden. Dadurch werden SQL-Injections verhindert. Eine SQL-Injection basiert darauf, dass ein „normales“ SQL-Statement verlängert wird. Zum Beispiel um ein „; DROP TABLE“. Durch das „;“ wird an das eigentliche SQL-Statement ein zweites Statement (nämlich [...]]]></description>
			<content:encoded><![CDATA[<p>Ein <b>PreparedStatement</b> besteht ist ein SQL-Statement mit Platzhaltern. Das Besondere daran ist, dass das Statement überprüft wird, bevor die Platzhalter gesetzt werden. Dadurch werden SQL-Injections verhindert. Eine SQL-Injection basiert darauf, dass ein „normales“ SQL-Statement verlängert wird. Zum Beispiel um ein „; DROP TABLE“. Durch das „;“ wird an das eigentliche SQL-Statement ein zweites Statement (nämlich DROP-Table) angehangen. Dadurch werden zwei SQL-Statements ausgeführt, was aber nicht im Sinne des Betreibers ist. Mit <i>Prepared Statements</i> kann dies nicht passieren, da hier das „;“ durch die vorherige Überprüfung schon missbilligt wird.</p>
<p><u>Beispiel für ein PreparedStatement:</u></p>
<p><b>repository.JdbcConnection</b></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>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
39
40
41
42
43
44
45
46
47
48
49
50
51
</pre></td><td class="code"><pre class="java" style="font-family:monospace;">    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> findById<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> nummer<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #003399;">Connection</span> con <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
        <span style="color: #003399;">PreparedStatement</span> ps <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
        <span style="color: #003399;">ResultSet</span> rs <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
        <span style="color: #003399;">String</span> sqlStr <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;SELECT * FROM cd WHERE id=?&quot;</span><span style="color: #339933;">;</span>
        LinkedList<span style="color: #339933;">&lt;</span>cd_VO<span style="color: #339933;">&gt;</span> voList <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> LinkedList<span style="color: #339933;">&lt;</span>cd_VO<span style="color: #339933;">&gt;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        CD_VO vo<span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">try</span>
        <span style="color: #009900;">&#123;</span>
            con <span style="color: #339933;">=</span> getConnection<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            ps <span style="color: #339933;">=</span> con.<span style="color: #006633;">prepareStatement</span><span style="color: #009900;">&#40;</span>sqlStr<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            ps.<span style="color: #006633;">setInt</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span>, nummer<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            rs <span style="color: #339933;">=</span> ps.<span style="color: #006633;">executeQuery</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
            <span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>rs.<span style="color: #006633;">next</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
            <span style="color: #009900;">&#123;</span>
                vo <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> CD_VO<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                vo.<span style="color: #006633;">setId</span><span style="color: #009900;">&#40;</span> rs.<span style="color: #006633;">getInt</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;id&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                vo.<span style="color: #006633;">setInterpret</span><span style="color: #009900;">&#40;</span> rs.<span style="color: #006633;">getString</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;interpret&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                vo.<span style="color: #006633;">setTitel</span><span style="color: #009900;">&#40;</span> rs.<span style="color: #006633;">getString</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;titel&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                vo.<span style="color: #006633;">setVeroeffentlichung</span><span style="color: #009900;">&#40;</span> rs.<span style="color: #006633;">getDate</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;veroeffentlichung&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                vo.<span style="color: #006633;">setCoverDatei</span><span style="color: #009900;">&#40;</span> rs.<span style="color: #006633;">getString</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;coverdatei&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                voList.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>vo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #666666; font-style: italic;">// Testausgabe:</span>
                <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> vo.<span style="color: #006633;">getId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> vo.<span style="color: #006633;">getInterpret</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> vo.<span style="color: #006633;">getTitel</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> vo.<span style="color: #006633;">getVeroeffentlichung</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span> vo.<span style="color: #006633;">getCoverDatei</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000000; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">SQLException</span> sqlex<span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            sqlex.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000000; font-weight: bold;">finally</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">try</span>
            <span style="color: #009900;">&#123;</span>
                <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span> ps <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #009900;">&#41;</span>    ps.<span style="color: #006633;">close</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span> con <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #009900;">&#41;</span>   con.<span style="color: #006633;">close</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #000000; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">SQLException</span> excSQL<span style="color: #009900;">&#41;</span>
            <span style="color: #009900;">&#123;</span>
                <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Fehler beim Abbau der SQL-Verbindung:&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                excSQL.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.bennyn.de/programmierung/java/sql-statements-als-prepared-statements.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

