Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Dubbi sul funzionamento di JDBC

    Ciao a tutti,

    stò studiando l'uso di JDBC per realizzare un DAO

    Allora nel mio caso ho una tabella Student in un DB MySql avente la seguente struttura:

    codice:
    mysql> describe Student;
    +-------+-------------+------+-----+---------+----------------+
    | Field | Type        | Null | Key | Default | Extra          |
    +-------+-------------+------+-----+---------+----------------+
    | ID    | int(11)     | NO   | PRI | NULL    | auto_increment |
    | NAME  | varchar(20) | NO   |     | NULL    |                |
    | AGE   | int(11)     | NO   |     | NULL    |                |
    +-------+-------------+------+-----+---------+----------------+
    Poi ho un'interfaccia chiamata StudentDAO che rappresenta tutte le possibili operazioni di CRUD eseguibili su tale tabella

    Poi ho una classe chiamata StudentJDBCTemplate che implementa concretamente tale interfaccia andando ad implementare i metodi che devono eseguire le operazioni di CRUD

    E quì ho qualche dubbio....ad esempio ho il seguente metodo per inserire una nuova riga all'interno della tabella Student:

    codice:
    	/* Inserisce un nuovo record, rappresentante uno studente, dentro la tabella
    	   @param nome studente
    	   @param età studente
    	 * @see org.andrea.myexample.myJdbcSpringExample.StudentDAO#create(java.lang.String, java.lang.Integer)
    	 */
    	public void create(String name, Integer age) {
    		String SQL = "insert into Student (name, age) values (?, ?)";
    
    		jdbcTemplateObject.update(SQL, name, age);
    		System.out.println("Created Record Name = " + name + " Age = " + age);
    		return;
    	}
    Tale metodo prende in input 2 parametri che rappresentano i valori dei campi NAME ed AGE della tabella Student, il valore ID non è necessario in quanto è la primary key ed è settato sul DB come autoincrement

    Ok, ho la stringa SQL che credo rappresenti la mia query SQL per inserire la nuova riga nel DB:

    String SQL = "insert into Student (name, age) values (?, ?)";

    La cosa che mi è poco chiara è cosa rappresenti esattamente questa parte di codice: values (?, ?)

    Leggendo online mi pare di capire che serva per non dover eseguire manualmente l'escaping dei valori di name ed age, ma cosa significa esattamente eseguire l'escaping di tali valori?

    L'altro dubbio è relativo all'inserimento di tale riga nella tabella...per inserirla uso il metodo update() su di un oggetto avente tipo JdbcTemplate (l'oggetto jdbcTemplateObject)

    Così:

    jdbcTemplateObject.update(SQL, name, age);

    A tale oggetto quindi passo la precedente query SQL ed i valori dei parametri di input name ed age

    In pratica è tale metodo a sostituire i valori dei 2 parametri di input name ed age all'interno delle sottostringe "name" ed "age" della stringa "insert into Student (name, age) values (?, ?)" rappresentante la nostra query?

    Grazie mille

    Andrea
    Blog tecnico dedicato al mondo dello sviluppo e dei framework Java: http://scorejava.com/

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Chiudo questa, visto che l'altra ha già avuto una risposta, mentre questo nessuna.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.