Sådan får du adgang databasen ved hjælp af Spring JDBC skabelon?

Spring JDBC template

Spring JDBC skabelon

Oversigt: Som vi alle ved, at rammerne foråret er blevet en væsentlig del af den moderne Java-baserede applikationsudvikling. Rammerne foråret har effektivt formået at tage kontrol over hver afdeling i Java udvikling verden. JDBC skabelon foråret bruges i de fleste af foråret baserede JEE applikationer at kommunikere med databasen.

I denne artikel vil jeg tale på, hvordan man adgang til en relationel database ved hjælp af JDBC skabelon foråret.

Indledning: Vi kender alle betydningen af ​​relationel database i virksomheden applikationsudvikling. Foråret er en af ​​de mest udbredte rammer i Java-baserede virksomhed applikationsudvikling. Foråret har forskellige moduler som ORM, sikkerhed, transaktion, JPS, JMS osv at støtte behovet for virksomhedens applikationsudvikling. Som foråret giver let tilgængelige komponenter til plug-in, den moderne tilgang til enterprise Java applikationsudvikling bruger funktionerne i udstrakt. Som følge udviklingen er meget hurtigere og effektiv. Foråret giver en enkel tilgang til at håndtere database aktiviteter kender som foråret JDBC skabelon.

Ulemper ved standard JDBC API: Standard JDBC API har følgende ulemper.

  • Bortset fra at udføre de vigtigste forespørgslen, du nødt til at skrive en masse kode til at håndtere de henrettelse miljøspørgsmål som at skabe forbindelse, erklæring, ResultSet etc.
  • Behov for at håndtere håndtering kode undtagelse separat.
  • Behov for at håndtere transaktionsbeslutning spørgsmål.

Fordele ved foråret JDBC skabelon: Spring JDBC skabelon har følgende fordele sammenlignet med den normale fremgangsmåde med standard JDBC.

  • Rengøring af brugte ressourcer sker automatisk ved foråret JDBC skabelon. Så udviklerne ikke behøver at bekymre sig om at frigøre de ressourcer,. Derfor det forhindrer memory leaks.
  • Spring JDBC skabelon håndterer undtagelsen og fejl på en mere effektiv måde. Det konverterer JDBC SQLExceptions ind RuntimeExceptions, så udviklerne kan håndtere det på en mere fleksibel måde.
  • Fjederen JDBC skabelon konverterer også sælgeren specifikke fejl i en bedre meningsfuldt budskab. Så de håndteringer af disse fejl er mere effektive.

Kom godt i gang:

In this document, lad os bruge gradle som en bygge værktøj til at opbygge vores ansøgning. Lad os starte med et simpelt program bruges til at gemme og hente oplysninger om medarbejderne sammen med deres afdelinger i en organisation. I vores eksempel, vi vil have følgende egenskaber medarbejderen objekt:-

  • Medarbejder-id
  • Medarbejder Fornavn
  • Medarbejder Mellemnavn
  • Medarbejder Efternavn
  • Ansat Institut Id

Og den afdeling objekt har følgende attributter:-

  • Department Id
  • afdelingsnavn

Lad os nu oprette Java-objekter, der vil blive anvendt til at kommunikere med databasen. Vores Pojo klasser for disse to enheder er opført som under:

Listing1: Prøve viser Medarbejder Class

[Code]

package com.home.springjdbc.objects;

offentlige klasse Employee {

// Medarbejderen Id

private String empId;

// Medarbejderen først navn

private String empFName;

// Medarbejderen mellemnavn

private String empMName;

// Medarbejderen sidste navn

private String empLName;

// Medarbejderen afdeling Id

private String empDeptId;

offentlige Employee ( String empId, String empFName, String empMName,

String empLName, String empDeptId ) {

super();

denne.EmpID = EmpID;

denne.Rec Rec name = navn;

denne.empMName = empMName;

denne.empLName = empLName;

denne.empDeptId = empDeptId;

}

/**

* @return den empId

*/

offentlige string getEmpId () {

return EmpID;

}

/**

* @param EmpID

* den empId at indstille

*/

offentlige ugyldig setEmpId ( String empId ) {

denne.EmpID = EmpID;

}

/**

* @return den empFName

*/

offentlige string getEmpFName () {

return Rec navn;

}

/**

* @param Rec navn

* den empFName at indstille

*/

offentlige ugyldig setEmpFName ( String empFName ) {

denne.Rec Rec name = navn;

}

/**

* @return den empMName

*/

offentlige string getEmpMName () {

return empMName;

}

/**

* @param empMName

* den empMName at indstille

*/

offentlige ugyldig setEmpMName ( String empMName) {

denne.empMName = empMName;

}

 

/**

* @return den empLName

*/

offentlige string getEmpLName () {

return empLName;

}

/**

* @param empLName

* den empLName at indstille

*/

offentlige ugyldig setEmpLName ( String empLName) {

denne.empLName = empLName;

}

/**

* @return den empDeptId

*/

offentlige string getEmpDeptId () {

return empDeptId;

}

/**

* @param empDeptId

* den empDeptId at indstille

*/

offentlige ugyldig setEmpDeptId ( String empDeptId ) {

denne.empDeptId = empDeptId;

}

/*

* ( ikke-javadoc )

*

* @see java.lang.Object # toString ()

*/

@ Override

offentlige String toString () {

return “Employee [ EmpID =” + EmpID + “, Rec name =” + Rec navn

+ “, empMName =” + empMName + “, empLName =” + empLName

+ “, empDeptId =” + empDeptId + “]”;

}

}

[/Code]

Listing2: Prøve viser Department Class

[Code]

package com.home.springjdbc.objects;

offentlige klasse Afdeling {

// Afdelingen Id

private String deptId;

// Afdelingen Navn

private String DEPTNAME;

offentlige Afdeling ( String deptId, String DEPTNAME) {

super ();

denne.deptId = deptId;

denne.DEPTNAME = DEPTNAME;

}

/**

* @return den deptId

*/

offentlige String getDeptId () {

return deptId;

}

/**

* @param deptId

* den deptId at indstille

*/

offentlige ugyldig setDeptId ( String deptId ) {

denne.deptId = deptId;

}

/**

* @return den DEPTNAME

*/

offentlige String getDeptName () {

return DEPTNAME;

}

/**

* @param DEPTNAME

* den DEPTNAME at indstille

*/

offentlige ugyldig setDeptName ( String DEPTNAME ) {

denne.DEPTNAME = DEPTNAME;

}

/*

* (ikke-javadoc)

*

* @see java.lang.Object # toString()

*/

@ Override

offentlige String toString () {

return “Afdeling [ deptId=” + deptId + “, DEPTNAME =” + DEPTNAME + “]”;

}

}

[/Code]

Spring giver en skabelon klasse kendt som JdbcTemplate. Denne klasse er ansvarlig for at kommunikere med SQL relationelle databaser og JDBC. I den traditionelle tilgang maksimum af en JDBC kode er beskæftiget med håndtering forbindelse management, erhvervelse ressource, exception handling, og generel fejlkontrol, som er irrelevant i forbindelse med det, vi forsøger at opnå. Den JdbcTemplate tager sig af alle disse ting, og som udvikler skal vi kun fokusere på forretningslogik. En prøve gennemførelse af skabelonen klassen er vist som under -

Listing3: Prøve viser gennemførelsen af ​​JDBC skabelon

[Code]

package com.home.springjdbc.dao;

importere java.sql.Driver;

importere java.sql.ResultSet;

importere java.sql.SQLException;

importere java.util.List;

importere org.springframework.jdbc.core.JdbcTemplate;

importere org.springframework.jdbc.core.RowMapper;

importere org.springframework.jdbc.datasource.SimpleDriverDataSource;

importere com.home.springjdbc.objects.Employee;

offentlige klasse EmployeeDAO {

offentlige statiske ugyldig main ( String args[] ) {

// enkle DS til test (ikke til produktion!)

SimpleDriverDataSource DataSource = nye SimpleDriverDataSource();

dataSource.setDriverClass((klasse<? udvider Chauffør>) org.h2.Driver.klasse);

dataSource.setUsername( “hende” );

dataSource.setUrl( “JDBC:h2:Mem” );

dataSource.setPassword( “” );

JdbcTemplate JdbcTemplate = nye JdbcTemplate(datakilde);

System.ud.println( “Oprettelse af tabeller” );

jdbcTemplate.execute( “drop table medarbejdere, hvis der foreligger” );

jdbcTemplate.execute( “skabe table medarbejdere(”

+ “id varchar(25), first_name VARCHAR(255), middle_name VARCHAR(255), LAST_NAME varchar(255), deptId VARCHAR(25))”);

String[] optegnelser = “E001 Dean Andrew Roberts D25; E002 Jeff Longman Dean D42; E003 Erin Nancy Kirkland D66;”.dele(“;”);

for ( String singleRecord : optegnelser ) {

String [] cols = singleRecord.split(” “);

System.ud.printf( ” Tilføjelse medarbejder rekord for% s% s% s% s% s n”,cols[0], cols[1], cols[2], cols[3], cols[4]);

jdbcTemplate.update(“INSERT INTO medarbejdere(id, fornavn, mellemnavn, efternavn, deptId) værdier(?,?,?,?,?)”,cols[0], cols[1], cols[2], cols[3], cols[4]);

}

System.ud.println ( ” Querying for customer records where first_name = ‘Erin’:” );

Liste<Employee> resulterer = jdbcTemplate.query(

“select * fra medarbejdere hvor first_name = ?”,

nye Objekt[] { “Erin” }, nye RowMapper<Employee>() {

@ Override

offentlige Medarbejder mapRow(ResultSet rs, int ROWNUM)

kaster SQLException {

return nye Employee(rs.getString(“id”),

rs.getString(“fornavn”), rs.getString(“mellemnavn”),

rs.getString(“efternavn”), rs.getString(“deptId”));

}

});

for (medarbejder medarbejder : resultater) {

System.ud.println(medarbejder);

}

}

}

[/Code]

I ovenstående eksempel, vi oprettet en JDBC datakilde ved hjælp af SimpleDriverDataSource fra foråret. Vi bruger så denne datakilde at konstruere JDBCTemplate instans. Når JDBCTemplate klassen oprettes, Vi kan nemt begynde at kalde databasen. First, vi oprette tabellen ved hjælp af udføre metoden af ​​skabelonen. Så indsætter vi få poster ved hjælp af opdateringen metode skabelonen. Endelig bruger vi forespørgslen metode til at hente registreringer af vores valg. I vores eksempel har vi brugt en simpel forespørgsel for at hente posten fra medarbejderen tabellen. Men som pr vores design ser vi, at medarbejderen bordet har en relation med afdelingen tabellen via søjlen - deptId. Så vi kan også bruge den samme kode til at hente journaler slutter disse to tabeller. Bare vi nødt til at ændre forespørgslen til at sætte en join. Ovenstående kode kan ændres som under -

Listing4: Prøve viser den modificerede forespørgsel

[Code]

Liste<Employee> resulterer = jdbcTemplate.query(

“vælg emp.first_name, emp.middle _name, emp.last _name, dept.dept_Name fra medarbejdere emp, afdeling afd hvor emp.first_name = ?”,

nye Objekt[] { “Erin” }, nye RowMapper<Employee>() {

@ Override

offentlige EmployeeDtls mapRow(ResultSet rs, int ROWNUM)

kaster SQLException {

return nye Employee( rs.getString(“fornavn”),

rs.getString(“mellemnavn”),

rs.getString(“efternavn”),

rs.getString(“dept_Name “));

}

});

for (EmployeeDtls employeeDtl : resultater) {

System.ud.println(employeeDtl);

}

[/Code]

For at udføre dette, vi skal have en anden Pojo klasse EmployeeDtls som under -

Listing5: Prøve viser Pojo klasse EmployeeDtls

[Code]

package com.home.springjdbc.objects;

offentlige klasse EmployeeDtls {

// Medarbejderen først navn

private String empFName;

// Medarbejderen mellemnavn

private String empMName;

// Medarbejderen sidste navn

private String empLName;

// Afdelingen Navn

private String DEPTNAME;

/**

* @param Rec navn

* @param empMName

* @param empLName

* @param DEPTNAME

*/

offentlige EmployeeDtls(String empFName, String empMName, String empLName,

String DEPTNAME) {

super();

denne.Rec Rec name = navn;

denne.empMName = empMName;

denne.empLName = empLName;

denne.DEPTNAME = DEPTNAME;

}

/*

* (ikke-javadoc)

*

* @see java.lang.Object # toString()

*/

@ Override

offentlige String toString() {

return “EmployeeDtls [Rec name =” + Rec navn + “, empMName =” + empMName

+ “, empLName =” + empLName + “, DEPTNAME =” + DEPTNAME + “]”;

}

/**

* @return den empFName

*/

offentlige string getEmpFName() {

return Rec navn;

}

/**

* @param Rec navn

* den empFName at indstille

*/

offentlige ugyldig setEmpFName(String empFName) {

denne.Rec Rec name = navn;

}

/**

* @return den empMName

*/

offentlige string getEmpMName() {

return empMName;

}

/**

* @param empMName

* den empMName at indstille

*/

offentlige ugyldig setEmpMName(String empMName) {

denne.empMName = empMName;

}

/**

* @return den empLName

*/

offentlige string getEmpLName() {

return empLName;

}

/**

* @param empLName

* den empLName at indstille

*/

offentlige ugyldig setEmpLName(String empLName) {

denne.empLName = empLName;

}

/**

* @return den DEPTNAME

*/

offentlige String getDeptName() {

return DEPTNAME;

}

/**

* @param DEPTNAME

* den DEPTNAME at indstille

*/

offentlige ugyldig setDeptName(String DEPTNAME) {

denne.DEPTNAME = DEPTNAME;

}

}

[/Code]
Summary: Så i denne artikel har vi set, hvordan foråret JDBC skabelon kan bruges i Java-baserede standard og virksomhedens applikationer. Vi har også diskuteret fordelene ved denne tilgang, og hvordan det kan gøre udviklingen meget hurtigere i forhold til den standard JDBC baseret udvikling.

Lad os opsummere vores diskussion i form af følgende punktform -

  • Foråret er blevet en væsentlig del af den moderne Java-baserede virksomhed applikationsudvikling miljø.
  • Foråret har forskellige sektioner, hvoraf, JDBC skabelon er en vigtig del.
  • Spring JDBC skabelon letter udviklingen ved at tage belastningen af ​​erhvervelsen ressource, tilslutning ledelse, exception handling, og generel fejlkontrol. Vi som en udvikler bare nødt til at koncentrere sig om det komplekse business scenario.
============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share