ibatis学习笔记 下载本文

内容发布更新时间 : 2024/11/14 19:49:03星期一 下面是文章的全部内容请认真阅读。

ibatis学习笔记

1、 搭建环境: (1)、创建ibatis_test项目。 (2)、添加SQL2000驱动包msbase.jar、mssqlserver.jar、msutil.jar和ibatis-2.3.3.720.jar包。 2、配置文件: (1)、JDBC连接属性文件:在src目录下添加SqlMap.properties属性文件,主要包括JDBC连

接的主要信息,driver=,url=,username=,password=,也可以见JDBC连接的信息直接写到总配置文件中。

(2)、配置每个实体的映射文件(map文件):

如Student.xml文件,其主要是包括对实体进行CURD操作的SQL语句的映射。 (3)、添加总配置文件:(参见SqlMapConfig.xml文件) 其主要功能是导入SqlMap.properties和Student.xml文件,进行统一管理 3、创建相应的类: (1)、建立实体类Student.java类。 (2)、建立管理类接口StudentDao,和实现类StudentDaoImpl

4、测试CRUD操作:

(1)、在StudentDaoImpl类中添加读取配置

(2)、测试查询所有信息的方法queryAllStudent(),在Student.xml文件中配置SQL

语句映射信息。例如:

<“-- 查找所有用户 -->

public List queryAllStudent() {

List studntList = null; try {

studntList=sqlMapClient.queryForList(\); } catch (SQLException e) {

在queryAllStudent()方法中使用sqlMapClient的queryForList()方法进行调用:

}

}

// TODO Auto-generated catch block e.printStackTrace();

return studntList;

4、ibatis使用HashMap传递SQL多个参数:

虽然ibatai sql map可以配置多个参数,但sqlMap只能传入一个参数,我们有两种方式,一是把我们的参数封装成一个类,通过set/get取值的方式给sql map注入参数,二是通过hashMap(可以组合一些不是同一个pojo的参数有优势):范例:

<“-- 使用Map解决多参数问题,多条件的查询 -->

select sid,sname ,major,birth,score from t_student

where sname like '%$sname$%' and score=#score#

注意:Map中的值key和类型要和SQL语句的的参数名称和类型一样。在如:

Map map=new HashMap();

map.put(\ key为参数名,value位数据 List list = sqlMap.queryForList(\

5、分页查询,使用page-paglib标签,提供每页分几行pagesize,和排除的记录结束位置

pager.offset参数进行查询。建立PagerModel模型类如:

<“-- 分页查询 -->

6、存储过程的使用: (1)、在SQL SERVER创建存储过程: create procedure pro_delete @sid int,--学生编号 @msg nvarchar(100) output--返回信息 as --定义变量,初始化变量 declare @count int; set @count=0; set @msg='操作成功'; begin select @count = count(*) from t_student where sid =@sid; if @count=0 begin set @msg ='记录不存在。'; return end else begin set @msg ='记录删除成功。'; delete from t_student where sid = @sid; return end end

--测试

declare @msg nvarchar(100)

execute pro_delete 12,@msg output select @msg (2)、配置Students.xml文件: