谈到ibatis大家可能都会想到hibernate 我想是的!
首先.我们要知道ibatis跟hibernate所存在的区别,各自的优势。就比较好学习了,而不会混了去。
在javaeye我找到一篇很好的博文:【不是自己写的:ibatis:sql需要自己写
hibernate:sql自动生成
上面是最大的区别,下面是一些细节.有下载.
】
步骤:三拷三配
需拷开发包、pojo的映射文件 总的映射文件 强烈推荐看ibatis的帮助文档。有下载下面
pojo类的映射文件头子:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
总的映射文件头子:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
<!--下面是配置信息-->
<!-- ibatis 是sql语句映射 而 hibernate是对象映射 -->
<mapper namespace="com.pojos">
<select id="getAllDep" resultType="com.pojos.Dep">
select * from Dep
</select>
</mapper>
<!--下面是总配置文件的相关-->
<configuration>
<!-- 全局配置,请参考手册 -->
<settings>
<setting name="cacheEnabled" value="true"/>
</settings>
<!-- 类型取别名 -->
<typeAliases>
<typeAlias type="com.pojos.Dep" alias="Dep"/>
</typeAliases>
<!-- 环境设置,一种数据库对应一种环境development -->
<environments default="development">
<environment id="MySql">
<!-- 事务管理,一般用jdbc,或手工 -->
<transactionManager type="JDBC"></transactionManager>
<!-- 连接数据库:可以连接池POOLED或UNPOOLED不使用连接池 -->
<dataSource type="POOLED">
<property name="username" value="root"/>
<property name="password" value="admin"/>
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost/test"/>
</dataSource>
</environment>
<environment id="Oracle">
<!-- 事务管理,一般用jdbc,或手工 -->
<transactionManager type="JDBC"></transactionManager>
<!-- 连接数据库:可以连接池POOLED或UNPOOLED不使用连接池 -->
<dataSource type="UNPOOLED">
<property name="username" value="scott"/>
<property name="password" value="tiger"/>
<property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:ora92"/>
</dataSource>
</environment>
</environments>
<!-- 加载映射文件 -->
<mappers>
<mapper resource="com/pojos/Dep.xml"/>
</mappers>
</configuration>
<!--在测试类中的-->
//读取配置文件
Reader reader = Resources.getResourceAsReader("config.xml");
//创建session工程
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader,"MySql");
SqlSession session=factory.openSession();
List<Dep> list=session.selectList("com.pojos.getAllDep");
for (Dep dep : list) {
System.out.println(dep.getDepname());
}
//说明 List<Dep> list=session.selectList("com.pojos.getAllDep");
中的com.pojos.getAllDep :是配置的空间名称.sql语句的id
这只是一种做法,还一种就是建立一个接口dao .封装了映射文件里面的id.将id名称全部写成了接口。 引用只要在映射文件里面的空间名称改成该接口路径到类名
下篇接着笔记 .哈哈