iBATIS3.0学习(一)使用iBATIS3.0完成增删改查
??? iBATIS3.0和以前的版本有一些改变,不过学过以前版本的再学习3.0应该不是太难,3.0要求JDK1.5支持,因为其中增加了注解和泛型,这些都是JDK1.5才有的。好了废话不多说,先来利用iBATIS3做下简单的增删改查吧。
??? 首先到Apache(http://www.apache.org/)网站下载iBATIS3的jar 包,我下载的是ibatis-3-core-3.0.0.227.zip,解压后吧那个jar文件(ibatis-3-core-3.0.0.227.jar)添加到工程就可以了,还有一个文件(ibatis-3-core-src-3.0.0.227.zip)是源代码,可以用来查看源代码的,使用eclipse可以用它来关联源代码。
??? 在MyEclipse新建一个Java Project,结构如下图
??? 在jdbc.properties文件是映射文件要使用的,其内容如下:
?
?上面文件中的sql映射文件person.xml代码如下:
???? 注意:在iBATIS3中,属性parameterMap是不推荐使用的,在以后的版本可能会去掉这个属性。
?? ? Person.java的代码如下:
??? iBATIS官方推荐我们使用单例模式创建一个sessionFactory,我这里也提供一个sessionFactory.java,呵呵,仅供参考:
public List<Person> selectAll() { List<Person> persons = new ArrayList<Person>(); SqlSession session = null; try { session = sessionFactory.openSession(); persons = session .selectList("cn.ibatis3.test.PersonMapper.selectAll"); } finally { session.close(); } return persons; }
这代码还是有些小问题吧。 11 楼 qwj528 2012-01-31 楼主<mapper namespace="cn.ibatis3.test.PersonMapper"> namespace这个属性有什么作用吗? 但是必须要有namespace。 从你这个例子来看好像是个接口。 12 楼 lyb520320 2012-01-31 qwj528 写道楼主<mapper namespace="cn.ibatis3.test.PersonMapper"> namespace这个属性有什么作用吗? 但是必须要有namespace。 从你这个例子来看好像是个接口。
namespace仅仅是为了区分不同的xml的一个名称,至于是什么看你自己的代码习惯 13 楼 grandboy 2012-02-01 这个我在网上搜索了好长时间,也试了网上说的一些办法,就是无法把产生的sql打印出来,不知道各位有没有成功经验?如果有人成功,请告诉详细方法或者给兄弟一个链接。
要亲自实验成功的方法。多谢。 14 楼 lyb520320 2012-02-01 ibatis3没有试验过打印sql,ibatis2通过jdk动态代理使用log4j打印sql,估计ibatis3也差不多,看下这个连接,主要看log4j.properties配置,这个文件要放到src目录下
http://winyee.iteye.com/blog/457216