Ibatis是一个轻便的sqlMap工具,相较于ORM的hibernate学习成本低,并且可控性更强。
Ibatis增删该查简单例子[ibatis版本ibatis-2.3.4.726.jar]
数据模型Customer.java
package com.pojo;
public class Customer {
private String customerId;
private String name;
public String getCustomerId() {
return customerId;
}
public void setCustomerId(String customerId) {
this.customerId = customerId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
sqlmap映射配置Customer.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="CUSTOMER">
<!-- 定义别名 -->
<typeAlias alias="Customer" type="com.pojo.Customer"/>
<!-- 定义数据库列名与类属性之间的结果映射 -->
<resultMap id="CustomerResult" class="Customer">
<result property="customerId" column="CUSTOMER_ID"/>
<result property="name" column="NAME"/>
</resultMap>
<!-- 查询所有的Customer -->
<select id="selectAllCusotmers" resultMap="CustomerResult">
select * from CUSTOMER
</select>
<!-- 通过id查询Customer -->
<select id="selectCustomerById" parameterClass="String" resultClass="Customer">
select
CUSTOMER_ID as customerId,
NAME as name
from CUSTOMER
where CUSTOMER_ID = #customerId#
</select>
<!-- 插入一个Customer -->
<insert id="insertCustomer" parameterClass="Customer">
insert into CUSTOMER (
CUSTOMER_ID,
NAME)
values (
#customerId#, #name#
)
</insert>
<!-- 更新一个Customer -->
<update id="updateCustomer" parameterClass="Customer">
update CUSTOMER set
NAME = #name#
where
CUSTOMER_ID = #customerId#
</update>
<!-- 删除一个Customer -->
<delete id="deleteCustomerById" parameterClass="String">
delete from CUSTOMER where CUSTOMER_ID = #customerId#
</delete>
</sqlMap>
sqlmap配置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>
<!-- 默认值为false,指定各个sqlMap中的namespace是否起作用,
如果为ture,则在指定sql语句是要加入namespace名称例如 namespace.XXX -->
<settings useStatementNamespaces ="true" />
<!-- 指定数据库链接信息 -->
<transactionManager type="JDBC" commitRequired="false">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="加载数据驱动"/>
<property name="JDBC.ConnectionURL" value="数据库链接URL"/>
<property name="JDBC.Username" value="用户名"/>
<property name="JDBC.Password" value="密码"/>
</dataSource>
</transactionManager>
<!-- 引入sqlmap -->
<sqlMap resource="com/sqlmap/Customer.xml"/>
</sqlMapConfig>
测试类Main.java
package com;
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;
import com.pojo.Customer;
public class Main {
private static SqlMapClient sqlMapper;
static {
try {
Reader reader = Resources.getResourceAsReader("com/sqlmap/SqlMapConfig.xml");
sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
} catch (IOException e) {
throw new RuntimeException("Something bad happened while building the SqlMapClient instance." + e, e);
}
}
/** 查询所有的Customer */
@SuppressWarnings("unchecked")
public static List<Customer> selectAllCusotmers () throws SQLException {
return sqlMapper.queryForList("CUSTOMER.selectAllCusotmers");
}
/** 通过id查询Customer */
public static Customer selectCustomerById(String customerId) throws SQLException {
return (Customer) sqlMapper.queryForObject("CUSTOMER.selectCustomerById", customerId);
}
/** 插入一个Customer */
public static void insertCustomer(Customer customer) throws SQLException {
sqlMapper.insert("CUSTOMER.insertCustomer", customer);
}
/** 更新一个Customer */
public static void updateCustomer(Customer customer) throws SQLException {
sqlMapper.update("CUSTOMER.updateCustomer", customer);
}
/** 删除一个Customer */
public static void deleteCustomerById (String id) throws SQLException {
sqlMapper.delete("CUSTOMER.deleteCustomerById", id);
}
}
Ibatis增删改查示例
542

被折叠的 条评论
为什么被折叠?



