Spring数据库访问之iBatis(二)
接上文,我们继续来研究Spring和iBatis的整合访问数据。下面首先来看看插入操作,数据的插入操作属于更新操作的一种,是比较简单的一种操作,就是将符合数据表字段规范且对应用程序无害的数据插入到数据表中。
我们分两种方式来进行插入操作,第一种是Bean的方式进行,首先来编写iBatis的插入SQL语句:
<insert id="insertContact" parametername="code">package org.ourpioneer.contact.dao;import java.util.Map;import org.ourpioneer.contact.bean.Contact;public interface ContactDAO {public Contact getContactById(Map<Object, Object> parameterMap);public int insertContact(Contact contact);}package org.ourpioneer.contact.dao.impl;import java.util.Map;import org.ourpioneer.contact.bean.Contact;import org.ourpioneer.contact.common.BaseDAO;import org.ourpioneer.contact.dao.ContactDAO;public class ContactDAOImpl extends BaseDAO implements ContactDAO {public Contact getContactById(Map<Object, Object> parameterMap) {return (Contact) getSqlMapClientTemplate().queryForObject("getContactById", parameterMap);}public int insertContact(Contact contact) {return getSqlMapClientTemplate().update("insertContact", contact);}}public int insertContact(Contact contact) {return getContactDAO().insertContact(contact);}package org.ourpioneer.contact;import org.ourpioneer.contact.bean.Contact;import org.ourpioneer.contact.service.ContactService;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class App {private static final Logger logger = LoggerFactory.getLogger(App.class);public static void main(String[] args) {ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");ContactService contactService = (ContactService) context.getBean("contactService");// Contact contact = contactService.getContactById(1);Contact contact = new Contact("Tom", "male", "15940990001", "Dalian");int recordsOfUpdates = contactService.insertContact(contact);logger.info("{}", recordsOfUpdates);}}public Contact() {super();}public Contact(String name, String gender, String mobile, String address) {super();this.name = name;this.gender = gender;this.mobile = mobile;this.address = address;}

<insert id="insertContact" parametername="code">package org.ourpioneer.contact.dao;import java.util.Map;import org.ourpioneer.contact.bean.Contact;public interface ContactDAO {public Contact getContactById(Map<Object, Object> parameterMap);public int insertContact(Contact contact);public int insertContact(Map<Object, Object> parameterMap);}public int insertContact(Map<Object, Object> parameterMap) {return getSqlMapClientTemplate().update("insertContact", parameterMap);}public int insertContact(String name, String gender, String mobile,String address) {Map<Object, Object> parameterMap = new ParameterMap("NAME", name,"GENDER", gender, "MOBILE", mobile, "ADDRESS", address);return getContactDAO().insertContact(parameterMap);}package org.ourpioneer.contact;import org.ourpioneer.contact.service.ContactService;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class App {private static final Logger logger = LoggerFactory.getLogger(App.class);public static void main(String[] args) {ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");ContactService contactService = (ContactService) context.getBean("contactService");// Contact contact = contactService.getContactById(1);// Contact contact = new Contact("Tom", "male", "15940990001",// "Dalian");int recordsOfUpdates = contactService.insertContact("Tom", "male","15940990001", "Dalian");logger.info("{}", recordsOfUpdates);}}<update id="updateContactById" parametername="code">public int updateContactById(Contact contact) {return getSqlMapClientTemplate().update("updateContactById", contact);}public int updateContact(Contact contact) {return getContactDAO().updateContactById(contact);}public class App {private static final Logger logger = LoggerFactory.getLogger(App.class);public static void main(String[] args) {ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");ContactService contactService = (ContactService) context.getBean("contactService");Contact contact = contactService.getContactById(2);System.out.println(contact);contact.setMobile("15900000001");contact.setAddress("Beijing");int recordsOfUpdates = contactService.updateContact(contact);logger.info("{}", recordsOfUpdates);}

<delete id="deleteContactById" parametername="code">public int deleteContactById(Map<Object, Object> parameterMap) {return getSqlMapClientTemplate().update("deleteContactById", parameterMap);}public int deleteContactById(long id) {Map<Object, Object> parameterMap = new ParameterMap("ID", id);return getContactDAO().deleteContactById(parameterMap);}public class App {private static final Logger logger = LoggerFactory.getLogger(App.class);public static void main(String[] args) {ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");ContactService contactService = (ContactService) context.getBean("contactService");int recordsOfUpdates = contactService.deleteContactById(3);logger.info("{}", recordsOfUpdates);}}