ibatis简易教程

显示数据库所有数据
1、这里使用的是MySQL数据库,先创建一个test数据库
drop TABLE IF EXISTS CONTACT;

CREATE TABLE CONTACT(
    contactId int(11) NOT NULL AUTO_INCREMENT,
    firstName varchar(20) default NULL,
    lastName varchar(20) default NULL,
    email varchar(20) default NULL,
    PRIMARY KEY (contactId)
);

insert into contact(firstName,lastName,email) values('aaa','bbb','ccc@qq.com');
insert into contact(firstName,lastName,email) values('aaa','ddd','eee@qq.com');

2、然后创建对应的pojo对象
package com.csii.test;
public class Contact {
private String firstName;
private String lastName;
private String email;
private int contactId;
public Contact(){
}
public Contact(String firstName,String lastName,String email){
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
}
public Contact(int contactId,String firstName,String lastName,String email){
this.contactId = contactId;
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
}
public String getEmail(){
return this.email;
}
public void setEmail(String email){
this.email = email;
}
public String getFirstName(){
return this.firstName;
}
public void setFirstName(String firstName){
this.firstName = firstName;
}
public int getContactId(){
return this.contactId;
}
public void setContactId(int contactId){
this.contactId = contactId;
}
public String getLastName(){
return this.lastName;
}
public void setLastName(String lastName){
this.lastName = lastName;
}
}

3、紧接着编写SqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig
    PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
    "http://www.ibatis.com/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://localhost:3306/test" />
<property name="JDBC.Username" value="root" />
<property name="JDBC.Password" value="admin" />
</dataSource>
</transactionManager>
<sqlMap resource="Contact.xml" />
</sqlMapConfig>

4、紧接着编写Contact.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap
    PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
    "http://www.ibatis.com/dtd/sql-map-2.dtd">

<sqlMap namespace="Contact">
<select id="getAll" resultClass="com.csii.test.Contact">
select * from contact
</select>
<select id="getById" resultClass="com.csii.test.Contact">
select * from contact where
contactId = #contactId#
</select>
</sqlMap>

5、编写测试java类文件
package com.csii.test;

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 IbatisExample{
private static Reader reader;
private static SqlMapClient sqlMap;
public static void main(String[] args) throws IOException, SQLException {
reader = Resources.getResourceAsReader("SqlMapConfig.xml");
sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
testRead();
}

private static void testRead() throws IOException, SQLException {
System.out.println("All Contacts");
List<Contact> contacts = sqlMap.queryForList("Contact.getAll",null);
for (Contact contact : contacts) {
System.out.println("contactId="+contact.getContactId());
System.out.println("firstName="+contact.getFirstName());
System.out.println("lastName="+contact.getLastName());
System.out.println("email="+contact.getEmail());
System.out.println("==============================");
System.out.println("按条件查询Contacts");
int contactId = 1;
List<Contact> contacts2 = sqlMap.queryForList("Contact.getById",contactId);
for (Contact contact2 : contacts2) {
System.out.println("contactId="+contact2.getContactId());
System.out.println("firstName="+contact2.getFirstName());
System.out.println("lastName="+contact2.getLastName());
System.out.println("email="+contact2.getEmail());
System.out.println("===========================");
}
}
}
}


程序输出结果为:
All Contacts
contactId=1
firstName=aaa
lastName=bbbb
email=123@qq.com
==============================
按条件查询 Contacts
contactId=1
firstName=aaa
lastName=bbbb
email=123@qq.com
===========================
contactId=2
firstName=ccc
lastName=dddd
email=456@qq.com
==============================
按条件查询 Contacts
contactId=1
firstName=aaa
lastName=bbbb
email=123@qq.com
===========================

其中我的jar文件使用的是:ibatis-2.3.0.677.jar
向数据库插入数据
1、在contact.xml中增加如下内容
<insert id="insert" parameterClass="com.csii.test.Contact">
insert into contact(firstName,lastName,email) values(#firstName#,#lastName#,#email#)
</insert>

2、在测试java类文件中添加如下内容
private static void testInsert() throws IOException,SQLException{
Contact contact = new Contact("test", "wangxu", "11@qq.com");
sqlMap.insert("Contact.insert",contact);
}

删除数据教程
1、在contact.xml中增加如下内容
<delete id="deleteById">
delete from Contact where contactId = #contactId#
</delete>
2、在测试java类文件中添加如下内容
private static void testDelete() throws IOException,SQLException{
int contactId = 1;
sqlMap.delete("Contact.deleteById",contactId);
}

更新数据教程
1、在contact.xml中增加如下内容
<update id="updateById" parameterClass="Contact">
        update Contact set firstName = #firstName#,lastName = #lastName#,email=#email# where contactId = #contactId#
</update>

2、在测试java类文件中添加如下内容
private static void testUpdate() throws IOException,SQLException{
Contact contact = new Contact(2, "update", "update", "update@update.com");
sqlMap.update("Contact.updateById",contact);
}
resultMap例子教程
1、在contact.xml中增加如下内容
<resultMap id="result" class="com.csii.test.Contact">
<result property="contactId" column="contactId"></result>
<result property="firstName" column="firstName"></result>
<result property="lastName" column="lastName"></result>
<result property="email" column="email"></result>
</resultMap>
<select id="getById" resultMap="result">
    select * from contact where contactId = #contactId#
</select>
2、在测试java类文件中添加如下内容
    Object obj = sqlMap.queryForObject("Contact.getById",new Integer(2));
    System.out.println(obj.toString());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值