- 浏览: 336853 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
alafqq:
很好的一篇启蒙hashmap的文章;HASHTABLE的93行 ...
使用数组和链表实现hash表存储信息 -
小帅1127:
我擦,我还以为有什么大坑呢,这也写出来。。。
if..else if和if..if的区别 -
fncj:
转下http://www.dodoer.com
hadoop单机版搭建图文详解 -
yueshang520:
Spring注解原理的详细剖析与实现 -
fncj:
转下,谢谢http://www.whohelpme.com/b ...
Spring注解原理的详细剖析与实现
使用ibatis的理由:
1. 知道怎样操作10种以上的数据库
2. 可配置的caching(包括从属)
3. 支持DataSource、local transaction managemen和global transaction
4. 简单的XML配置文档
5. 支持Map, Collection, List和简单类型包装(如Integer, String)
6. 支持JavaBeans类(get/set 方法)
7. 支持复杂的对象映射(如populating lists, complex object models)
8. 对象模型从不完美(不需要修改)
9. 数据模型从不完美(不需要修改)
10. 你已经知道SQL,为什么还要学习其他东西
11. ibatis把sql语句从Java源程序中独立出来,放在单独的XML文件中编写,给程序的维护带来了很大便
利。
12. ibatis封装了底层JDBC API的调用细节,并能自动将结果集转换成Java Bean对象,大大简化了Java数
据库编程的重复工作。
13. 简单易于学习,易于使用, 非常实用。
14. 因为Ibatis需要程序员自己去编写sql语句,程序员可以结合数据库自身的特点灵活控制sql语句,因
此能够实现比hibernate等全自动orm框架更高的查询效率,能够完成复杂查询。
15. 阿里巴巴、慧点科技等多家知名软件公司都使用Ibatis。(这才是重点啊,不学何以学sofa啊)
环境搭建流程:(java语言+oralce)
1、下载jar包
2、eclipse中新建工程,将相关jar包导入ibatis-2.3.0.677.jar ojdbc14.jar
3、配置文件(三种):
jdbc连接的属性文件
总配置文件
关于每个实体的映射文件
SqlMap.properties(oralce版)
driver=oracle.jdbc.driver.OracleDriver url=jdbc:oracle:thin:@127.0.0.1:1521:wxy username=wxy password=123456
SqlMap.properties(mysql版)
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/wxy username=root password=123456
SqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> <sqlMapConfig> <!--添加JDBC配置文件--> <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="com/wxy/Student.xml"/> </sqlMapConfig>
实体类的映射文件Student.xml:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.rog//DTD SQL Map 2.0//EN" "http://ibatis.apche.org/dtd/sql-map-2.dtd"> <sqlMap> <!-- <resultMap id="StudentResult" class="Student"> <result property="sid" column="sid"/> <result property="sname" column="sname"/> <result property="major" column="major"/> <result property=birth" column="birth"/> </resultMap> --> </sqlMap>
创建对应的Student.java
package com.wxy; import java.sql.Date; public class Student { private int sid=0; private String sname = null; private String major = null; private Date birth = null; private float score = 0; //保证要有无参构造器 public Student(){} public int getSid() { return sid; } public void setSid(int sid) { this.sid = sid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public String getMajor() { return major; } public void setMajor(String major) { this.major = major; } public Date getBirth() { return birth; } public void setBirth(Date birth) { this.birth = birth; } public float getScore() { return score; } public void setScore(float score) { this.score = score; } }
定义crud接口IStudentDao.java
package com.wxy; import java.util.List; public interface IStudentDao { public void addStudentBySequence(Student student); public void addStudent(Student student); public void deleteStudentById(int id); public void updateStudentById(Student student); public List<Student>queryAllStudent(); public Student queryStudentById(int id); public List<Student>queryStudentByName(String name); }
在Student.xml中配置sql语句:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.rog//DTD SQL Map 2.0//EN" "http://ibatis.apche.org/dtd/sql-map-2.dtd"> <sqlMap> <!-- <resultMap id="StudentResult" class="Student"> <result property="sid" column="sid"/> <result property="sname" column="sname"/> <result property="major" column="major"/> <result property=birth" column="birth"/> </resultMap> --> <!-- typeAlias别名,缩减类名前的包名字 --> <typeAlias alias="Student" type="com.wxy.Student"/> <selet id ="selectAllStudent" resultClass="Student"> select * from student </selet> <!--查询所有学生--> <select id="selectAllStudent" resultClass="Student"> select * from student </select> <!--根据id查询学生--> <select id="selectStudentById" parameterClass="int" resultClass="Student"> select * from student where id=#id# </select> <!--添加学生--> <insert id="insertStudent" parameterClass="Student"> insert into Student(id, name, major, birth, score) values (#id#, #name#, #major#, #birth#, #score#) </insert> <!--根据id删除学生--> <delete id="deleteStudentById" parameterClass="int"> delete from student where id = #id# </delete> <!--根据sid修改学生--> <update id="updateStudentById" parameterClass="Student"> update Student set name=#name# major=#major# score=#score# birth=#birth# where id=#id# </update> <!--模糊查询--> <select id="selectStudentByName" parameterClass="String" resultClass="Student"> select id, name, major, birth, score from Student where name like '%$name$%' </select> <!--主键自增方式添加学生--> <insert id="insertStudentBySequence" parameterClass="Student"> <selectKey resultClass="int" keyProperty="id"> select studentPKSequence.nextVal from dual </select> insert into Student(id, name, birth, major, score) values(#id#, #name#, #birth#, #major#, #score#) </insert> </sqlMap>
写接口的实现类IStudentDAOImpl .java
package com.wxy; import java.io.IOException; import java.io.Reader; import java.sql.SQLException; import java.util.List; import com.ibatis.sqlmap.client.SqlMapClient; public class IStudentDAOImpl implements IStudentDAO{ private static SqlMapClient sqlMapClient = null; /** 读取配置文件*/ static{ try{ Reader reader=com.ibatis.common.resources.Resources.getResourceAsReader("com/wxy/SqlMapConfig.xml"); sqlMapClient = com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(reader); reader.close(); }catch(IOException e){ e.printStackTrace(); } } //查询所有学生 public List<Student>queryAllStudent(){ List<Student>studentList = null; try{ studentList = sqlMapClient.queryForList("selectAllStudent"); }catch(SQLException e){ e.printStackTrace(); } return studentList; } //根据id查询学生 public Student queryStudentById(int id){ Student student = null; try{ student = (Student)sqlMapClient.queryForObject("selectStudentById",id); }catch(SQLException e){ e.printStackTrace(); } return student; } //添加学生 public void addStudent(Student student){ try{ sqlMapClient.insert("insertStudent", student); }catch(SQLException e){ e.printStackTrace(); } } //根据sid删除学生 public void deleteStudentById(int id){ try{ sqlMapClient.delete("deleteStudentById", id); }catch(SQLException e){ e.printStackTrace(); } } //根据id修改学生 public void updateStudentById(Student student){ try{ sqlMapClient.update("updateStudentById",student); }catch(SQLException e){ e.printStackTrace(); } } //模糊查询 public List<Student>queryStudentByName(String name){ List<Student>studentList = null; try{ studentList = sqlMapClient.queryForList("selectStudentByName", name); }catch(SQLException e){ e.printStackTrace(); } return studentList; } //根据主键自增方式添加学生,让数据库自动给对象设定id public void addStudentBySequence(Student student){ try{ sqlMapClient.insert("insertStudentBySequence",student); }catch(SQLException e){ e.printStackTrace(); } } @Override public void updateStudentById(int id) { // TODO Auto-generated method stub } }
编写测试类 ibatisTest.java
package com.wxy; public class ibatisTest { /** * @param args */ public static void main(String[] args) { IStudentDAO dao = new IStudentDAOImpl(); for(Student student:dao.queryAllStudent()){ System.out.println(student); } } }
- ibatis-2.3.0.677.jar (374.5 KB)
- 下载次数: 57
- ojdbc14.jar (1.1 MB)
- 下载次数: 39
- iBATIS-SqlMaps-2_cn.pdf (982.9 KB)
- 描述: Ibatis-sqlmaps-2_cn.pdf
- 下载次数: 28
- mysql-connector-java-5.1.17-bin.jar (769.5 KB)
- 下载次数: 17
发表评论
-
使用CGLIB实现AOP功能与AOP概念解释 .
2011-08-19 10:30 1331第三方创建代理对象的框架cglib,目标类可以不实现接口 ... -
编码实现用JDK中的Proxy实现springAOP功能
2011-08-18 15:04 744http://blog.csdn.net/iamtheevil ... -
Spring注解原理的详细剖析与实现
2011-08-14 23:09 84238本文主要分为三部分: ... -
Spring装配基本属性的原理分析与代码实现
2011-08-11 15:37 1420首先,做一个配置属性的基本测试。修改beans.xml,使引用 ... -
编码剖析Spring依赖注入的原理
2011-08-10 20:01 1815一、注入依赖对象 基本类型对象注入: <b ... -
Spring的三种实例化Bean的方法
2011-08-10 14:03 1Spring的三种实例化Bean的方法 1、 使用 ... -
Spring管理bean的原理自定义实现
2011-08-10 10:44 61881、Spring通过BeanDefinition管理基于S ... -
spring环境搭建与测试
2011-08-10 08:40 3410Chapter1、搭建与测试spring的环境 1、 ... -
log4j的使用与详细分析
2011-08-05 13:32 2626一、什么是log4j? http://logging.a ... -
log4j使用详解
2011-08-04 23:05 2http://logging.apache.org/log4j ... -
spring入门及Demo
2011-07-29 16:01 0一、Spring是什么? Spring是一个开源框架,它 ... -
div内页面背景图片无法显示解决方法
2011-03-14 21:12 1326用photoshop打开背景图片,在“图像”菜单下将“模式 ... -
web开发之感悟篇
2011-02-27 19:10 1569学而不思则罔,思而不学则殆。 出处:《论语·为政 ... -
CSS学习笔记(1)
2011-02-19 23:35 1201一、CSS基本语法 1、 所有css样式申明都是大小写无关 ... -
web学习记录(一些问题的解决方案)
2011-02-16 11:51 12331、eclipse中the import javax.serv ... -
JSP工作原理浅析
2011-01-19 02:04 1356jsp第一次被请求时,jsp引擎把该jsp文件转换成 ... -
servlet学习笔记
2011-01-19 01:13 9651、servlet和jsp有什么区别? ... -
session机制深入理解
2011-01-18 02:18 28381、什么是session? ... -
jsp与servlet传递产生乱码的根源及解决方案
2011-01-13 03:31 2987一、基本概念 1、Jsp页面指令也叫做page指令。Pag ... -
servlet学习入门总结
2010-11-05 00:06 9921、 jsp和servlet: 从完成功能上来说,ja ...
相关推荐
包括ibatis开发的基础教程,以及ibatis在eclipse、myeclipse中搭建开发环境的详细步骤。
简单的Ibatis入门例子,让你踏入Ibatis大门
ibatis入门级别代码,带有增删改查,多条件查询,单对象查询和数据集合查询,作为刚学习ibatis时使用(码云同步)
最简单的iBatis入门例子
strut+ibatis+spring环境搭建,有详细步骤。
iBATIS入门学习
NULL 博文链接:https://qing393260529.iteye.com/blog/459723
初学ibatis的同志们 搭建环境的好东西哦资源不错 易学易懂
springmvc ibatis 整合, 解决BLOB,CLOB等大字段的问题,内置查询...内部并没有实际的项目,只是一个搭建好的环境,方便较少大家时间, 并提供了一个DEMO ,紧为不了解ibatis,或者首次整合springmvc-ibatis的人使用!
ibatis入门教程
ibatis入门与ibatis迭代的用法
ibatis入门到精通详细讲解,配以生动详细的实例,让你用最少的时间学以致用
NULL 博文链接:https://vincent-yy.iteye.com/blog/325670
ibatis实战之基础环境搭建(源码) 文章地址:http://blog.csdn.net/itmyhome1990/article/details/28267901
该资源为PDF格式文件,内容为IBATIS框架的详细搭建步骤,配置文件的编辑,相关JAVA类的编写,以及MAP中各个元素的使用
ibatis 开发包 入门教程 帮组手册
NULL 博文链接:https://wcp88888888.iteye.com/blog/1328456
ibatis 入门级教程,里面包含了Ibatis的增删改查操作,采用的数据库是Oracle,表使用的是emp表,同时包含了Ibatis的主键生成策略,里面注释写得比较详细,非常适合Ibatis入门学习
ibatis入门,这里讲述了初级和高级的所有ibatis数据库连接的配置