کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش NamedParameter-Java Spring

NamedParameter‌

مثال قالب NamedParameterJdbc در اسپرینگ

اسپرینگ روش دیگری برای درج داده، به واسطه پارامترهای نامگذاری شده (named parameter)، ارائه کرده است. در این روش، به جای علامت سوال (؟) از نام ها استفاده می کنیم. بنابراین بهتر است داده ها را ستونی به خاطر بسپاریم.


مثال ساده از query پارامترهای نامگذاری شده(named parameter query)

insert into employee values (:id,:name,:salary)    

متد کلاس قالب NamedParameterJdbc

در این مثال تنها متد execute از کلاس قالب NamedParameterJdbc را فراخوانی می کنیم. نحو متد به صورت زیر است:

pubic T execute(String sql,Map map,PreparedStatementCallback psc)      

مثال کلاس قالب NamedParameterJdbc

فرض می کنیم جدول زیر را درون پایگاه داده Oracle10g ایجاد کرده اید.

create table employee(  
id number(10),  
name varchar2(100),  
salary number(10)  
);   

Employee.java

این کلاس شامل سه خصیصه به همراه سازنده ها و setter و getter ها است.

package com.javatpoint;    
public class Employee {  
private int id;  
private String name;  
private float salary;  
//no-arg and parameterized constructors  
//getters and setters  
}  

EmployeeDao.java

این شامل یک خصیصه قالب Jdbc و یک متد save است .

package com.javatpoint;    
import java.sql.PreparedStatement;  
import java.sql.SQLException;  
import org.springframework.dao.DataAccessException;  
import org.springframework.jdbc.core.PreparedStatementCallback;  
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;  
import java.util.*;    
public class EmpDao {  
NamedParameterJdbcTemplate template;    
public EmpDao(NamedParameterJdbcTemplate template) {  
        this.template = template;  
}  
public  void save (Emp e){  
String query="insert into employee values (:id,:name,:salary)";  
Map map=new HashMap();  
map.put("id",e.getId());  
map.put("name",e.getName());  
map.put("salary",e.getSalary());  
template.execute(query,map,new PreparedStatementCallback() {  
    @Override  
    public Object doInPreparedStatement(PreparedStatement ps)  
            throws SQLException, DataAccessException {  
        return ps.executeUpdate();  
    }  
});  
}  
}

applicationContext.xml

از DriverManagerDataSource برای نگهداری اطلاعات درباره پایگاه داده، از جمله نام کلاس driver، اتصال URL، نام کاربری و رمز عبور استفاده می شود. یک خصیصه به نام datasource در کلاس قالب NamedParameterJdbc از نوع DriverManagerDataSource وجود دارد. بنابراین برای خصیصه datasource باید مرجع شی DriverManagerDataSource در کلاس قالب NamedParameterJdbcرا آماده کنیم. در اینجا از شی قالب NamedParameterJdbc در کلاس EmployeeDao استفاده می کنیم. بنابراین از سازنده برای پاس دادن آن استفاده می کنیم. شما همچنین می توانید از متد setter استفاده کنید.

< ?xml version="1.0" encoding="UTF-8" ?>

< beans 3. xmlns="http://www.springframework.org/schema/beans"
         4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         5. xmlns:p="http://www.springframework.org/schema/p"
         6. xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">  
  
< bean id="ds" class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
< property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />

< property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" />

< property name="username" value="system" />

< property name="password" value="oracle" />

< /bean>  
  
< bean id="jtemplate"
         17. class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">  
< constructor-arg ref="ds">< /constructor-arg>  
< /bean>  
  
< bean id="edao" class="com.javatpoint.EmpDao">  
< constructor-arg>  
< ref bean="jtemplate" />

< /constructor-arg>  
< /bean>  
  
< /beans>  

SimpleTest.java

این کلاس bean را از فایل applicationContext.xml می گیرد و متدsave را فراخوانی می کند.

package com.javatpoint;  
  
import org.springframework.beans.factory.BeanFactory;  
import org.springframework.beans.factory.xml.XmlBeanFactory;  
import org.springframework.core.io.ClassPathResource;  
import org.springframework.core.io.Resource;  
  
public class SimpleTest {  
  public static void main(String[] args) {  
      
    Resource r=new ClassPathResource("applicationContext.xml");  
    BeanFactory factory=new XmlBeanFactory(r);  
      
    EmpDao dao=(EmpDao)factory.getBean("edao");  
    dao.save(new Emp(23,"sonoo",50000));  
      
  }  
} 
1398/12/20 1699 500
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...