感觉主要还是那个配置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 } }
接下来是:配置文件 SqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMapConfig PUBLIC "-//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.properties
jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/vin jdbc.userName=root jdbc.password=root
配置文件:Contact.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMap PUBLIC "-//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" resultClass="Contact"> select * from contact </select> <!-- ibatis插入1 --> <insert id="insert" parameterClass="Contact"> insert into contact(firstName,lastName,email) values(#firstName#,#lastName#,#email#) <selectKey resultClass="int" keyProperty="id"> select last_insert_id() as id </selectKey> </insert> <!-- ibatis插入操作2 --> <parameterMap class="Contact" 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" parameterClass="int"> delete from Contact where id=#id# </delete> <!-- ibatis更新操作 --> <update id="updateById" parameterClass="int"> update Contact set lastName="tonyJ" where id=#id# </update> <!-- ibatis根据id查询 --> <resultMap class="Contact" id="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" resultClass="Contact"> {call showData()} </procedure> <!-- ibatis模糊查询 --> <select id="selectByName" parameterClass="java.lang.String" resultClass="Contact"> select * from contact where firstName like '%$firstName$%' </select> <!-- ibatis分页查询1 --> <select id="getByPage" parameterClass="java.util.Map" resultClass="Contact"> select * from contact <isParameterPresent> <isNotNull property="orderById"> order by $orderById$ </isNotNull> <isNotNull property="limitClauseStart"> limit $limitClauseStart$,$limitClauseCount$ </isNotNull> </isParameterPresent> </select> <!--ibatis 分页查询2 --> <select id="getByPage1" parameterClass="java.util.Map" resultClass="Contact"> select * from contact </select> </sqlMap>
测试类:
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","[email protected]"); sqlMap.insert("insert",contact);*/ //插入2 /*System.out.println("*------insert Contact Table------------*"); Contact contact=new Contact("firstName2","lastName2","[email protected]"); 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()); // } } }