ibatis学习(一)--ibatis介绍以及用例
来源:互联网 发布:网络限制指令 编辑:程序博客网 时间:2024/06/05 09:57
介绍
iBATIS是以SQL为中心的持久化层框架。能支持懒加载、关联查询、继承等特性。iBATIS不同于一般的OR映射框架(eg:hibernate)。OR映射框架,将数据库表、字段等映射到类、属性,那是一种元数据(meta-data)映射。iBATIS则是将SQL查询的参数和结果集映射到类。因此可以说,iBATIS做的是SQL Mapping的工作。它把SQL语句看成输入以及输出,结果集就是输出,而where后面的条件参数则是输入。iBATIS能将输入的普通POJO对象、Map、XML等映射到SQL的条件参数上,同时也可以将查询结果映射到普通POJO对象(集合)、Map、XML等上面。
iBATIS使用xml文件来映射这些输入以及输出。能大大减少数据库存储部分的代码量,而且可以非常方便的利用SQL中的一些小技巧。
简单示例
基于ibatis-2.3.0.677版本。1、 创建新的项目,并引入jar包
a) ibatis-2.3.0.677.jar
b) mysql驱动
2、 在类路径中(classes下)提供ibatis的配置文件: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> <transactionManager type="JDBC" commitRequired="false"> <dataSource type="SIMPLE"> <property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/> <property name="JDBC.ConnectionURL" value="jdbc:mysql://127.0.0.1/ibatis"/> <property name="JDBC.Username" value="root"/> <property name="JDBC.Password" value="mysql"/> </dataSource> </transactionManager> <sqlMap resource="com/ibatis/model/User.xml"/></sqlMapConfig>3、创建实体类:User.java
package com.ibatis.model;publicclass User { privateintid; private String username; private String password; publicint getId() { returnid; } publicvoid setId(int id) { this.id = id; } public String getPassword() { returnpassword; } publicvoid setPassword(String password) { this.password = password; } public String getUsername() { returnusername; } publicvoid setUsername(String username) { this.username = username; }}
4、创建针对User对象的CRUD的xml映射配置:User.xml
<?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 namespace="User"> <!-- Use type aliases to avoid typing the full classname every time. --> <typeAlias alias="User" type="com.ibatis.model.User"/> <!-- Select with no parameters using the result map for Account class. --> <select id="selectAllUsers" resultClass="User"> select * from t_user </select> <select id="selectUser" resultClass="User" parameterClass="int"> select * from t_user where id=#id# </select> <insert id="insertUser" parameterClass="User"> insert into t_user values ( null,#username#,#password# ) </insert> <update id="updateUser" parameterClass="User"> update t_user set username = #username#,password=#password# where id=#id# </update> <delete id="deleteUser" parameterClass="int"> delete from t_user where id=#id# </delete></sqlMap>5、创建测试程序测试:
package com.crm.model;import java.io.Reader;import java.util.Iterator;import java.util.List;import com.ibatis.common.resources.Resources;import com.ibatis.sqlmap.client.SqlMapClient;import com.ibatis.sqlmap.client.SqlMapClientBuilder;/** *最简单的形式! *@authorq * */publicclass UserTest { /** *@paramargs */ publicstaticvoid main(String[] args) throws Exception{ //从配置文件中得到SqlMapClient对象 Reader reader = Resources.getResourceAsReader("sqlMapConfig.xml"); SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader); reader.close(); //创建用户数据 for(int i=0; i<10; i++){ User user = new User(); user.setUsername("用户"+i); user.setPassword("密码"+i); sqlMapper.insert("insertUser", user); } //查询用户数据 List users = sqlMapper.queryForList("selectAllUsers"); for (Iterator iter = users.iterator(); iter.hasNext();) { User user = (User) iter.next(); System.out.println(user.getUsername()); } //查询特定用户的数据 User user = (User)sqlMapper.queryForObject("selectUser", 1); System.out.println("用户【id="+1+"】的名称是:"+user.getUsername()); //更新用户的信息 user = new User(); user.setId(3); user.setUsername("更改之后的用户名称"); user.setPassword("密码被更改"); sqlMapper.update("updateUser", user); //删除用户的信息 sqlMapper.delete("deleteUser", 6); }}
- ibatis学习(一)--ibatis介绍以及用例
- ibatis学习(一)--ibatis介绍以及用例
- ibatis学习(一)--ibatis介绍以及用例
- ibatis学习(一)--ibatis介绍以及用例
- ibatis学习(一)--ibatis介绍以及示例
- Ibatis学习笔记(一)简单介绍
- ibatis学习(二)--ibatis使用介绍
- ibatis学习(二)--ibatis使用介绍
- ibatis学习(二)--ibatis使用介绍
- ibatis学习(二)--ibatis使用介绍
- ibatis学习(二)--ibatis使用介绍
- iBatis框架学习(一)
- iBATIS学习笔记(一)
- ibatis学习总结一
- iBATIS介绍,iBATIS是什么?
- ibatis学习笔记(一)例子
- easyui+spring+springmvc+ibatis学习(一)
- ibatis基础语法学习(一)
- Oracle树形查询
- Android View.post(Runnable )
- 阿里巴巴笔试题 (2011年度)
- final 修饰符
- windows下网络操作
- ibatis学习(一)--ibatis介绍以及用例
- 远程计算器控制(包含wxPython,socket,thread)(初级水平)
- 理解Lucene索引过程
- Objective-C url encode/decode url加密解密
- 企业如何远程招聘到靠谱的程序员?--Codassium网页视频聊天工具
- 高速数据包存储发送技术实现
- 总结一下java中我认识的哈希码以及equals和==的区别
- 新发现数据量存"2013-5-14 6:20"smarty的date_format函数还能够认识,mysql也能自动识别?
- JS开发的WebGrid控件