मैं सोच रहा हूं कि MyBatis 3 & स्प्रिंग 3 का उपयोग करके मेरे सम्मिलित बयान के साथ बैच ऑपरेशंस को कैसे कार्यान्वित किया जाए?माइबेटिस/स्प्रिंग के साथ बैच ऑपरेशंस को कैसे कार्यान्वित करें?
उदाहरण के लिए, यहाँ क्या वर्तमान में किया जा रहा है:
spring.xml:
<bean id="jndiTemplateDatasource" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">${context.factory}</prop>
</props>
</property>
</bean>
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate" ref="jndiTemplateDatasource"/>
<property name="jndiName" value="${connectionpool.jndi}"/>
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.test" />
</bean>
MyService.xml:
<insert id="insertMyRecord" parameterType="com.test.MyRecord" >
insert into ... // code removed
</insert>
MyService.java:
public interface MyService {
public void insertMyRecord (MyRecord);
}
MyControl ler.java:
@Controller
public class MyController {
@Autowired
private MyService myService;
@Transactional
@RequestMapping(....)
public void bulkUpload (@RequestBody List<MyRecord> myRecords) {
for (MyRecord record : myRecords) {
myService.insertMyRecord(record);
}
}
}
अस्वीकरण: यही कारण है कि प्रदर्शन के उद्देश्य से सिर्फ छद्म कोड है
तो मैं चालू करने के लिए है कि एक बैच प्रक्रिया में क्या कर सकता है?
आदर्श रूप से मैं कोड में कम से कम "घुसपैठ" करने में सक्षम होना चाहता हूं, यानी एनोटेशन का अधिक पसंदीदा उपयोग करें, लेकिन यदि संभव नहीं है तो अगली सबसे अच्छी चीज़ क्या है?
इसके अलावा, इसे केवल एक ही सेवा के लिए कॉन्फ़िगर करने की आवश्यकता है, न कि परियोजना में सबकुछ के लिए।
अधिक स्पष्ट होने के लिए, लक्ष्य एक प्रदर्शन के लिए रिकॉर्ड सम्मिलन में एक जेडीबीसी बैचिंग प्रकार के हैंडलिंग प्राप्त करना है, एक-एक-एक दृष्टिकोण के बजाय यह – Trant