Minun pitäisi luoda ohjelmisto, jonka avulla käyttäjä voi lisätä tietokantaan tietoja. Ongelmana on kuitenkin se, etten tiedä miten tämä käytännössä tapahtuu. Osaan kyllä sijoittaa valmiin SQL lausekkeen Java-koodin sekaan, ja tiedon lisääminen tietokantaan onnistuu, mutta en saa ohjelmistoa kysymään tietokantaan lisättäviä tietoja varsinaiselta käyttäjältä. Miten tämä onnistuu?
Käyttäjä lisää tiedon tietokantaan
neuvojakaipaan
2230
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 2
Vanhimmat
Toivon, että joku osaisi auttaa minua tässä. Alla on pätkä koodista, jota käytän.
Miten sitä tulisi muuttaa, että tiedon tietokantaan lisää ohjelmiston käyttäjä eikä koodaaja.
public static void addReports(){
try{
debug("Loading MySQL driver: " driverName);
Class.forName(driverName);
debug("Logging to MySQL" url);
Connection con = DriverManager.getConnection(url);
debug("Making SQL statement");
String sql = "INSERT INTO person"
"( id, name, birth, phone )"
"VALUES"
"( 5, 'Mikko', '1983-07-02', '123-987654')"
"";
debug("SQL: " sql);
debug("Creating Database tunnel");
Statement smtm = con.createStatement();
debug("Sending SQL query");
int count = smtm.executeUpdate(sql);
smtm.close();
con.close();
} catch (Exception error){
System.err.println( error.getMessage() );
error.printStackTrace();
System.exit(1);
}
System.out.println( "Normal Exit" );
}
Siihen pitää tehdä admin-käyttöliittymä. Jos tietojen lisäystä tehdään netin yli, tietokantaa ei voi aksessoida suoraan javan jdbc:llä, vaan normaali http tai paremminkin https-admin-sivun kautta ja serveripäässä käsittelijällä (suora kanta-aksessi on tietoturvariski ja normaalisti palomuurit blokkaa sen poiskin). Ja admin-sivulle pitäisi olla pääsy vain admin-tunnus salasanalla.
Esimerkki vastaavasta tilanteesta (html-formi ja serveripäässä java-jsp-käsittelijä, huomaa syöttötietojen tarkistus ja prepared statement turvallinen käyttö: se ei saa sisältää sisäkkäisiä ' tai " merkkejä):
http://zetcode.com/tutorials/jeetutorials/mysqldatabase/
Toivottavasti näet idean