Java Programming
Languages in Depth Series
Chair of Software Engineering
JDBC Spring Framework Web Services
Marco Piccioni May 31st 2007
Java Programming Languages in Depth Series JDBC Spring Framework - - PowerPoint PPT Presentation
Chair of Software Engineering Java Programming Languages in Depth Series JDBC Spring Framework Web Services Marco Piccioni May 31st 2007 What will we be talking about Java Data Base Connectivity The Spring Framework: introduction
Languages in Depth Series
Chair of Software Engineering
Marco Piccioni May 31st 2007
Java Programming: Spring Framework and JDBC 2
Java Programming: Spring Framework and JDBC 3
Java Programming: Spring Framework and JDBC 4
JDBC ODBC Bridge Driver RDBMS J D B C A P I Java code + SQL JDBC Driver
Java Programming: Spring Framework and JDBC 5
Java Programming: Spring Framework and JDBC 6
Java Programming: Spring Framework and JDBC 7
Java Programming: Spring Framework and JDBC 8
Java Programming: Spring Framework and JDBC 9
Java Programming: Spring Framework and JDBC 10
Java Programming: Spring Framework and JDBC 11
public String getPassword(String name) throws ApplicationException{ String sql = "SELECT password FROM Customers WHERE id=‘" +name+“‘ "; String password = null; Connection con = null; Statement s = null; ResultSet rs = null; try { con = <get connection from DataSource>; s = con.createStatement(); rs = s.executeQuery (sql); while (rs.next()) { password = rs.getString(1); }
con.close(); }catch (SQLException ex) { throw new ApplicationException ("Couldn't run query [" + sql + "]", ex); } return password; }
Java Programming: Spring Framework and JDBC 12
public String getPassword(String name) throws ApplicationException{ <as before…>
} catch (SQLException ex) { throw new ApplicationException ("Couldn't run query [" + sql + "]", ex); } finally { try { if (con != null) { con. close();} } catch (SQLException ex) { throw new ApplicationException ("Failed to close connection", ex);} } //end finally return password; }
Java Programming: Spring Framework and JDBC 13
String query = "Select * from Courses where " + " id = \"" + id + "\"" + " and name = \"" + name + "\"" + " and year = " + year;
Java Programming: Spring Framework and JDBC 14
String SQL = “select * from Courses where id = ? and name = ? and year = ? "; PreparedStatement pstmt = connection.prepareStatement(SQL); pstmt.setString(1,id); pstmt.setString(2,name); pstmt.setInt(3,year); pstmt.executeQuery();
Java Programming: Spring Framework and JDBC 15
Java Programming: Spring Framework and JDBC 16
Java Programming: Spring Framework and JDBC 17
Picture from http://static.springframework.org/spring/docs/2.0.x/reference/introduction.html
Java Programming: Spring Framework and JDBC 18
Java Programming: Spring Framework and JDBC 19
public class HelloWorld { public static void main(String[] aaargh) { System.out.println(”Hello again?!"); } }
Java Programming: Spring Framework and JDBC 20
Java Programming: Spring Framework and JDBC 21
Java Programming: Spring Framework and JDBC 22
<<interface>> MessageRenderer +setMessageProvider() +getMessageProvider() +render() StandardOutMessageRenderer +setMessageProvider() +getMessageProvider() +render() <<interface>> MessageProvider +getMessage() HelloWorldMessageProvider +getMessage()
Java Programming: Spring Framework and JDBC 23
public class DecoupledHelloWorld { public static void main(String[] args) { MessageRenderer mr = new StandardOutMessageRenderer(); MessageProvider mp = new HelloWorldMessageProvider(); mr.setMessageProvider(mp); mr.render(); } }
Java Programming: Spring Framework and JDBC 24
public class DecoupledHelloWorldWithFactory { public static void main(String[] args) { MessageRenderer mr= MessageSupportFactory.getInstance().getMessageRe nderer(); MessageProvider mp = MessageSupportFactory.getInstance().getMessagePr
mr.setMessageProvider(mp); mr.render(); } }
Java Programming: Spring Framework and JDBC 25
private MessageSupportFactory() {
bundle=ResourceBundle.getBundle("ch.ethz.inf.java.hell
String rendererClass=bundle.getString("renderer.class"); String providerClass=bundle.getString("provider.class"); try { renderer=(MessageRenderer) Class.forName(rendererClass).newInstance(); provider=(MessageProvider) Class.forName(providerClass).newInstance(); } catch (InstantiationException e) { //exception handling code } catch (IllegalAccessException e) { //exception handling code } catch (ClassNotFoundException e) { //exception handling code } }
Java Programming: Spring Framework and JDBC 26
Java Programming: Spring Framework and JDBC 27
Java Programming: Spring Framework and JDBC 28
public class XmlConfigHelloSpringDI {
public static void main(String[] args) throws Exception { BeanFactory factory = getBeanFactory(); MessageRenderer mr = (MessageRenderer)factory.getBean("renderer"); mr.render(); } private static BeanFactory getBeanFactory() throws Exception { XmlBeanFactory factory = new XmlBeanFactory(new FileSystemResource("src/ch/ethz/inf/java/hello/msgConf .xml")); return factory; } }
Java Programming: Spring Framework and JDBC 29
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN//EN"
"http://www.springframework.org/dtd/spring- beans.dtd"> <beans> <bean id="renderer" class=“ch.ethz.inf.java.hello.StandardOutMessageRen derer"> <property name="messageProvider"> <ref local="provider"/> </property> </bean> <bean id="provider" class="ch.ethz.inf.java.hello.HelloWorldMessageProv ider"/> </bean></beans>
Java Programming: Spring Framework and JDBC 30
Java Programming: Spring Framework and JDBC 31
Java Programming: Spring Framework and JDBC 32
Java Programming: Spring Framework and JDBC 33
Java Programming: Spring Framework and JDBC 34
public class ConfigurableMessageProvider implements MessageProvider { private String message; private ConfigurableMessageProvider(String message) { this.message=message; } public String getMessage() { return message; } }
Java Programming: Spring Framework and JDBC 35
Java Programming: Spring Framework and JDBC 36
Java Programming: Spring Framework and JDBC 37
… <bean id=“sportsman" class=“ch.ethz.inf.java.injection.Sportsman"> <property name="sponsor"> <ref local="aSponsor"/> </property> <property name=“sportEvents"> <map> <entry key="Olympiads 2000"> <value>100 mt</value> </entry> <entry key="Olympiads 2004"> <value>200 mt</value> </entry> </map> </property> </bean> <bean id="aSponsor" class="ch.ethz.inf.java.injection.TechnicalSponsor"> <property name="name"> <value>Adidas</value> </property> </bean> …
Java Programming: Spring Framework and JDBC 38
Java Programming: Spring Framework and JDBC 39
<bean id=”nonSingleton” class=”pickapkg.aClass” singleton=”false”/>
Java Programming: Spring Framework and JDBC 40
Java Programming: Spring Framework and JDBC 41
Java Programming: Spring Framework and JDBC 42
Java Programming: Spring Framework and JDBC 43
public String getPassword(String name) throws ApplicationException{ <as before…>
} catch (SQLException ex) { throw new ApplicationException ("Couldn't run query [" + sql + "]", ex); } finally { try { if (con != null) { con. close();} } catch (SQLException ex) { throw new ApplicationException ("Failed to close connection", ex);} } //end finally return password; }
Java Programming: Spring Framework and JDBC 44
Java Programming: Spring Framework and JDBC 45
Java Programming: Spring Framework and JDBC 46
Java Programming: Spring Framework and JDBC 47
Java Programming: Spring Framework and JDBC 48
Java Programming: Spring Framework and JDBC 49
Java Programming: Spring Framework and JDBC 50
Java Programming: Spring Framework and JDBC 51
Java Programming: Spring Framework and JDBC 52
Java Programming: Spring Framework and JDBC 53
Java Programming: Spring Framework and JDBC 54
Java Programming: Spring Framework and JDBC 55
Java Programming: Spring Framework and JDBC 56
Java Programming: Spring Framework and JDBC 57
Picture from http://en.wikipedia.org/wiki/Web_services
Java Programming: Spring Framework and JDBC 58
Java Programming: Spring Framework and JDBC 59
Java Programming: Spring Framework and JDBC 60
Java Programming: Spring Framework and JDBC 61
Java Programming: Spring Framework and JDBC 62
Java Programming: Spring Framework and JDBC 63
Java Programming: Spring Framework and JDBC 64
Java Programming: Spring Framework and JDBC 65
Java Programming: Spring Framework and JDBC 66
Java Programming: Spring Framework and JDBC 67
Java Programming: Spring Framework and JDBC 68
Java Programming: Spring Framework and JDBC 69
Java Programming: Spring Framework and JDBC 70
Java Programming: Spring Framework and JDBC 71