`
freewxy
  • 浏览: 342717 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ibatis入门及环境搭建

阅读更多

使用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);
		}
	}

}

 

 

 

1
2
分享到:
评论

相关推荐

    ibatis ibatis入门教程

    4. **环境搭建**:创建SqlMapConfig.xml文件,配置数据源、事务管理器、SqlSessionFactory等核心元素。 5. **SqlSession对象**:它是与数据库进行交互的主要接口,用于执行SQL和管理事务。 6. **Mapper接口与XML...

    ibatis入门实例(全代码)

    在这个"ibatis入门实例(全代码)"中,我们将探讨如何通过 Ibatis 实现对数据库的操作,包括数据库的初始化、SQL 映射文件的编写以及 Java 代码的集成。 首先,让我们了解数据库的准备工作。在实例中,提供了数据库...

    ibatis入门.doc

    1. **环境搭建** - 首先,你需要准备Ibatis的核心库,即`ibatis-2.3.4.726.jar`。这个jar包包含了Ibatis的主要功能。 - 同时,为了连接MySQL数据库,还需要`mysql-connector-java-3.1.11-bin.jar`,这是MySQL的...

    ibatis入门开发指南pdf 程序代码示例 jar包

    2. **环境搭建**:如何配置iBATIS的开发环境,包括引入必要的jar包,设置项目依赖,以及配置数据库连接信息等。 3. **SqlMapConfig.xml**:解析iBATIS的核心配置文件,包括数据源、事务管理器、SqlMap的定义等,...

    iBatis简明教程及快速入门

    ### iBatis简明教程及快速入门 #### 一、iBatis简介 iBatis是一个开源框架,用于实现Java应用程序中的对象关系映射(Object Relational Mapping, ORM)。相较于其他ORM框架如Hibernate,iBatis更加轻量级且易于...

    Ibatis 简单入门实例

    通过以上步骤,我们可以快速搭建起一个基本的Ibatis环境,完成简单的数据库操作。Ibatis的优势在于其灵活性,它允许开发者自由地编写SQL,同时提供了与ORM框架类似的便利性。这个简单的入门实例只是Ibatis功能的冰山...

    Ibatis入门教程

    ### Ibatis入门教程知识点详解 #### 一、Ibatis简介 Ibatis是一个基于Java的开源持久层框架,它提供了一种灵活的方式将对象映射到关系型数据库中,支持SQL查询和更新操作,并且能够自动处理结果集。与Hibernate等...

    01_ibatis教程_准备ibatis环境.zip

    描述中的"01_ibatis教程_准备ibatis环境.zip"与标题一致,暗示这个压缩包内容是关于Ibatis的入门教学资源,重点在于环境的搭建。这可能包括了安装Java运行环境、下载Ibatis库、配置项目结构、设置数据库连接等步骤。...

    iBatis简单入门教程.

    【搭建iBatis开发环境】 要开始使用iBatis,首先需要设置开发环境。这包括以下几个步骤: 1. **导入依赖库**:添加必要的jar包到项目中,如iBatis的核心库`ibatis-2.3.0.677.jar`以及数据库驱动,例如MySQL的`mysql...

    ibatis-sqlMap-入门教程(代码)

    总之,"ibatis-sqlMap-入门教程(代码)"是一个全面的指南,旨在帮助初学者理解和应用MyBatis框架,从零开始搭建项目,编写SQL映射文件,配置数据源,以及执行数据库操作。通过这个教程,学习者可以掌握MyBatis的...

    ibatis MyEclipse 入门工程代码 图文教程

    总结,通过这个“ibatis MyEclipse 入门工程代码 图文教程”,我们可以学习到如何在MyEclipse环境中搭建Ibatis项目,编写SQL映射文件,以及如何在Java代码中调用这些映射进行数据库操作。了解这些基础步骤,对于后续...

    IBatis入门教程

    搭建iBatis开发环境是使用这个框架的第一步,通常涉及以下步骤: 1. **导入依赖**:首先需要将必要的jar包引入到项目中,包括iBatis的核心库(如ibatis-2.3.0.677.jar)以及相应的数据库驱动,例如对于MySQL,需要...

    ibatis经典入门

    2. **环境搭建**:安装和配置iBATIS所需的相关库,例如添加依赖到项目中,配置数据库连接等。 3. **SQL映射文件**:学习XML格式的SQL映射文件,包括定义SQL语句、参数映射、结果映射和动态SQL等。 4. **DAO设计**...

    ibatis3.1官方中文帮助文档

    2. **快速入门**:这部分会引导新手如何快速搭建一个iBatis 3.1的环境,包括添加依赖、配置数据库连接、创建基本的Mapper接口和XML配置文件等步骤。 3. **配置**:详细讲解了iBatis的配置文件(`ibatis-config.xml`...

    ibatis开发指南

    在开始使用ibatis之前,需要进行一些准备工作,包括环境搭建、依赖引入等: - **环境搭建**:确保开发环境中安装了必要的Java开发工具包(JDK)和集成开发环境(IDE)。 - **依赖引入**:通过Maven或Gradle等方式...

    ibatis 开发指南,开发手册 txt 版

    - **环境搭建**: - 将iBatis的相关jar包添加到项目中。 - 配置日志系统,如使用Apache的log4j。 - 示例配置文件`log4j.properties`: ``` log4j.rootLogger=DEBUG,stdout log4j.appender.stdout=org.apache.log...

    ibatis开发指南资料

    - **准备工作**:在使用ibatis之前,需要完成环境搭建、导入相关jar包以及设置必要的配置文件。 - **构建ibatis基础代码**: - 配置环境:确保开发环境中包含了ibatis库及相关依赖。 - 创建Java类:用于封装数据库...

    ibatis学习锦集

    1. **环境搭建**:引入iBatis的jar包或者Maven/Gradle依赖,配置数据库连接。 2. **配置SQLMap**:创建XML配置文件,编写SQL语句和映射规则。 3. **编写Mapper接口**:定义Java接口,方法名与XML中的SQL ID对应。 ...

    ibatis_开发指南

    3. 准备工作和构建iBATIS基础代码 - 介绍了如何进行开发前的准备工作以及如何搭建iBATIS的基本环境。 4. iBATIS配置 - 强调了配置对于iBATIS应用来说是一个重要的部分,涉及XML文件的编写和设置,用以定义对象和...

    iBatisrumen.rar_ibatis

    首先,`最简单的iBatis入门例子.chm`很可能是一个帮助文档,它会引导初学者逐步了解如何搭建iBatis环境,创建第一个简单的数据访问示例。在iBatis中,我们通常需要配置SqlMapConfig.xml文件,这是整个iBatis系统的主...

Global site tag (gtag.js) - Google Analytics