`

初识ibatis之基本用法

阅读更多

ibatis internet”和“abatis”的组合,是一种“半自动化”的ORM实现。

 

ibatis 它是一种轻量级的框架,据冯文老师说它是最能让程序员感到情切的因为他的数据库实现需要我们来写数据库的代

 

码。区别于Hibernate。

 

 首先要做的是把下面的代码写入log4j配置文件里面用控制台打出,以便我们观察控制台输出的语句,也就是他生成的SQL代码。作

 

为初学者我有必要看下:

log4j.logger.com.ibatis=DEBUG 
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG 
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG 
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG 
log4j.logger.java.sql.Connection=DEBUG 
log4j.logger.java.sql.Statement=DEBUG 
log4j.logger.java.sql.PreparedStatement=DEBUG 

然后数据库配置文件db.properties:

driver=net.sourceforge.jtds.jdbc.Driver
url=jdbc:jtds:sqlserver://127.0.0.1:1433/users
logon_name=sa
logon_password=sa

 

 现在我所关注的就是ibatis的一些情况了:

 

1.SQL Map XML配置文件

 

<properties>元素 ,<setting>元素 ,<typeAlias>元素 ,<sqlMap>元素 我暂时研究这些元素。

 

<properties>元素:在属性文件中定义的属性作为变量在 SQL Map 配
置文件中的引用。

 

 

 <setting>元素 :主要是优化性能方面的。

 

<typeAlias>元素:主要是给较长的类取别名用的。

 

<sqlMap>元素:主要是读取问件路径的。

 

2.SQL Map XML映射文件

 

parameterClass 、parameterMap 、resultClass 、resultMap 只作这几个的用法

 

GO!GO!

 

配置一个文件。

<?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>

  <!-- 读取propertise 文件里面的信息 -->
  <properties resource="db.properties" />   <!-- 这是 加载db.properties属性文件的路径 -->

  <transactionManager type="JDBC" commitRequired="true">
    <dataSource type="SIMPLE">
      <property name="JDBC.Driver" value="${driver}"/>
      <property name="JDBC.ConnectionURL" value="${url}"/>
      <property name="JDBC.Username" value="${logon_name}"/>
      <property name="JDBC.Password" value="${logon_password}"/>
    </dataSource>
  </transactionManager>

  <!--   读取user.xml 文件-->
 
  <sqlMap resource="user.xml"/>
</sqlMapConfig>
    

 

 然后在写一个配置文件让User类的属性和数据库的字段相关联起来:

 

 

package com.lovo.lis.model;

public class User {
	private int id;
	private String name;
	private String password;
	public User(){
		
	}
	public User( String name,String password){
		this.name=name;
		this.password=password;
	}
	public User(int id, String name,String password){
		this.id=id;
		this.name=name;
		this.password=password;
	}
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
}

 

 

 配置文件

<?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="u">
  
  <!-- 为com.lovo.lis.model配置一个别名方便下面引用 -->
  <typeAlias alias="user" type="com.lovo.lis.model.User"/>
  
  
  <!-- 配置一个parameterMap 针对User所有属性 -->
  <parameterMap class="user" id="allUserPM">
    <parameter property="id"/>
    <parameter property="name"/>
    <parameter property="password"/>
  </parameterMap>
  
  <!-- 添加一条记录 使用parameterMap 注意?和parameterMap声明属性的个数/顺序匹配-->
  <insert id="saveUserByParameterMap" parameterMap="allUserPM">
     <![CDATA[
      insert into t_user(u_id,u_name,u_password) values
      (?,?,?)
    ]]>
  </insert>
  
  <!--根据id查询1条记录 利用xmlResultSetName查询1条记录 通过列别名映射到对象属性 -->
  <select id="getUserById" parameterClass="java.lang.Integer" resultClass="user">
    <![CDATA[
       select u_id id,u_name name,u_password password
       from t_user where u_id=#i#
    ]]>
  </select>
  
  <!-- 针对select * from t_user结果集的映射 -->
  <resultMap class="user" id="allUserRM">
    <result property="id" column="u_id"/>
    <result property="name" column="u_name"/>
    <result property="password" column="u_password"/>
  </resultMap>
  
  <!-- 查询所有记录 -->
  <select id="findAllUsers" resultMap="allUserRM">
  <![CDATA[
       select u_id,u_name,u_password
       from t_user
    ]]>
  </select>
  
  <!-- 查询所有记录 使用xmlResultSetName 通过列别名映射查询-->
  <select id="findAllUsers2" resultClass="user">
  <![CDATA[
       select u_id id,u_name name,u_password password
       from t_user
    ]]>
  </select>
  
  <!-- 按id修改用户名和密码 使用InLine Parameter -->
  <update id="updateUser" parameterClass="user">
    <![CDATA[
       update t_user set u_name=#name#,u_password=#password#
       where u_id=#id#
    ]]>
  </update>
  
  <!-- 按id删除记录 -->
  <delete id="deleteUserById" parameterClass="java.lang.Integer">
    <![CDATA[
       delete from t_user
       where u_id=#i#
    ]]>
  </delete>
  
  <!-- 按用户名和密码查询 使用Map类型输入参数 
                  注意##之间的字符和Map中的键匹配-->
  <select id="findByNamePassword" parameterClass="java.util.Map" 
      resultClass="user">
    <![CDATA[
       select u_id id,u_name name,u_password password
       from t_user where u_name=#mName# and u_password=#mPassword#
    ]]>
  </select>
</sqlMap>

 

 

分享到:
评论

相关推荐

    ibatis入门与ibatis迭代的用法

    **iBatis的使用步骤** 1. **配置环境**:引入iBatis的jar包,并在项目中配置SqlMapConfig.xml文件,包括数据源、事务管理器等。 2. **编写SQL映射文件**:创建XML文件,定义SQL语句,包括查询、插入、更新和删除等...

    iBatis 基本jar包

    这个"iBatis 基本jar包"包含了运行iBatis框架所需的核心组件,使得开发者能够快速地在项目中集成并使用iBatis。 1. **iBatis 框架概述**: iBatis 是由Clinton Begin创建的一个开源项目,最初是为了解决Java中的...

    ibatis基本操作数据库

    iBatis,全称为MyBatis iBatis,是一个基于Java的持久层框架,它简化了数据库与应用程序之间的交互,避免了直接编写大量的...了解并熟练掌握iBatis的基本操作和特性,对于提升Java项目的数据库访问能力具有重要意义。

    iBatis Web用法实例

    总结,"iBatis Web用法实例"涵盖了如何在Web环境中搭建、配置和使用iBatis的基本步骤,以及相关的配置文件和SQL映射。通过学习这个实例,开发者可以更好地理解和掌握iBatis在实际项目中的应用,提高数据访问层的开发...

    iBATIS缓存的使用方法

    ### iBATIS缓存的使用方法 在数据库访问框架iBATIS中,缓存机制是一项重要的功能,它能够显著提高应用程序的性能。本文将详细介绍iBATIS中的缓存使用方法,包括缓存模型的配置、不同类型的缓存控制器以及如何在SQL...

    详细介绍Ibatis的用法

    ### 详细介绍Ibatis的用法 #### Ibatis概述与特点 Ibatis是一个开源的持久层框架,它通过简单的XML配置文件将JavaBean映射到SQL语句上,从而极大简化了对关系数据库的操作。与其他数据库持久层框架如JDO、...

    ibatis基本架包

    这两个JAR文件共同构成了Ibatis的基本运行环境,开发者可以利用它们来构建数据访问层,实现高效且易于维护的数据库操作。在实际项目中,通常还需要结合其他依赖,如数据库驱动,以及Spring等框架进行整合使用。

    ibatis demo,ibatis例子,ibatis示例

    通过这个demo,你可以了解到Ibatis的基本用法,如何编写SQL映射文件,如何设计Mapper接口,以及如何在Java代码中调用这些接口执行数据库操作。同时,也能掌握Ibatis的动态SQL特性,以及如何配合Spring进行更高效的...

    ibatis的使用教程

    Ibatis 提供了一些基本的API,如查询、添加、删除和修改方法。通常,会通过 SqlMapClient 的工厂类创建 SqlMapClient 实例,以管理数据库操作。例如,使用 SqlMapClientBuilder 创建 SqlMapClient 对象,然后执行...

    ibatis总结 ibatis ibatis ibatis ibatis

    Ibatis 是一款轻量级的Java持久层框架,它允许开发者将SQL语句与Java代码分离,从而使得数据库访问更加灵活、易于维护。本篇文章将深入探讨Ibatis的核心概念、最佳实践以及与其他框架如Struts和Spring的整合。 1. ...

    ibatis 之分页

    首先,了解Ibatis的基本概念。Ibatis是由Apache基金会维护的一个开源项目,它是一个SQL映射框架,通过XML或注解的方式将SQL语句与Java代码分离,使开发者能更专注于业务逻辑,而不是繁琐的数据库操作。在分页查询...

    ibatis

    标签 "教程" 指出这是一个学习资源,可能是书籍或在线课程,旨在帮助开发者掌握iBATIS的基本用法和高级技巧。 压缩包中的文件名揭示了更具体的学习内容: 1. **spring-reference_cn.pdf**:这可能是Spring框架的...

    Ibatis基本配置---[环境搭建

    Ibatis基本配置---[环境搭建

    ibatis官方中文文档

    它涵盖了iBATIS的基本使用方法,包括插入、更新、删除和查询等操作。此外,文档还特别强调了如何通过iBATIS来调用存储过程,这是数据库操作中的一个重要特性,尤其是在处理复杂逻辑或批量操作时。 **iBATIS-SqlMaps...

    ibatis入门

    这个入门级别的教程将引导你了解 Ibatis 的基本概念和使用方法,包括增删改查操作、多条件查询以及单对象和数据集合查询。 1. **安装与配置** 在开始使用 Ibatis 之前,你需要在项目中引入 Ibatis 的依赖。如果是 ...

    IBatis.NET开发文档

    - 第一个例子:通过一个简单的CRUD操作,展示iBATIS的基本用法。 - 数据源配置:讲解如何配置数据连接字符串,连接池等。 - CRUD操作:详细解释如何使用iBATIS执行增删改查操作。 - 映射实体类:介绍如何将...

    ibatis源码,ibatis源码 ibatis源码 ibatis源码

    源码中`org.apache.ibatis.cache.Cache`接口定义了缓存的基本操作,而具体的缓存实现如`org.apache.ibatis.cache.impl.PerpetualCache`则实现了缓存的存储和读取。 通过阅读和理解iBatis的源码,我们可以更深入地...

    经典开源插件之ibatis

    ### 经典开源插件之ibatis #### 概述 ibatis(现称为MyBatis)是一款优秀的持久层框架,它将SQL语句与Java代码分离,支持自定义SQL查询、存储过程以及高级映射等功能。ibatis的灵活性使得开发者能够通过简单的XML...

    iBatis一个小项目

    在本项目中,我们将深入探讨iBatis的基本概念、配置、映射文件以及如何在实际应用中使用它。 一、iBatis简介 iBatis最初由Clinton Begin创建,后来成为了Apache Software Foundation的一个顶级项目。它不是一个完整...

    ibatis动态SQL标签用法

    iBatis动态SQL标签用法 iBatis是Java持久层框架,提供了动态SQL标签来实现动态查询。动态SQL标签可以根据不同的条件生成不同的SQL语句,从而提高查询效率和灵活性。 动态SQL片段 iBatis提供了动态SQL片段的功能,...

Global site tag (gtag.js) - Google Analytics