ibatis2小例子(转)
这个是ibatis v2的一个小例子,刚学习,从网上找的,忘记原来的网址了,不过对于乐于分享的人很是感激,感觉还不错,上手应该挺快的,灵活的SQL构建。
感觉主要还是那个配置sql的文件里面的那些配置文件有一些难度,所以附上一份文档参考参考。
下面是实体类:
package com.tonyj.pojo;public class Contact {private String firstName;private String lastName;private String email;private int id;//相应的getter和setter方法,构造方法public String getFirstName() {return firstName;}public void setFirstName(String firstName) {this.firstName = firstName;}public String getLastName() {return lastName;}public void setLastName(String lastName) {this.lastName = lastName;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public int getId() {return id;}public void setId(int id) {this.id = id;}public Contact(String firstName, String lastName, String email) {super();this.firstName = firstName;this.lastName = lastName;this.email = email;}public Contact() {super();// TODO Auto-generated constructor stub}}
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE sqlMapConfigPUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN""http://ibatis.apache.org/dtd/sql-map-config-2.dtd"><sqlMapConfig><properties resource="jdbc.properties"/><settings cacheModelsEnabled="true"enhancementEnabled="true"lazyLoadingEnabled="true"maxRequests="32"maxSessions="10"maxTransactions="5"useStatementNamespaces="true"/> <transactionManager type="JDBC"><dataSource type="SIMPLE"> <property name="JDBC.Driver" value="${jdbc.driverClassName}"/> <property name="JDBC.ConnectionURL" value="${jdbc.url}"/> <property name="JDBC.Username" value="${jdbc.userName}"/> <property name="JDBC.Password" value="${jdbc.password}"/></dataSource></transactionManager><sqlMap resource="Contact.xml"/></sqlMapConfig>
jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/vinjdbc.userName=rootjdbc.password=root
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE sqlMapPUBLIC "-//ibatis.apache.org//DTD SQL MAP 2.0//EN""http://ibatis.apache.org/dtd/sql-map-2.dtd"><sqlMap><typeAlias alias="Contact" type="com.tonyj.pojo.Contact"/><!-- ibatis查询操作 --><select id="getAll" resultparameterkeyProperty="id">select last_insert_id() as id</selectKey></insert><!-- ibatis插入操作2 --><parameterMap id="insert-contact-parameter"><parameter property="firstName"/><parameter property="lastName"/><parameter property="email"/></parameterMap><statement id="insertContact" parameterMap="insert-contact-parameter">insert into contact(firstName,lastName,email) values (?,?,?);</statement><!-- ibatis删除操作 --><delete id="deleteContactById" parameterparameterid="result"><result property="id" column="id"/><result property="firstName" column="firstName"/><result property="lastName" column="lastName"/><result property="email" column="email"/></resultMap><select id="getById" resultMap="result">select * from contact where id=#id#</select><!-- ibatis调用mysql存储过程 --><procedure id="storedInfo" resultparameterresultparameterresultparameterresultname="code">package com.tonyj.test;import java.io.Reader;import java.util.HashMap;import java.util.List;import java.util.Map;import com.ibatis.common.resources.Resources;import com.ibatis.sqlmap.client.SqlMapClient;import com.ibatis.sqlmap.client.SqlMapClientBuilder;import com.tonyj.pojo.Contact;public class IbatisExample {public static void main(String[] args) throws Exception{Reader reader=Resources.getResourceAsReader("SqlMapConfig.xml");SqlMapClient sqlMap=SqlMapClientBuilder.buildSqlMapClient(reader);//查询/*System.out.println("All Contacts");List<Contact> contacts=(List<Contact>)sqlMap.queryForList("getAll",null);for(Contact c:contacts){System.out.println(" "+c.getId()+"-->"+c.getFirstName()+"-->"+c.getLastName()+"-->"+c.getEmail());}*///插入1/*System.out.println("*------insert Contact Table------------*");Contact contact=new Contact("Amit","Kumar","amit@yes.com");sqlMap.insert("insert",contact);*///插入2/*System.out.println("*------insert Contact Table------------*");Contact contact=new Contact("firstName2","lastName2","tang@yes.com");sqlMap.insert("insertContact",contact);*///删除//int i=sqlMap.delete("deleteContactById", 1);//System.out.println("i="+i);//更新//sqlMap.update("updateById", 3);//根据id查询//Contact contact=(Contact) sqlMap.queryForObject("getById", new Integer(3));//System.out.println(contact.toString());//调用存储过程//List<Contact> contacts=(List<Contact>)sqlMap.queryForList("storedInfo", null);//Contact contact=null;//for(Contact c:contacts){//System.out.println(c.toString());//}//模糊查询List<Contact> contacts=(List<Contact>)sqlMap.queryForList("selectByName","t");Contact contact=null;for(Contact c:contacts){System.out.println(c.getFirstName());}//分页1/*Map<String,Object> map=new HashMap<String,Object>();map.put("orederById"," id asc");map.put("limitClauseStart",5);map.put("limitClauseCount",5);List<Contact> result=(List<Contact>)sqlMap.queryForList("getByPage", map);for(Contact c:result){System.out.println(c.toString());}*///分页2//int skip=5;//int max=4;//String sql="getByPage1";//@SuppressWarnings("unchecked")//List<Contact> contacts=(List<Contact>)sqlMap.queryForList(sql,skip,max);//for(Contact c:contacts){//System.out.println(c.toString());//}}}