`

基于iBatis的增删该查

阅读更多

iBatis是apache的一个开源项目,一个ORM的解决方案,特点:小巧,容易上手。  要不是需要太多复杂的功能,iBatis是能满足你的需求又足够灵活的最简单的解决方案。

 

iBatis是一种“半自动化”的ORM实现,   使用iBatis的准备工作:

  1. 下载ibatis的jar包

  2. 创建相对应的数据库与表

  3. 建立好对应的项目,使用ibatis进行增删该查

下面就是一个基于ibatis的增删该查的小项目:model层bean
package com.lbx.model;

import java.util.Date;

public class Student {
	
	private int id;
	private String name;
	private Date birth;
	private float score;
	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 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;
	}
	
	
}
 与之对应的xml配置文件(Student.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="Student">

	<typeAlias alias="Student" type="com.lbx.model.Student" />

	<select id="selectAllStudents" resultClass="Student">
		select * from Student
	</select>
	<select id="selectStudentById" parameterClass="int" resultClass="Student">
		select * from Student where id=#id#
	</select>
	<select id="selectStudentByName" parameterClass="String" resultClass="Student">
		select * from Student where name=#name#
	</select>
	<insert id="insertStudent" parameterClass="Student">
		insert into Student(name,birth,score) values(#name#,#birth#,#score#)
	</insert>
	<delete id="deleteStudentById" parameterClass="int">
		delete from Student where id = #id#
	</delete>
	<update id="updateStudentById" parameterClass="Student">
		update Student set name=#name#,birth=#birth#,score=#score# where id=#id#
	</update>
	
</sqlMap>

  
 dao层
package com.lbx.dao;

import java.util.List;

import com.lbx.model.Student;

public interface StudentDao {
	public void addStudent(Student student);
	public void deleteStudentById(int id);
	public List<Student> findAllStudent();
	public void updateStudent(Student student);
	public List<Student> findStudentByName(String name);
	public Student findStudentById(int id);
	
}
 dao实现层
package com.lbx.dao.impl;

import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;

import com.ibatis.sqlmap.client.SqlMapClient;
import com.lbx.dao.StudentDao;
import com.lbx.model.Student;

public class StudentDaoImpl implements StudentDao {
	
	private static SqlMapClient sqlMapClient = null;
	
	static {
		try {
			Reader reader = com.ibatis.common.resources.Resources
			.getResourceAsReader("SqlMapConfig.xml");
			sqlMapClient = com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(reader);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public void addStudent(Student student) {
		try {
			sqlMapClient.insert("insertStudent", student);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public void deleteStudentById(int id) {
		try {
			//返回删除的行数
			int num = sqlMapClient.delete("deleteStudentById", id);
			System.out.println(num);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public List<Student> findAllStudent() {
		List<Student> students = null;
		try {
			students = sqlMapClient.queryForList("selectAllStudents");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return students;
	}

	public Student findStudentById(int id) {
		Student student = null;
		try {
			 student = (Student)sqlMapClient.queryForObject("selectStudentById" , id);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return student;
	}

	public List<Student> findStudentByName(String name) {
		List<Student> lists = null;
		try {
			lists = sqlMapClient.queryForList("selectStudentByName", name);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return lists;
	}

	public void updateStudent(Student student) {
		try {
			//影响到的行数
			int num = sqlMapClient.update("updateStudentById", student);
			System.out.println(num);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}
 SqlMapConfig.xml文件配置,相当于Hibernate中hibernate.config.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>
	<!-- 不使用properties文件的配置 -->
	
	<transactionManager type="JDBC">
		<dataSource type="SIMPLE">
			<property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>
			<property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:3306/testhib"/>
			<property name="JDBC.Username" value="root"/>
			<property name="JDBC.Password" value="root"/>
		</dataSource>
	</transactionManager>    
  
  <!-- List more here...
  <sqlMap resource="com/mydomain/data/Order.xml"/>
  <sqlMap resource="com/mydomain/data/Documents.xml"/>
  -->
	<!-- 引入配置文件
	<properties resource="jdbc.properties"/>  -->
	<!-- 使用JDBC的事务管理
	<transactionManager type="JDBC">   -->
		<!-- 使用简单的数据源 
		<dataSource type="SIMPLE">
			<property name="${jdbc.driverClassName}" value="JDBC.Driver"/>
			<property name="${jdbc.url}" value="JDBC.ConnectionURL"/>
			<property name="${jdbc.username}" value="JDBC.Username"/>
			<property name="${jdbc.password}" value="JDBC.Password"/>
		</dataSource>
	</transactionManager>  -->
	<sqlMap resource="com/lbx/model/Student.xml"/>
</sqlMapConfig>
 注意:要提供相应的jar,ibatis一个,连接数据库一个

分享到:
评论

相关推荐

    一个最简单的IBatis增删改查操作例子

    这个简单的IBatis增删改查操作例子,通过将SQL语句与Java代码分离,使得代码更加清晰,易于维护。在实际项目中,还可以结合Spring框架,实现更高级的事务管理、自动注入等功能,提升开发效率。通过深入学习和实践,...

    ibatis实现增删改查功能demo

    在本示例中,"ibatis实现增删改查功能demo"是一个具体的项目,旨在演示如何利用Ibatis进行数据库操作,包括插入(Insert)、删除(Delete)、更新(Update)和查询(Select)数据。以下将详细解析这个项目的重点内容...

    struts2+spring+ibatis增删改查

    5. **CRUD操作**:在案例中,每个基本的数据库操作(增、删、改、查)都会对应一个Action,这些Action通常会调用Service层的方法,Service层再调用Mapper接口的方法来执行SQL。例如,添加数据的Action会调用add方法...

    struts2+spring+ibatis增删改查(完整项目,导入即可运行)

    这个压缩包提供的是一个完整的项目示例,涵盖了基于这三个框架的增删改查操作,非常适合初学者理解和实践。 首先,Struts2是一个强大的MVC框架,它提供了请求分发、视图展现和业务逻辑控制等功能。在Struts2中,...

    struts+spring+ibatis做的一个增删改查例子

    Struts的Action类会接收前端请求,调用Spring管理的Service层接口处理业务逻辑,Service层再通过iBATIS的SqlMapClient执行SQL操作来完成对`VehicleExpense`表的增删改查。 在实际开发中,我们通常会有以下步骤: 1...

    Struts2+Spring2.5+Ibatis完整增删改查Demo(含全部jar包)

    这个"Struts2+Spring2.5+iBatis完整增删改查Demo"提供了一个完整的集成示例,包括所有必要的jar包,使得开发者可以快速在Mycelipse环境中搭建并运行项目。 **Struts2框架**: Struts2是基于MVC设计模式的Web应用...

    ibatis的增删改查功能

    总结,Ibatis以其简单易用、灵活高效的特性在Java开发中占据重要地位,其增删改查功能的实现让开发者能更加专注于业务逻辑,而不是繁琐的JDBC操作。对于初学者来说,深入理解Ibatis的CRUD操作及其相关配置,对提升...

    struts1.2+ibatis+DWR2.0+MySql5.0增删改查的小例子

    总结起来,这个"struts1.2+ibatis+DWR2.0+MySql5.0增删改查的小例子"涵盖了Web开发中的一些核心技术和实践,对于初学者来说,这是一个很好的学习资源,能够帮助他们快速掌握Java Web开发的基础知识,并逐步深入到更...

    jqgrid+struts2+ibatis增删改查

    4. 数据库操作:Oracle数据库执行iBatis提交的SQL,完成数据的增删改查。 5. 返回结果:iBatis将查询结果转换为Java对象,Action返回给前端,jqGrid更新表格展示。 这种技术组合的优势在于,jqGrid提供了用户友好的...

    ibatis 增删改查(DB2版本)

    在DB2版本中,Ibatis同样能够实现数据库的增删改查操作,大大简化了开发人员与数据库交互的工作。下面将详细阐述如何在DB2环境下使用Ibatis进行数据操作。 首先,理解Ibatis的核心概念: 1. **配置文件**:Ibatis的...

    struts2+spring+ibatis 增删改查例子

    在这个例子中,Ibatis 负责与MySQL数据库进行交互,执行增删改查的操作。 Apache DBCP 连接池是Apache组织提供的数据库连接池组件,它可以有效地管理数据库连接,提高应用程序性能并减少资源消耗。在这个项目中,...

    ssi_struts2_spring_ibatis 增删改查分页

    "增删改查分页"是Web应用中最基本的数据操作功能,包括添加(Insert)、删除(Delete)、更新(Update)和查询(Select),以及分页展示数据。分页是提高用户体验和系统性能的重要手段,特别是在处理大量数据时。 ...

    ssi——struts2+spring+ibatis(登入+增删改查)

    在增删改查功能中,iBatis通过Mapper接口与XML配置文件配合,实现了数据的CRUD操作。开发者只需要定义接口方法,iBatis会自动生成SQL并执行,返回结果集。 这个项目的文件结构通常会包含以下几个部分: 1. **src/...

    Ibatis简单增删改查可用

    在本项目"Ibatis简单增删改查可用"中,我们看到的是一个基于VS2010开发的Ibatis应用实例,它包含了数据库和多样的数据库连接配置,用户可以根据自己的需求选择合适的配置文件进行使用。这个项目旨在提供一个快速上手...

    ibatis + oracle 增删改查例子

    本示例“ibatis + oracle 增删改查例子”将向我们展示如何利用这两个工具进行基本的数据操作。 首先,`iBatis`的核心是SQL Map配置文件,它包含了SQL语句和映射规则。在`MyEclipse`中导入这个项目后,你需要找到并...

    Maven+spring+ struts2+ Ibatis+mysql整合增删改查

    Ibatis与MySQL的结合,使得开发者能够方便地执行SQL查询,实现数据的增删改查操作。 整合这五个技术的关键在于配置。在Maven的pom.xml文件中,需要定义所有依赖项,确保所有组件的版本兼容。在Spring的配置文件中,...

    struts2+spring+ibatis 增删改查例子(2)

    在这个例子中,它们被用来实现一个基本的数据管理功能,包括增、删、改、查操作,并且基于MySQL数据库进行数据存储。Apache DBCP是一个连接池库,用于优化数据库连接资源的管理和复用。 首先,Struts2作为表现层...

    一个S2S+ibatis一个增删改查的例子(由原先SSH2改编)

    标题中的“S2S+ibatis一个增删改查的例子”指的是使用Struts2和iBatis框架实现的典型数据库操作应用。Struts2是一个基于MVC设计模式的Java Web框架,而iBatis则是一个SQL映射框架,用于简化数据库访问。这个例子将...

    基于ssi struts_spring_ibatis 的一个增删 查 更新的小例子

    - **编写Action**:Action类负责接收用户请求,调用业务逻辑方法,通常这些方法会通过Spring注入的DAO来完成数据的增删查改。 - **编写DAO**:DAO层负责与数据库的交互,使用iBATIS的SqlSession对象执行SQL语句,...

    struts2+spring+ibatis增删查改翻页代码示例

    在这个“struts2+spring+ibatis增删查改翻页代码示例”中,我们将深入探讨这三个框架如何协同实现数据管理的基本操作,并集成MySQL数据库和Tomcat web服务器。 首先,Struts2作为MVC(模型-视图-控制器)框架,主要...

Global site tag (gtag.js) - Google Analytics