基础准备工作:
需要的jar包:ibatis-common-2.jar ibatis-dao-2.jar ibatis-sqlmap-2.jar
数据库:MySql
数据库名称:vin
创建表:contact
创建脚本:
CREATE TABLE `contact` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`firstName` VARCHAR(20) NULL DEFAULT NULL,
`lastName` VARCHAR(20) NULL DEFAULT NULL,
`email` VARCHAR(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`)
)
COLLATE='gbk_chinese_ci'
ENGINE=InnoDB
AUTO_INCREMENT=6;
创建配置文件:
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>
<settings useStatementNamespaces="true"/>
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>
<property name="JDBC.ConnectionURL" value="jdbc:mysql://127.0.0.1:3306/vin"/>
<property name="JDBC.Username" value="root"/>
<property name="JDBC.Password" value="keyiliaoyuan"/>
</dataSource>
</transactionManager>
<sqlMap resource="Contact.xml"/>
</sqlMapConfig>
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 namespace="Contact">
<!--- Inserting data in table -->
<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>
<!--- Delete data from Contact table -->
<delete id="deleteAll" parameterClass="Contact">
delete from Contact
</delete>
<!--- Update data of Contact table -->
<update id="updateById" parameterClass="long">
update Contact
set
lastName = 'Raghuwanshi'
where
id=#id#
</update>
<!--- Showing all data of table -->
<select id="getAll" resultClass="Contact">
select * from contact
</select>
<!--- Showing data by ID -->
<resultMap id="result" class="Contact">
<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>
<!--- Calling stored procedure -->
<procedure id="storedInfo" resultClass="Contact">
{ call showData()}
</procedure>
</sqlMap>
创建对应数据库表的java类
Contact.java
public class Contact {
private String firstName;
private String lastName;
private String email;
private int id;
public Contact() {
}
public Contact(String firstName, String lastName, String email) {
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
创建查询类IbatisExample.java
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import java.io.*;
import java.sql.SQLException;
import java.util.*;
public class IbatisExample {
public static void main(String[] args) throws IOException, SQLException {
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
List<Contact> contacts = (List<Contact>) sqlMap.queryForList("Contact.getAll",null);
Contact contact = null;
for (Contact c : contacts) {
System.out.print(" " + c.getId());
System.out.print(" " + c.getFirstName());
System.out.print(" " + c.getLastName());
System.out.print(" " + c.getEmail());
contact = c;
System.out.println("");
}
}
}
创建新增类IbatisInsertion.java
import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
public class IbatisInsertion {
public static void main(String[] args) throws IOException, SQLException {
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
Contact contact = new Contact("Amit", "Kumar", "amit@roseindia.net");
sqlMap.insert("Contact.insert", contact);
List<Contact> contacts = (List<Contact>) sqlMap.queryForList("Contact.getAll", null);
Contact contactall = new Contact();
for (Contact c : contacts) {
System.out.print(" " + c.getId());
System.out.print(" " + c.getFirstName());
System.out.print(" " + c.getLastName());
System.out.print(" " + c.getEmail());
contact = c;
System.out.println("");
}
}
}
创建更新类IbatisUpdate.java
import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
public class IbatisUpdate {
public static void main(String[] args) throws IOException, SQLException {
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
Contact contct = new Contact();
long contactId = 1;
sqlMap.update("Contact.updateById", contactId);
List<Contact> contacts = (List<Contact>) sqlMap.queryForList("Contact.getAll", null);
Contact contact = null;
for (Contact c : contacts) {
System.out.print(" " + c.getId());
System.out.print(" " + c.getFirstName());
System.out.print(" " + c.getLastName());
System.out.print(" " + c.getEmail());
contact = c;
System.out.println("");
}
}
}
创建查询对象类IbatisResultMap.java
import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
public class IbatisResultMap {
public static void main(String[] args) throws IOException, SQLException {
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
Contact contact = (Contact) sqlMap.queryForObject("Contact.getById",new Integer(4));
System.out.println("|Id = " + contact.getId());
System.out.println("|First Name = " + contact.getFirstName());
System.out.println("|Last Name = " + contact.getLastName());
System.out.println("|Email Id = " + contact.getEmail());
}
}
创建调用存储过程类IbatisResultMap.java
import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
public class IbatisStoredProcedure {
public static void main(String[] args) throws IOException, SQLException {
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
List<Contact> contacts = (List<Contact>) sqlMap.queryForList("Contact.storedInfo", null);
Contact contact = null;
for (Contact c : contacts) {
System.out.print(" " + c.getId());
System.out.print(" " + c.getFirstName());
System.out.print(" " + c.getLastName());
System.out.print(" " + c.getEmail());
contact = c;
System.out.println("");
}
}
}