`

简单入门案例

阅读更多

Ibatis 入门
1.创建数据库脚本
 drop database sample;
 create database sample;
 use sample;
 drop table t_user;
 create table t_user(
  id int not null auto_increment,
  name varchar(50) default null,
  sex int(11) default null,
  primary key (id)
 );
 insert into t_user values (1,'1',1),(2,'2',2),(3,'3',3),(4,'4',4),(5,'5',5);
2.编写Ibaits必须的配置文件SqlMapConfig.xml
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE sqlMapConfig
     PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
     "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
 <sqlMapConfig>
  <settings cacheModelsEnabled="true" enhancementEnabled="true"
   lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="32"
   maxSessions="10" maxTransactions="5" useStatementNamespaces="false" />
  <transactionManager type="JDBC">
   <dataSource type="SIMPLE">
    <property name="JDBC.Driver" value="com.mysql.jdbc.Driver" />
    <property name="JDBC.ConnectionURL"
     value="jdbc:mysql://localhost/sample" />
    <property name="JDBC.Username" value="root" />
    <property name="JDBC.Password" value="mysqladmin" />
    <property name="Pool.MaximumActiveConnections" value="10" />
    <property name="Pool.MaximumIdleConnections" value="5" />
    <property name="Pool.MaximumCheckoutTime" value="120000" />
    <property name="Pool.TimeToWait" value="500" />
    <property name="Pool.PingQuery"
     value="select 1 from sample" />
    <property name="Pool.PingEnabled" value="false" />
    <property name="Pool.PingConnectionsOlderThan" value="1" />
    <property name="Pool.PingConnectionsNotUsedFor" value="1" />
   </dataSource>
  </transactionManager>
  <sqlMap resource="com/ctgusec/zhupan/maps/User.xml" />
 </sqlMapConfig>
3.编写实体类
 package com.ctgusec.zhupan.model;
 import java.io.Serializable;
 public class User implements Serializable {
  private static final long serialVersionUID = 1L;
  private Integer id;
  private String name;
  private Integer sex;
  .
  .
  .
4.在编写数据库表到实体类的映射
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE sqlMap
     PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
     "http://www.ibatis.com/dtd/sql-map-2.dtd">
 <sqlMap namespace="User">
  <typeAlias alias="user" type="com.ctgusec.zhupan.model.User" />
  <select id="getUser" parameterClass="java.lang.String" resultClass="user">
   <![CDATA[ select name,sex from t_user where name=#name# ]]>
  </select>
  <select id="getAllUser" resultClass="user">
   <![CDATA[ select name sex from t_user ]]>
  </select>
  <update id="updateUser" parameterClass="user">
   <![CDATA[ update t_user set name=#name#,sex=#sex# where id=#id#]]>
  </update>
  <insert id="insertUser" parameterClass="user">
   <![CDATA[INSERT INTO t_user ( name, sex) VALUES ( #name#, #sex# )]]>
  </insert>
  <delete id="deleteUser" parameterClass="java.lang.Integer">
   <![CDATA[delete from t_user where id=#value#]]>
  </delete>
 </sqlMap>
5.测试
 package com.ctgusec.zhupan;
 import java.io.Reader;
 import java.sql.SQLException;
 import java.util.List;
 import com.ctgusec.zhupan.model.User;
 import com.ibatis.common.resources.Resources;
 import com.ibatis.sqlmap.client.SqlMapClient;
 import com.ibatis.sqlmap.client.SqlMapClientBuilder;
 public class ExampleMain {
  //删除的操作
  public static boolean delete() {
   boolean flag = true;
   String resource = "com/ctgusec/zhupan/maps/SqlMapConfig.xml";
   SqlMapClient sqlMap = null;
   try {
    Reader reader = Resources.getResourceAsReader(resource);
    sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
   } catch (Exception e) {
    flag = false;
    e.printStackTrace();
   }
   try {
    sqlMap.startTransaction();
    sqlMap.delete("deleteUser",new Integer(7));
    sqlMap.commitTransaction();
   } catch (Exception e) {
    flag = false;
    e.printStackTrace();
   } finally {
    try {
     sqlMap.endTransaction();
    } catch (SQLException e) {
     flag = false;
     e.printStackTrace();
    }
   }
   return flag;
  }
  //增加的操作
  public static boolean add() {
   boolean flag = true;
   String resource = "com/ctgusec/zhupan/maps/SqlMapConfig.xml";
   SqlMapClient sqlMap = null;
   try {
    Reader reader = Resources.getResourceAsReader(resource);
    sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
   } catch (Exception e) {
    flag = false;
    e.printStackTrace();
   }
   try {
    sqlMap.startTransaction();
    User user = new User();
    user.setName("xc");
    user.setSex(new Integer(1));
    sqlMap.insert("insertUser", user);
    sqlMap.commitTransaction();
   } catch (Exception e) {
    flag = false;
    e.printStackTrace();
   } finally {
    try {
     sqlMap.endTransaction();
    } catch (SQLException e) {
     flag = false;
     e.printStackTrace();
    }
   }
   return flag;
  }
  //修改的操作
  public static void update() {
   // 首先初始化iBatis获得一个SqlMapClient对象
   String resource = "com/ctgusec/zhupan/maps/SqlMapConfig.xml";
   com.ibatis.sqlmap.client.SqlMapClient sqlMap = null;
   try {
    java.io.Reader reader = com.ibatis.common.resources.Resources
      .getResourceAsReader(resource);
    sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
   } catch (Exception e) {
    e.printStackTrace();
   }
   // sqlMap系统初始化完毕,开始执行update操作
   try {
    sqlMap.startTransaction();
    User user = new User();
    user.setId(new Integer(1));
    user.setName("zhangsan");
    user.setSex(new Integer(1));
    sqlMap.update("updateUser", user);
    sqlMap.commitTransaction();
   } catch (SQLException e) {
    System.out.println(e.getMessage());
   } finally {
    try {
     sqlMap.endTransaction();
    } catch (SQLException e) {
     e.printStackTrace();
    }
   }
  }
  //查询的操作
  public static List getUser() {
   // 首先初始化iBatis获得一个SqlMapClient对象
   String resource = "com/ctgusec/zhupan/maps/SqlMapConfig.xml";
   com.ibatis.sqlmap.client.SqlMapClient sqlMap = null;
   List user = null;
   try {
    java.io.Reader reader = com.ibatis.common.resources.Resources
      .getResourceAsReader(resource);
    sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
   } catch (Exception e) {
    e.printStackTrace();
   }
   // sqlMap系统初始化完毕,开始执行getAllUser操作
   try {
    sqlMap.startTransaction();
    user = sqlMap.queryForList("getAllUser", null);
    sqlMap.commitTransaction();
   } catch (SQLException e) {
    System.out.println(e.getMessage());
   } finally {
    try {
     sqlMap.endTransaction();
    } catch (SQLException e) {
     e.printStackTrace();
    }
   }
   return user;
  }
  public static void main(String[] args) {
 //  System.out.println(delete());
   // System.out.println(add());
   // System.out.println("testtest");
   // update();
   // List user=getUser();
   // for(int i=0;i<user.size();i++)
   // {
   // System.out.print(((User)user.get(i)).getName()+"、");
   // }
  }
 }
6.其中所使用的包
 commons-dbcp.jar
 commons-logging.jar
 commons-loggin-api.jar
 commons-pool.jar
 hsqldb.jar
 ibatis-common-2.jar
 ibatis-dao-2.jar
 ibatis-sqlmap-2.jar
 mysql-connector-java-3.1.12-bin.jar

分享到:
评论

相关推荐

    springboot简单入门案例

    在这个"springboot简单入门案例"中,我们将深入理解SpringBoot的核心概念以及如何与Mybatis、MySQL数据库集成,实现RESTful API。 首先,让我们了解一下SpringBoot的核心特性: 1. 自动配置:SpringBoot通过`@...

    WCF 简单入门案例 TCP HTTP PIPE

    WCF 简单入门案例 总共 TCP HTTP PIPE 三种协议 QQ:574311505 欢迎交流

    activeMQ简单入门案例

    本教程将引导你通过一个简单的入门案例了解如何使用ActiveMQ实现生产者与消费者的模式。 首先,我们需要了解ActiveMQ的基本概念。在消息队列中,生产者是发送消息的实体,而消费者则是接收和处理这些消息的实体。...

    简单入门threejs案例

    以上就是Three.js的简单入门案例,通过这个例子,你可以了解到如何创建一个基本的3D场景,添加物体,设定动画,并在浏览器中显示。随着深入学习,你将能够利用光照、纹理、动画和物理效果等创建更为复杂的3D应用。在...

    Dubbo简单入门案例

    简单dubbo入门案例,方便理解dubbo和zookeeper作用,学会dubbo项目的搭建,资源附带源码和sql文件,具体搭建过程参看博客:https://blog.csdn.net/lairikeqi/article/details/94631615

    vue简单入门小案例,vue简单入门小案例

    虽然对于简单入门案例可能不会涉及,但了解Vuex可以帮助你处理更复杂的项目,特别是当多个组件需要共享同一数据时。 7. **安装与运行**:要运行这个案例,你需要先确保安装了Node.js和npm。在命令行中,导航到`...

    springboot集成kafka简单入门案例

    这只是一个简单的入门案例,实际上Kafka和Spring Boot的整合功能远不止这些。例如,您可以配置多个主题、设置消费者分组、实现幂等性消费者、处理异常、使用Kafka Streams进行复杂的数据处理等。随着对Kafka和Spring...

    C,C++ 入门案例课件

    案例十 简单图书管理系统 案例十一 计算机招聘 案例十二 小孩出列 案例十三 饮料自动售货机 案例十四 趣味矩阵 案例十五 模拟自动取款机(ATM)案例十六 超市收银系统 案例十七 数据结构CAI——哈希表演示 案例十八 ...

    unity的简单入门案例.zip

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。Unity类似于Director,Blender ...

    Activiti工作流源码简单入门案例

    本案例将带你入门Activiti,理解其基本概念和操作流程。 首先,我们需要了解什么是工作流。工作流(Workflow)是组织内一系列任务的自动化过程,这些任务可能涉及不同的人、部门或系统。Activiti作为工作流引擎,...

    spring mvc经典入门案例

    这个经典入门案例将引导你逐步了解并掌握 Spring MVC 的基本概念、配置以及实际应用。 1. **Spring MVC 概述** Spring MVC 是一个模型-视图-控制器(MVC)架构模式的实现,它简化了Java Web 应用的开发,提供了一...

    MyBatis经典入门案例(初学者必备)

    本篇将围绕"MyBatis经典入门案例"展开,讲解如何从零开始搭建一个简单的MyBatis应用。 首先,我们需要了解MyBatis的基本构成。MyBatis主要由四个部分组成:SqlSessionFactoryBuilder、SqlSessionFactory、...

    DJango入门案例+超详细步骤

    本教程将基于一个实际的入门案例,逐步介绍如何使用Django从零开始构建一个简单的网页应用。在这个过程中,我们将涵盖Django的基本概念、项目设置、模型设计、视图创建、模板渲染以及URL配置等关键知识点。 1. **...

    经典C#入门例子.rar_prepdf_入门案例

    标题中的“经典C#入门例子.rar_prepdf_入门案例”暗示了这个压缩包包含了一些用于初学者学习C#编程的基础示例。C#是一种由微软开发的面向对象的编程语言,广泛应用于Windows平台、Web应用以及游戏开发等领域。在本...

    rabbitMQ代码案例 简单入门

    这个“rabbitMQ代码案例 简单入门”的资料包为初学者提供了了解和学习RabbitMQ的基础知识。 首先,让我们了解一下RabbitMQ的基本概念: 1. **消息队列**:RabbitMQ的核心是消息队列,它负责存储和转发消息。生产者...

    Spring入门案例

    本入门案例将带你深入了解Spring的核心概念和基本使用方法。 首先,我们来解析一下标题"Spring入门案例"。这表明我们将学习的是Spring的基本概念和基础应用,包括如何搭建Spring项目环境,配置Spring容器,以及如何...

    Hibernate入门案例源码

    【Hibernate入门案例源码】是针对初学者设计的一份教程,旨在帮助理解并掌握Java持久化框架Hibernate的基础应用。Hibernate是一个强大的ORM(对象关系映射)框架,它简化了数据库与Java对象之间的交互,使开发者可以...

    hibernate简单的入门案例

    **hibernate简单的入门案例** Hibernate 是一个强大的Java对象关系映射(ORM)框架,它为开发者提供了在Java应用程序中操作数据库的强大工具。这个入门案例将带你了解如何使用Hibernate进行基本的操作,包括配置、...

    c#入门经典案例

    《C#入门经典案例》是一份专为初学者设计的学习资源,旨在帮助毫无编程基础的人快速掌握C#语言。C#是由微软公司推出的面向对象的编程语言,广泛应用于Windows平台的软件开发,尤其是游戏开发、桌面应用以及Web应用等...

Global site tag (gtag.js) - Google Analytics