首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

ibatis施用介绍01

2012-10-07 
ibatis使用介绍01介绍iBATIS是以SQL为中心的持久化层框架。能支持懒加载、关联查询、继承等特性。iBATIS不同于

ibatis使用介绍01

介绍

iBATIS是以SQL为中心的持久化层框架。能支持懒加载、关联查询、继承等特性。

iBATIS不同于一般的OR映射框架。OR映射框架,将数据库表、字段等映射到类、属性,那是一种元数据(meta-data)映射。iBATIS则是将SQL查询的参数和结果集映射到类。

?

所以,iBATIS做的是SQL Mapping的工作。

?

它把SQL语句看成输入以及输出,结果集就是输出,而where后面的条件参数则是输入。iBATIS能将输入的普通POJO对象、Map、XML等映射到SQL的条件参数上,同时也可以将查询结果映射到普通POJO对象(集合)、Map、XML等上面。

?

iBATIS使用xml文件来映射这些输入以及输出。

?

?

简单示例

基于ibatis-2.3.0.677版本。

<?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/crm"/> <property name="JDBC.Username" value="root"/> <property name="JDBC.Password" value="mysql"/> </dataSource> </transactionManager> <sqlMap resource="com/ysen/model/User.xml"/>

3、创建实体类:User.java

public class User {private int id;private String username;private String password;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getUsername() {return username;}public void 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>  <!-- Use type aliases to avoid typing the full classname every time. -->  <typeAlias alias="User" type="com.ysen.model.User"/>  <!-- Select with no parameters using the result map for Account class. -->  <select id="selectAllUsers" resultresultparameterparameterparameterparameterstyle="margin: 0cm 0cm 0pt;">5、创建测试程序测试:

?

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;/** * 最简单的形式! * @author Lee * */public class UserTest {/** * @param args */public static void 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);}

?

热点排行