|
|
Julkaistu 20.2.2019 14.44.57
|
|
|
|

Olen myös puolivalmis Javassa, enkä ole kovin perehtynyt kevään perheen ämpäriin, ja olen rakentanut projektikehyksen verkkotutoriaaleista ja omasta kokemuksestani.
Projektin ympäristö:jdk-versio: 1.8.0_171, mysql-versio: 5.7.17, spring boot: 2.1.1.RELEASE, kehitystyökalut: idea.
Horros ja JPA
Tämän artikkelin web-projekti käyttää Hibernatea pysyvyyskerroksen kehyksenä. Spring Bootissa meidän täytyy ymmärtää toinen käsite: JPA
Edellinen lause saattaa olla epäselvä, mutta se ei tarkoita, että JPA olisi käsite Spring Bootissa. Sen sijaan kyseessä on Java Persistence API, joka käännetään kiinaksi nimellä Java Persistence Layer API.
JPA on standardimäärittely, joka perustuu ORM:ään (tai O/R-kartoitukseen), jossa JPA määrittelee vain standardisäännöt eikä tarjoa toteutusta.
Tällä hetkellä JPA:n pääasialliset toteutukset ovat Hibernate, EclipseLink, OpenJPA jne.
Koska Hibernate hallitsee datan pääsyresoluutioteknologiaa, JPA-standardia hallitsee käytännössä Hibernate.
SpringBoot on automaattikivääri
Spring Data JPA toimii käyttöliittymätyökaluna kehittäjille Hibernate-kehyksen soveltamiseen. Spring Bootimme tarjoaa täysin automatisoidun "automaattisen riippuvuusmoduulin": spring-boot-starter-data-jpa
POM-riippuvuusrakenne:
Onko kenelläkään kysyttävää pom-tiedostosta ilman viittausta talvihorrokseen?
Syynä on se, että kuten yllä olevassa kuvassa näkyy, spring-boot-starter-data-jpa riippuu hibernate-coresta, ja kun viitataan spring-boot-starter-data-jpa:han, maven-projekti esittelee automaattisesti paketin, johon se riippuu.
application.yml Profiili:
Jousen konfiguraatiotietolähteen virallinen linkki:Hyperlinkin kirjautuminen on näkyvissä.
########################################## ###datasource - Määritä mysql-tietokannan yhteystiedot ###spring.datasource.url: MySQL-osoite ###spring.datasource.user: Tietokannan käyttäjänimi ###spring.datasource.password: Tietokannan salasana ###spring.datasource.driverClassName: Vastaa tietokantaajuria ###spring.datasource.max-aktiivinen: Määrittää suurimman määrän aktiivisia yhteyksiä yhteyspoolissa ###spring.datasource.max-idle: Määrittää enimmäismäärän vapaita yhteyksiä yhteyspoolissa. ###spring.datasource.min-idle: Määrittää vähimmäisarvon, joka on säilytettävä (DBCP- ja Tomcat-yhteyspooleille) ###spring.datasource.initial-size: Määrittää yhteyksien määrän, joka alun perin muodostettiin yhteyspoolin käynnistyessä ### ###其他信息总结: ###spring.dao.exceptiontranslation.enabled riippumatta siitä, onko PersistenceExceptionTranslationPostProcessor käytössä, oletusarvo on true ###spring.datasource.abandon-when-percentage-fullsets on osa hylättyjen yhteyksien osuutta, jotka suljetaan tai raportoidaan aikakatkaisun päättyessä ###spring.datasource.allow-pool-suspension Hikari-poolia käytettäessä yhteyspoolin tauottaminen asetetaan vääräksi ###spring.datasource.alternate-username-allowedOnko vaihtoehtoiset käyttäjätunnukset sallittuja. ###spring.datasource.auto-commitMäärittää, sitoutuvatko päivitykset automaattisesti. ###spring.datasource.catalog määrittää oletusluettelon. ###spring.datasource.commit-on-return määrittää, pitäisikö kaikki jäljellä olevat tapahtumat sitoutua, kun yhteys palautetaan ###spring.datasource.connection-init-sql määrittelee, että yhteys luodaan ja lisätään SQL:ään, joka suoritetaan ennen yhteyspoolia. ###spring.datasource.connection-init-sqls Kun käytät DBCP-yhteyspoolia, määritä alustuksen yhteydessä suoritettava sql ###spring.datasource.connection-properties. [avain]Määrittää määritettävät ominaisuudet, jotka tulee konfiguroida DBCP-yhteyspoolia käytettäessä ###spring.datasource.connection-test-query määrittelee SQL-lauseen, joka varmistaa yhteyden suorituksen laillisuuden ###spring.datasource.connection-timeoutMäärittää yhteyden aikakatkaisun millisekunteina. ###spring.datasource.continue-on-error-Kun tietokanta käynnistetään ja ilmenee virhe, jatkaako vai ei, oletusarvo on väärin ###spring.datasource.data määrittää Data (DML) -skriptin ###spring.datasource.data-source-class-name Määrittää tietolähteen täysin hyväksytyn nimen. ###spring.datasource.data-source-jndi määrittää jndi:n osoitteen ###spring.datasource.data-source-properties. Kun käytät Hikari-yhteyspoolia, määritä asetettavat attribuutit ###spring.datasource.db-properties käyttää Tomcat-yhteyspoolia, joka määrittää asetettavat ominaisuudet ###spring.datasource.default-auto-commit sitoutuu automaattisesti. ###spring.datasource.default-catalog määrittelee luettelon, joka yhdistää oletustiedostoon. ###spring.datasource.default-read-onlyAsetetaanko oletusyhteys vain luku -tilaan. ###spring.datasource.default-transaction-isolationMäärittelee oletukseneristystason yhdistetyille transaktioille. ###spring.datasource.driver-class-name määrittää ajurin luokkanimen, joka havaitaan automaattisesti jdbc-URL:stä oletuksena. ###spring.datasource.fair-queue Käytetäänkö FIFO-palautusyhteyksiä. ###spring.datasource.health-check-properties. [avain] Attribuutti läpäisee, kun käytetään Hikari-yhteyspoolia sydämenlyöntitarkistuksessa ###spring.datasource.idle-timeoutMäärittelee, kuinka kauan yhteyttä ei käytetä, joka on oletuksena asetettu lepotilaaksi ###spring.datasource.ignore-exception-on-pre-loadJätetäänkö poikkeus huomiotta, kun yhteyspooli alustetaan. ###spring.datasource.init-sqlsql, joka suoritetaan, kun yhteys luodaan ###spring.datasource.initial-size määrittelee, kuinka monta yhteyttä alun perin muodostettiin, kun yhteyspooli käynnistetään ###spring.datasource.initialization-fail-fastKun yhteyspoolia luodaan, ei ole mahdollista luoda tiettyä vähimmäismäärää yhteyksiä poikkeusta varten ###spring.datasource.initializeMääritä, alustetaanko tietolähde data.sql, oletuksena: true ###spring.datasource.isolate-internal-queries määrittelee, asetetaanko sisäiset kyselyt karanteeniin, oletuksena false ###spring.datasource.jdbc-interceptors Kun käytät Tomcat-yhteyspoolia, määritä jdbc-interseptorin ja puolipisteen erottelu ###spring.datasource.jdbc-url määrittelee JDBC-URL:n. ###spring.datasource.jmx-enabled on oletuksena käytössä: väärin ###spring.datasource.jndi-nameMäärittää jndi:n nimen. ###spring.datasource.leak-detection-threshold Kuinka monta millisekuntia havaitset yhteyden vuodon, kun käytät Hikari-yhteyspoolia? ###spring.datasource.log-abaned käyttää DBCP-yhteyspoolia hylättyjen lauseiden tai yhteyksien seuraamiseen, oletusarvo on väärä ###spring.datasource.log-validointivirheetKun käytät Tomcat-yhteyspoolia, tuleeko validointivirhe tulostaa. ###spring.datasource.login-timeoutMäärittää aikakatkaisuajan tietokantaan yhdistämiselle. ###spring.datasource.max-ikä määrittelee yhteyksien enimmäisiän yhteyspoolissa ###spring.datasource.max-elinikä määrittelee yhteyksien maksimikäyttöajan yhteyspoolissa millisekunteina. ###spring.datasource.max-open-prepared-statements määrittelee avattujen valmistettujen lauseiden enimmäismäärän. ###spring.datasource.max-wait määrittelee suurimman odotusajan, jonka aikana yhteyspooli odottaa yhteyden paluuta, millisekunneissa. ###spring.datasource.maximum-pool-sizeMäärittää yhteyspoolin enimmäismäärän yhteyksiä, mukaan lukien aktiiviset ja käyttämättömät yhteydet. ###spring.datasource.min-evictable-idle-time-millisMäärittää vapaan yhteyden minimiajaksi, jonka se voi olla käyttämättömänä ennen kuin se voidaan tyhjentää. ###spring.datasource.min-idle määrittää vähimmäisarvon, joka on säilytettävä (DBCP- ja Tomcat-yhteyspooleille) ###spring.datasource.minimum-idle määrittää yhteyden ylläpitämien vapaiden yhteyksien vähimmäismäärän, ja kun käytetään HikariCP:tä. ###spring.datasource.name Määritä tietolähteen nimi. ###spring.datasource.num-tests-per-eviction-run määrittää objektien lukumäärän, kun jokaista levotonobjektien evitor-säikeitä ajetaan ###spring.datasource.passwordMääritä tietokannan salasana. ###spring.datasource.platform määrittää alustan (schema-${platform}.sql käytettäväksi skeemalle, joka oletuksena on: kaikki ###spring.datasource.pool-nameMäärittää yhteyspoolin nimen. ###spring.datasource.pool-prepared-statementsMäärittelee, yhdistetäänkö lauseita. ###spring.datasource.propagate-interrupt-stateLevitetäänkö keskeytystila, jos säie keskeytetään yhteyden odottamisen aikana. ###spring.datasource.read-onlyKun käytät Hikari-yhteyspoolia, merkitäänkö tietolähde vain lukua varten ###spring.datasource.register-mbeans määrittelee, rekisteröikö Hikari-yhteyspooli JMX MBeanit. ###spring.datasource.remove-abandoned määrittelee, poistetaanko yhteys heti hylätyn aikakatkaisun jälkeen. ###spring.datasource.remove-abandoned-timeoutMäärittää ajan, jolloin yhteys tulisi hylätä. ###spring.datasource.rollback-onreturnHaluaako odottava transaktio takaisin yhteyden palauttamisen yhteydessä. ###spring.datasource.schema määrittelee Schema (DDL) -skriptin. ###spring.datasource.separator määrittelee lauseerottimen skriptin alustamiseen, oletuksena: ; ###spring.datasource.sql-script-encoding määrittelee SQL-skriptien koodauksen. ###spring.datasource.suspect-timeoutMäärittää aikakatkaisun ennen hylätyn yhteyden tulostamista. ###spring.datasource.test-on-borrowKun lainaat yhteyttä yhteyspoolista, testataanko yhteys. ###spring.datasource.test-on-connect luodaan, testataanko yhteys ###spring.datasource.test-onreturnPalautetaanko yhteys yhteyspooliin. ###spring.datasource.test-while-idleTehdäänkö yhteystesti, kun yhteys on käyttämättömänä. ###spring.datasource.time-between-eviction-runs-millis Määrittää toimintaajan lepoyhteystarkistusten, hylätyn yhteyden puhdistuksen ja levottoman yhteyspoolin koon välillä. ###spring.datasource.transaction-isolation määrittää transaktioiden eristystason, joka määritellään Hikari-yhteyspoolia käytettäessä ###spring.datasource.url määrittää JDBC-URL-osoitteen. ###spring.datasource.use-disposable-connection-façade käärii yhteyden estääkseen sen käytön sulkemisen jälkeen. ###spring.datasource.use-equal, käytetäänkö String.equals() korvaamaan ==. ###spring.datasource.use-lock on lukittu yhteysoperaatioon ###spring.datasource.usernameMääritä tietokannan nimi. ###spring.datasource.validation-interval määrittelee, kuinka monta MS:ää yhteystarkistus suoritetaan. ###spring.datasource.validation-query määrittelee SQL-kyselylauseen yhteyden validointia varten yhteyden hakiessa. ###spring.datasource.validation-query-timeoutMäärittää yhteyden validointikyselyn aikakatkaisun. ###spring.datasource.validation-timeoutAsettaa yhteyden validoinnin aikakatkaisun, joka määritellään Hikari-yhteyspoolia käytettäessä ###spring.datasource.validator-class-name Validaattorin täydellinen karsinta, jota käytettiin kyselyn testaamiseen. ###spring.datasource.xa.data-source-class-name Määrittää tietolähteen täydellisen määrityksen. ###spring.datasource.xa.properties määrittelee XA-tietolähteelle välitetyt ominaisuudet ###spring.datasource.url=jdbc:mysql://localhost:3306/test?user=root&password=root&useUnicode=true&characterEncoding=UTF8 ########################################## spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8 spring.datasource.username=root spring.datasource.password=root spring.datasource.driverClassName=com.mysql.jdbc.Driver spring.datasource.max-aktiivinen=20 spring.datasource.max-idle=8 spring.datasource.min-idle=8 spring.datasource.initial-size=10 ########################################## ##SPring JPA:n konfiguraatiotiedot ###spring.jpa.database määrittää kohdetietokannan. ###spring.jps.show-sq: Näytetäänkö SQL-lauseet ###spring.jpa.hibernate.ddl-auto määrittelee DDL-tilan (ei, validoi, päivitä, luo-pudota). Kun käytetään upotettua tietokantaa, oletuksena on create-drop, muuten sitä ei ole. ###spring.jpa.hibernate.naming-strategyMääritä nimikäytäntö. ###其他: ###spring.jpa.database-platformMäärittää kohdetietokannan tyypin. ###spring.jpa.generate-ddl Aloitetaanko skeema käynnistyksen yhteydessä, oletuksena on false ###spring.jpa.hibernate.ddl-auto määrittelee DDL-tilan (ei, validoi, päivitä, luo-pudota). Kun käytetään upotettua tietokantaa, oletuksena on create-drop, muuten sitä ei ole. ###spring.jpa.hibernate.naming-strategyMääritä nimikäytäntö. ###spring.jpa.open-in-view rekisteröi OpenEntityManagerInViewInterceptorin ja sitoo JPA EntityManagerin pyyntösäikeeseen, oletus on true ###spring.jpa.properties lisää lisäattribuutteja JPA-palveluntarjoajalle. ###spring.jpa.show-sql Onko SQL-lokin käyttöönotto oletuksena false ########################################## spring.jpa.database = MYSQL spring.jpa.show-sql = totta spring.jpa.hibernate.ddl-auto = päivitys spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect spring.freemarker.charset=UTF-8
Koko pakettirakenne
Tietolähdekonfiguraatio:
Yksikköluokka:
Tietokannan käyttöliittymä:
Tietokannan käyttörajapinta perii JpaRepositoryn geneerisestä luokasta, ja kun se perii sen, se saa jumalallisen voiman, jonka se antaa kehittäjille:
Voimme suoraan kutsua näitä metodeja suorittamaan tietokantaoperaatioita, ja voimme myös räätälöidä HQL:ää suorittamaan muita persoonallisuuttamme sopivia operaatioita, kuten:
Tässä koodissa, @Query kommentin kautta,HQL:n kirjoittaminen valmiiksimissä ":name" on yhdenmukainen alla olevan @Param merkinnän parametrin kanssa.
Huomautus: HQL:n taulukon nimen tulisi olla ORM-kartan luokkanimi, ja HQL:llä on joitakin eroja perinteisiin SQL-lauseisiin, kuten "*":n merkitys on erilainen jne.
Jos et ole tottunut käyttämään HQL:ää, voit myös käyttää SQL-lauseita:
Yllä mainittu menetelmä on edelleen tehokas, kun sitä käytetään.nativeQuery to true tarkoittaa SQL-kielen käyttöä。
Ohjainluokka:
Aloita projekti
Hibernate kartoittaa automaattisesti entiteettiluokat tietokantaan luodakseen meille relevantteja tietokantatauluja, ja se yhdistää automaattisesti tietokantataulut annotaatioiden kuten @Table, @Column, @Id, @GeneratedValue (strategy = GenerationType.AUTO) jne. perusteella. Säästä paljon laskutustyötä.
(Ennen projektin aloittamista sinun täytyy ensin rakentaa tietokanta, ja taulu luodaan automaattisesti)
hibernate_sequence taulukko on id-generointistrategia, @GeneratedValue on annotoitu, GenerationType.AUTO edustaa automaattista generointia, edellyttäen että id-attribuutin täytyy olla int- tai pitkätyyppinen attribuutti; jos se on id-tyyppinen id, tämän merkinnän lisääminen id:n päälle raportoi välittömästi virheen. Siksi, jos kyse on String-tyypin id:stä, sinun ei tarvitse merkitä id:tä @GeneratedValue:llä (strategy = GenerationType.AUTO).
Pyydä testi
Suorita datapyyntö ja tallennus haku- ja post-palvelun kautta.
vedotaHyperlinkin kirjautuminen on näkyvissä.Rajapinta POST-pyyntö lisätä dataa, kuten seuraavassa kuvassa näkyy:
Tietokantakysely on seuraava:
Saat tiedot seuraavan rajapinnan kautta:
Hyperlinkin kirjautuminen on näkyvissä.
Hyperlinkin kirjautuminen on näkyvissä.
Hyperlinkin kirjautuminen on näkyvissä.
Huomautus: Kuten yllä oleva käyttöliittymä pyysi, Java on erittäin herkkä kirjainkoon herkkyydelle, olipa kyse URL-osoitteesta tai parametreista, sen täytyy olla kirjainkoon herkkä! Jos kirjain on iso- tai pienkirjain, pyyntö ei pääse rajapintaan tai parametri on tyhjä!
Druidi valvoo seuraavia tilanteita:
Lopuksi liitä lähdekoodi:
Turistit, jos haluatte nähdä tämän postauksen piilotetun sisällön, olkaa hyvä Vastaus
(Loppu)
|
Edellinen:Datalähteen konfigurointi epäonnistuiSeuraava:Jieyou-iltapäivätee | Keskiviikko, 20. helmikuuta 2019
|