· 8 years ago · Dec 24, 2017, 03:10 PM
1package org.springhispano.screencast04;
2
3import javax.sql.DataSource;
4import org.apache.commons.dbcp.BasicDataSource;
5import org.springframework.jdbc.core.JdbcTemplate;
6
7
8
9public class jdbcEjemplo {
10 public static String driverClassName = "org.hsqldb.jdbcDriver";
11 public static String url = "jdbc:hsqldb:file:demo";
12 public static String username = "sa";
13 private DataSource datasource;
14 private JdbcTemplate jdbcTemplate;
15
16 public JdbcTemplate getJdbcTemplate() {
17
18 if (jdbcTemplate==null) {
19 jdbcTemplate = new JdbcTemplate();
20 jdbcTemplate.setDataSource(getDatasource());
21 }
22 return jdbcTemplate;
23 }
24
25 public DataSource getDatasource() {
26
27 if (datasource==null) {
28 BasicDataSource implDataSource = new BasicDataSource();
29 implDataSource.setDriverClassName(driverClassName);
30 implDataSource.setUrl(url);
31 implDataSource.setUsername(username);
32 implDataSource.setPassword("");
33 implDataSource.setInitialSize(5);
34 implDataSource.setMaxActive(10);
35 datasource = implDataSource;
36 }
37 return datasource;
38 }
39
40 public void start(){
41 /*
42 try {
43 getDatasource().getConnection();
44 } catch (SQLException e) {
45 e.printStackTrace();
46 }*/
47
48 //para prevenir errores al crear la tabla mas abajo :)
49 getJdbcTemplate().execute("drop table person if exists");
50
51 StringBuilder senteciasql = new StringBuilder();
52 senteciasql.append(" create table person (");
53 senteciasql.append(" id integer not null primary key,");
54 senteciasql.append(" first_name varchar(20),");
55 senteciasql.append(" last_name varchar(20)");
56 senteciasql.append(")");
57
58 //creamos la tabla
59 getJdbcTemplate().execute(senteciasql.toString());
60
61 //el metodo execute, usa javax.sql.Statement
62
63 String insertcodigoduro = "INSERT INTO PERSON VALUES(1,'EDWIN','CALLE')";
64 String insert_con_parametros = "INSERT INTO PERSON VALUES (?,?,?)";
65
66 //el metodo update nos devuelve el numero de registros afectados por el update
67 //usa internamente un preparestatement
68 int affectRows = getJdbcTemplate().update(insertcodigoduro);
69
70 getJdbcTemplate().update(insert_con_parametros, new Object[] {2,"jorge luis","calle"});
71
72 int numero_de_personas = getJdbcTemplate().queryForInt("SELECT COUNT(*) FROM PERSON");
73
74 System.out.print("Existen "+numero_de_personas+" en la base de datos");
75
76 getJdbcTemplate().execute("shutdown");
77
78 }
79
80 public static void main(String[] args) {
81
82 new jdbcEjemplo().start();
83 }
84
85}