ibatis比较hibernate来说就简单得多,写出的代码更清爽,对于一般的项目是绰绰有余了.
ibatis的配置:
1.引ibatis的类库,只有1个(ibatis-2.3.4.726.jar),简单实用
2.配置文件SqlMapConfig.xml
//数据库设置
<transactionManager type="JDBC" commitRequired="false">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>
<property name="JDBC.ConnectionURL" value="jdbc:mysql://127.0.0.1/bbs"/>
<property name="JDBC.Username" value="root"/>
<property name="JDBC.Password" value="root"/>
</dataSource>
</transactionManager>
//映射关系(猜的...) 作用是用过Account.xml的sql语句(也算是sql语句吧)实现项目与数据库的对话
<sqlMap resource="com/dao/impl/sql/Account.xml"/>
3.公共类IbatisUtil.java,这个类是作用简单的说就是项目运行ibatis的入口
public class IbatisUtil {
private static SqlMapClient sqlMap = null;
static {
try {
Reader reader = Resources.getResourceAsReader("util/SqlMapConfig.xml");
sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
}catch(Exception e){
throw new RuntimeException(e);
}
}
public static SqlMapClient getSqlMap(){
return sqlMap;
}
}
这个类不是一定要有,类里面的语句完全可以写在你需要使用的每一个类里面,前提是你不嫌麻烦...
4.Account.xml注解
//名字,随便取...(额...尽量还是不要随便取...)
<sqlMap namespace="Account">
//type对应domain里面的类模型.要完整的相对路径.alias是type的替代名,下面的parameterClass都是用的这个简称,注意....
<typeAlias alias="account" type="com.domain.Account"/>
//id是为在实现类中调用该方法的标记.传入的参数一定用##考括起来
<insert id="addAccount" parameterClass="account">
insert into account values(#id#,#name#,#password#,#level#,#popedom#)
</insert>
<delete id="deleteAccount" parameterClass="account">
delete from account where id=#id#
</delete>
<update id="update" parameterClass="account">
update account set
name=#name#,
password=#password#,
level=#level#
where id=#id#
</update>
//resultClass是返回值类型
<select id="findAccountById" resultClass="account" parameterClass="account">
select * from account where id=#id#
</select>
5.实现类AccountImpl.java
//这个对象肯定是对了调用ibatis方法的...没什么好解释了..
SqlMapClient map = null;
public void add(Account acc) throws Exception {
//IbatisUtil.getSqlMap()...额..就是那个公共类...
map = IbatisUtil.getSqlMap();
//addAccount就是上面Account.xml文件里面对应的id名字
map.insert("addAccount", acc);
}
这样ibatis的运行环境就算是搭建完了...很简单撒....肯定能用了,我测试过的...
应该没比这个更详细的吧...哈哈..