Ibatis 框架基础

iBatis apache的一个开源项目,最大特点小巧,上手很快。如果不需要太多复制的功能,
iBatis可以满足要求又足够灵活。


iBatis的一些优点:

1. ibatis把sql语句从Java源程序中独立出来,放在单独的XML文件中编写,给程序的维护带来了很大便利。
2. ibatis封装了底层JDBC API的调用细节,并能自动将结果集转换成Java Bean对象,大大简化了Java数据库编程的重复工作。
3. 简单易于学习,易于使用, 非常实用。
4. 因为Ibatis需要程序员自己去编写sql语句,程序员可以结合数据库自身的特点灵活控制sql语句,因
此能够实现比hibernate等全自动orm框架更高的查询效率,能够完成复杂查询。
5. 阿里巴巴、慧点科技等多家知名软件公司都使用Ibatis。
    
官网:http://ibatis.apache.org/

搭建环境:导入相关jar包

配置文件:
Jdbc连接的属性文件
总配置文件(sqlMapConfig.xml)
关于每个实体的映射文件(map文件)
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>
  <properties resource="SqlMap.properties"/>
  <transactionManager type="JDBC">
    <dataSource type="SIMPLE">
      <property value="${driver}" name="JDBC.Driver"/>
      <property value="${url}" name="JDBC.ConnectionURL"/>
      <property value="${username}" name="JDBC.Username"/>
      <property value="${password}" name="JDBC.Password"/>
     </dataSource>
  </transactionManager>
  <sqlMap resource="Student.xml"/>
</sqlMapConfig>
映射文件

<?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>
  <typeAlias alias="Student" type="com.anker.bean.Student"/>

</sqlMap>

读取配置
Reader reader = com.ibatis.common.resources.Resources
					.getResourceAsReader("com/anker/properties/SqlMapConfig.xml");
sqlMapClient = com.ibatis.sqlmap.client.SqlMapClientBuilder
		.buildSqlMapClient(reader);
reader.close();

CRUD
借助SqlMapClient中的方法
queryForObject
queryForList
insert
delete
update
 
类注释
<typeAlias alias="Student"
 type="com.anker.bean.Student"/>


查询
<select id="selectAllStudents" resultClass="Student">
  select * from Student
</select>

<select id="selectStudentById" parameterClass="int" resultClass="Student">
  select sid,sname,score,major,birth from Student where sid = #sid#
</select>

插入
<insert id="insertStudent" parameterClass="Student">
 insert into Student(
 sid,
 sname,
 major,
 birth 
 )
 values(
 #sid#,#sname#,#major#,#score#,#birth#
 )
</insert>

删除
delete
<delete id="deleteStudentById" parameterClass="int">
 delete from Student where sid = #sid#
</delete>

更新

<update id="updateStudentById" parameterClass="Student">
 update Student
 set
  major = #major#,
  sname = #sname#,
  birth = #birth#,
  score = #score#,
 where sid = #sid#
</update>

模糊查询
<select id="selectStudentByName" parameterClass="String" resultClass="Student">
  select sid,sname,major,birth,score
    from Student
   where sname like #%sname%#

</select>

猜你喜欢

转载自yangeoo.iteye.com/blog/2203943