Java eclipse HQL :: mapping Database server : mysql Ophalen van databasegegevens met HQL :: Hibernate Query Language
Copyright willems(c)juli 2007 Link = http://blog.seniorennet.be/pwtechniek/archief.php?ID=57
Voordeel van het gebruik van HQL: - overzichtelijke code - programma is nadien gemakkelijk aan te passen
Voorbeeld HQL [sample HQL FROM (class name)]
Structuur project:
[-]mysqltest [-]bron + Leverancier.java + main_test.java [+][] JRE System Library [+][] xerces-2.6.2.jar [+][] ant-antlr-1.6.3.jar [+][] antlr-2.7.5H3.jar [+][] asm.jar [+][] asm-attrs.jar [+][] cglib-2.1.jar [+][] commons-collections-2.1.1.jar [+][] commons-logging-1.0.4.jar [+][] dom4j-1.6.jar [+][] ehache-1.1.jar [+][] hibernate3.jar [+][] hsqldb.jar [+][] jta.jar [+][] log4j-1.2.9.jar [+][] mysql-connector-java-3.1.6-bin.jar |-- hibernate.cfg.xml |-- Leverancier.hbm.xml |-- log4j.properties
1.Code van Leverancier.java in package bron
package bron;
import java.sql.ResultSet;
import java.sql.SQLException; public class Leverancier{
private String firmanaam, rechtspers, straat, gemeente, telefoon, fax, GSM, email, vertegenwoordiger, vertegen_GSM, vertegen_email, tweede_naam, tweede_straat, tweede_gemeente, tweede_telefoon, tweede_GSM, beschrijving, info ; private int id, nr, postcode, tweede_nr, tweede_postcode ;
public int getid(){ return id; } public void setid(int id){ this.id = id; } public String getfirmanaam(){ return firmanaam; } public void setfirmanaam(String firmanaam){ this.firmanaam = firmanaam; } public String getrechtspers(){ return rechtspers; } public void setrechtspers(String rechtspers){ this.rechtspers = rechtspers; } public String getstraat(){ return straat; } public void setstraat(String straat){ this.straat = straat; } public int getnr(){ return nr; } public void setnr(int nr){ this.nr = nr; } public int getpostcode(){ return postcode; } public void setpostcode(int postcode){ this.postcode = postcode; } public String getgemeente(){ return gemeente; } public void setgemeente(String gemeente){ this.gemeente = gemeente; } public String gettelefoon(){ return telefoon; } public void settelefoon(String telefoon){ this.telefoon = telefoon; } public String getfax(){ return fax; } public void setfax(String fax){ this.fax = fax; } public String getGSM(){ return GSM; } public void setGSM(String GSM){ this.GSM = GSM; } public String getemail(){ return email; } public void setemail(String email){ this.email = email; } public String getvertegenwoordiger(){ return vertegenwoordiger; } public void setvertegenwoordiger(String vertegenwoordiger){ this.vertegenwoordiger = vertegenwoordiger; } public String getvertegen_GSM(){ return vertegen_GSM; } public void setvertegen_GSM(String vertegen_GSM){ this.vertegen_GSM = vertegen_GSM; } public String getvertegen_email(){ return vertegen_email; } public void setvertegen_email(String vertegen_email){ this.vertegen_email = vertegen_email; } public String gettweede_naam(){ return tweede_naam; } public void settweede_naam(String tweede_naam){ this.tweede_naam = tweede_naam; } public String gettweede_straat(){ return tweede_straat; } public void settweede_straat(String tweede_straat){ this.tweede_straat = tweede_straat; } public int gettweede_nr(){ return tweede_nr; } public void settweede_nr(int tweede_nr){ this.tweede_nr = tweede_nr; } public int gettweede_postcode(){ return tweede_postcode; } public void settweede_postcode(int tweede_postcode){ this.tweede_postcode = tweede_postcode; } public String gettweede_gemeente(){ return tweede_gemeente; } public void settweede_gemeente(String tweede_gemeente){ this.tweede_gemeente = tweede_gemeente; } public String gettweede_telefoon(){ return tweede_telefoon; } public void settweede_telefoon(String tweede_telefoon){ this.tweede_telefoon = tweede_telefoon; } public String gettweede_GSM(){ return tweede_GSM; } public void settweede_GSM(String tweede_GSM){ this.tweede_GSM = tweede_GSM; } public String getbeschrijving(){ return beschrijving; } public void setbeschrijving(String beschrijving){ this.beschrijving = beschrijving; } public String getinfo(){ return info; } public void setinfo(String info){ this.info = info; }
}
2.Code van main_test.java in package bron
package bron;
import org.hibernate.*; import org.hibernate.cfg.*; import java.util.*;
/** * @author piet willems * * pwTechniek * HQL Example */
public class main_test { public static void main(String[] args) { Session session = null;
try{ // lezen hibernate.cfg.xml en voorbereiding hibernate SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); session =sessionFactory.openSession();
// HQL : FROM class !! String hql_QUERY ="FROM Leverancier as p"; Query query = session.createQuery(hql_QUERY); for(Iterator it=query.iterate();it.hasNext();){ Leverancier row = (Leverancier) it.next();
System.out.println("Firma: " + row.getfirmanaam()); System.out.println("Straat: " + row.getstraat()); System.out.println("Gemeente: " + row.getgemeente()); System.out.println("ID: " + row.getid()); } session.close(); }catch(Exception e){ System.out.println(e.getMessage()); }finally{ } System.out.println("end"); }
}
3.Code van hibernate.cfg.xml in project mysqltest
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Database connection settings --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost/mysqltest</property> <property name="connection.username">sa</property> <property name="connection.password">hqlhql</property>
<!-- JDBC connection pool (use the built-in) --> <property name="connection.pool_size">1</property> <!-- Volgende lijn uit commentaar zetten om de database opnieuw te laten aanmaken --> <!--property name="hbm2ddl.auto">create</property-->
<!-- SQL dialect --> <property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
<!-- Echo all executed SQL to stdout --> <property name="show_sql">true</property>
<mapping resource="Leverancier.hbm.xml"/>
</session-factory>
</hibernate-configuration>
4.Code van Leverancier.hbm.xml
!! Overeenkomst : - classe Leverancier met hoofdletter - tabel database : met kleine letters
code :
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<!-- pwTechniek:: class:bron.Leverancier, tabel: leverancier" pwTechniek:: HQL -voorbeeld, project : Kantoren , mapping -->
<class name="bron.Leverancier" table="leverancier"> <id name="id" column="ID" type="int" unsaved-value="null"> <generator class="increment"/> </id>
<property name="firmanaam" type="string"/> <property name="straat" type="string"/> <property name="nr" type="int"/> <property name="postcode" type="int"/> <property name="gemeente" type="string"/> <property name="telefoon" type="string"/> <property name="fax" type="string"/> <property name="GSM" type="string"/> <property name="email" type="string"/> <property name="vertegenwoordiger" type="string"/> <property name="vertegen_GSM" type="string"/> <property name="vertegen_email" type="string"/> <property name="tweede_naam" type="string"/> <property name="tweede_straat" type="string"/> <property name="tweede_nr" type="int"/> <property name="tweede_postcode" type="int"/> <property name="tweede_gemeente" type="string"/> <property name="tweede_telefoon" type="string"/> <property name="tweede_GSM" type="string"/> <property name="beschrijving" type="string"/> <property name="info" type="string"/> </class>
</hibernate-mapping>
5.Code log4j.properties
log4j.rootLogger=DEBUG, A1 log4j.appender.A1= org.apache.log4j.ConsoleAppender log4j.appender.A1.layout= org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern= %-4r [%t] %-5p %c %x - %m%n
6.Database : Mysqltest : table : leverancier
-- phpMyAdmin SQL Dump -- version 2.6.1-pl3 -- http://www.phpmyadmin.net -- -- Host: localhost -- Generatie Tijd: 21 Jul 2007 om 21:06 -- Server versie: 5.0.24 -- PHP Versie: 5.0.3 -- -- Database: `mysqltest` --
-- --------------------------------------------------------
-- -- Tabel structuur voor tabel `leverancier` --
CREATE TABLE `leverancier` ( `id` int(11) NOT NULL auto_increment, `firmanaam` varchar(30) NOT NULL, `rechtspers` varchar(6) NOT NULL, `straat` varchar(50) NOT NULL, `nr` int(11) NOT NULL, `postcode` int(11) NOT NULL, `gemeente` varchar(30) NOT NULL, `telefoon` varchar(9) NOT NULL, `fax` varchar(9) NOT NULL, `GSM` varchar(10) NOT NULL, `email` varchar(50) NOT NULL, `vertegenwoordiger` varchar(30) NOT NULL, `vertegen_GSM` varchar(10) NOT NULL, `vertegen_email` varchar(50) NOT NULL, `tweede_naam` varchar(50) NOT NULL, `tweede_straat` varchar(50) NOT NULL, `tweede_nr` int(11) NOT NULL, `tweede_postcode` int(11) NOT NULL, `tweede_gemeente` varchar(30) NOT NULL, `tweede_telefoon` varchar(9) NOT NULL, `tweede_GSM` varchar(10) NOT NULL, `beschrijving` varchar(255) NOT NULL, `info` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0;
-- -- Gegevens worden uitgevoerd voor tabel `leverancier` --
INSERT INTO `leverancier` VALUES (1, 'Sarcotem', 'NV', 'Industiepark', 11, 4562, 'Bontem', '4144141', '141445', '14745456', 'sarc@bottem.be', 'Gulleman', '147456458', 'sarc-gul@bottem.be', 'Torrens', 'kortebeekstraat', 14, 5584, 'Strandem', '05785245', '147569485', 'verwarmingstoestellen', 'info1'); INSERT INTO `leverancier` VALUES (2, 'ADGE', 'bvba', 'nieuwstraat', 11, 4562, 'grimstad', '4144141', '141445544', '147458154', 'mail@infotec.be', 'Debreke', '147658254', 'miel.mail@infotec.be', 'Tamin', 'torenstraat', 45, 5466, 'Bunzegem', '05765489', 'geen', 'verlichtingsarmaturen', 'info2');
|