`

ibatis3.0 增删改查 模糊查询 和 多个参数查询 demo

阅读更多
忙了三天,把ibatis3.0 进行了学习,下面是使用ibatis3.0 对数据库进行增删改查的操作,同时有模糊查询、按序列添加、多参数查询的操作,希望对大家有所帮助!
我马上就要用这个技术做项目了,还要加深掌握,愿与有志者一起加油!
SqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE configuration 
PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN" 
"http://ibatis.apache.org/dtd/ibatis-3-config.dtd"> 


<configuration> 
  <properties resource="com/yhte/config/SqlMap.properties"/>
  <typeAliases>  
        <typeAlias type="com.yhte.bean.Student" alias="student"/>  
  </typeAliases>  
  <environments default="development"> 
	<environment id="development"> 
	<transactionManager type="JDBC"/> 
	<dataSource type="POOLED"> 
	<property name="driver" value="${driver}"/> 
	<property name="url" value="${url}"/> 
	<property name="username" value="${username}"/> 
	<property name="password" value="${password}"/> 
	</dataSource> 
	</environment> 
 </environments> 
	  
  
  
  
  <mappers>
  	<mapper resource="com/yhte/bean/Student.xml"/>
  </mappers>



</configuration> 



Student.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper 
PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" 
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd"> 

<mapper namespace="bin">
	 
	 <select id="selectAllStudent" resultType="student">
	     select * 
	     from   student
	 </select>    
	 
	 <select id="selectStudentById" parameterType="int" resultType="student">
	     select * 
	     from   student
	     where  sid=#{sid}
	 </select>
	 
	 
	 <select id="selectStudentBy23" parameterType="java.util.Map" resultType="student">
	     select *
	     from   student
	     where  sname=#{sname} and major=#{major}
	 </select>
	 
	 <!--注意 #sid#,#sname#,#major#,#birth#,#score#) 对应Student类中的get方法如getSid -->
	 <insert id="insertStudent" parameterType="student">
	     insert into Student(sid,  sname,  major,  birth,  score)
	     values             (#{sid},#{sname},#{major},#{birth},#{score})
	 </insert>
	 
	 <delete id="deleteStudent" parameterType="int">
	     delete
	     from    student
	     where   sid=#{sid}
	 </delete>
	 
	 <update id="updateStudent" parameterType="student">
	     update  student
	     set
			     sid=#{sid},
			     sname=#{sname},
			     major=#{major},
			     birth=#{birth},
			     score=#{score}
	     where   sid=#{sid}
	 </update>
	 
	 <select id="selectStudentByName" parameterType="String" resultType="student" >
	     select sid,sname,major,birth,score 
	     from student
	     where sname like #{sname}
	 </select>
	 
	 <insert id="insertStudentBySequence" parameterType="student" >
	      <selectKey resultType="int" keyProperty="sid" order="BEFORE" >
	     		select SEQ_student.nextVal 
	     		from dual
	     </selectKey>
	     
	     insert into Student(sid, sname, birth, major, score)
                     values(#{sid}, #{sname}, #{birth}, #{major}, #{score})	     
	 </insert>
 
</mapper>


IbatisSessionFactory.java
package com.yhte.util;

import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class IbatisSessionFactory {
	 public SqlSessionFactory buildSqlSessionFactory() {   
	        try {   
	            String resource = "com/yhte/config/SqlMapConfig.xml";   
	            Reader reader = Resources.getResourceAsReader(resource);   
	            return new SqlSessionFactoryBuilder().build(reader);   
	        } catch (Exception e) {   
	            System.out.println("failed to build SqlSessionFactory");   
	            e.printStackTrace();   
	            return null;   
	        }   
	    }   
	  
	    public SqlSession getSession(){   
	        return buildSqlSessionFactory().openSession();   
	    }   
}
	       
	 





IStudentDAOImpl.java
package com.yhte.dao;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.session.SqlSession;

import com.yhte.bean.Student;
import com.yhte.util.IbatisSessionFactory;




public class IStudentDAOImpl extends IbatisSessionFactory  implements IStudentDAO {
	

	 public void addStudent(Student student) {
		 SqlSession s = null;
		try {
			s = this.getSession();
			s.insert("insertStudent", student);
			s.commit();
			System.out.println("添加成功"); 	
		} catch (Exception e) {
			System.out.println("添加失败"); 	
			e.printStackTrace();
		}finally{
			if(s != null)s.close();
		}

	}
	 
	
	public void addStudentBySequence(Student student) {
		SqlSession s = null;
		try {
			//1  获取sid
			//2  插入sid
			s = this.getSession();
			s.insert("insertStudentBySequence", student);
			s.commit();
			System.out.println("按序列主键添加成功");
			//System.out.println("sid="+student.getSid());
		} catch (Exception e) {
			System.out.println("按序列主键添加失败");
			e.printStackTrace();
		}

	}

	public void deleteStudentById(int id) {
		 SqlSession s = null;
		try {
			s = this.getSession();
			s.delete("deleteStudent", id);
			s.commit();
			System.out.println("删除成功"); 	
		} catch (Exception e) {
			System.out.println("删除失败");
			e.printStackTrace();
		}finally{
			if(s!=null) s.close();
		}

	}

	public List<Student> queryAllStudent()  {
		
		
			 return this.getSession().selectList("bin.selectAllStudent");   
		
	}

	public Student queryStudentById(int id) {
		SqlSession s = null;
		Student student = null;
		try {
			s = this.getSession();
			student = (Student)s.selectOne("bin.selectStudentById", id);
			s.commit();
			System.out.println("按sid查询成功");
		} catch (Exception e) {
			System.out.println("按sid查询失败");
			e.printStackTrace();
		}
		return student;
		
	}

	public List<Student> queryStudentByName(String name) {
		SqlSession s = null;
		List<Student> studentList = null;
		try {
			s = this.getSession();
			studentList = s.selectList("selectStudentByName", name);
			System.out.println("模糊查询成功" );
		} catch (Exception e) {
			System.out.println("模糊查询失败");
			e.printStackTrace();
		}finally{
			s.close();
		}
		
		return studentList;
	}

	public void updateStudentById(Student student) {
		SqlSession s = null;
		try {
			s = this.getSession();
			s.update("updateStudent", student);
			s.commit();
			System.out.println("按sid更新成功");
			//this.getSession().update("updateStudent", student);
			//System.out.println(this.getSession().update("updateStudent", student));
		} catch (Exception e) {
			System.out.println("按sid更新失败");
			e.printStackTrace();
		}finally{
			if(s != null) s.close();
		}

	}


	public List<Student> queryStudentBy23(String sname, String major) {
		Map map = new HashMap();
		map.put("sname", sname);
		map.put("major", major);
		List<Student> studentList = null;
		SqlSession s =null;
		try {
		
			s = this.getSession();
			studentList = s.selectList("selectStudentBy23", map);
			System.out.println("按23查询成功");
		} catch (Exception e) {
			System.out.println("按23查询失败");
			e.printStackTrace();
		}finally{
			if(s != null) s.close();
		}
		return studentList;
	}


	

	

}


curdemo.java
package com.yhte.test;

import java.sql.Date;

import com.yhte.bean.Student;
import com.yhte.dao.IStudentDAO;
import com.yhte.dao.IStudentDAOImpl;

public class curdemo {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		IStudentDAO dao =  new IStudentDAOImpl();
		
	  //  dao.deleteStudentById(104);
		
		//view all
		/*for(Student student:dao.queryAllStudent())
		{
			System.out.println(student);
		}*/
		 
		//System.out.println(dao.queryStudentById(1));
		
		//add 
		/*Student student = new Student();
		
		student.setSid(104);
		student.setSname("xuyissss");
		student.setMajor("gameffffff");
		student.setBirth(Date.valueOf("2008-02-03"));
		student.setScore(9);
		
		dao.addStudent(student);*/
		
		//update
      /*  Student student = new Student();
		student.setSid(103);
		student.setSname("xiaohuqq");
		student.setMajor("maoyi");
		student.setBirth(Date.valueOf("2009-02-03"));
		student.setScore(90);
		
		dao.updateStudentById(student);*/
		
		//模糊查询
		/*for(Student student:dao.queryStudentByName("__ao%"))
		{
			System.out.println(student);
		}*/
		
		
		//addBySequence 
		/*Student student = new Student();
		
		
		student.setSname("chaolin");
		student.setMajor("zejing");
		student.setBirth(Date.valueOf("2008-02-03"));
		student.setScore(9);
		
		dao.addStudentBySequence(student);*/
		
		//按条件23查询
		//模糊查询
		for(Student student:dao.queryStudentBy23("chn","ze"))
		{
			System.out.println(student);
		}

	}

}
分享到:
评论

相关推荐

    Ibatis3.0 增删改查(三)

    在本教程中,我们将深入探讨Ibatis 3.0框架中的增、删、改、查操作,这是关于Ibatis 3.0系列教程的第三部分。...通过学习这一部分,你应能熟练掌握在Ibatis中进行数据的增删改查操作,并理解其背后的原理和用法。

    Ibatis3.0 增删改查(二)

    在这个“增删改查(二)”的主题中,我们将继续上一部分的内容,详细介绍如何执行数据库的基本操作。 首先,我们需要理解Ibatis的核心概念,包括XML配置文件、映射器接口和SqlSession。XML配置文件是Ibatis的起点,...

    ibatis实现增删改查功能demo

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

    ibatis的增删改查

    在这个"ibatis的增删改查"主题中,我们将深入探讨如何在不依赖MVC框架的情况下,利用Ibatis进行数据操作。 1. **Ibatis安装与配置** 首先,你需要将Ibatis的jar包添加到项目的类路径中,或者通过Maven或Gradle等...

    Ibatis和Spring整合例子,实现增删改查功能

    Ibatis和Spring整合例子,实现增删改查功能.

    struts1+spring+ibatis的增删改查+登陆注册

    总之,这个项目提供了一个学习和实践Java Web开发的良好平台,通过Struts1、Spring和iBatis的组合,展示了如何构建一个完整的用户管理应用,包括登录、注册以及对数据的增删改查操作。这样的实践经验有助于开发者...

    ibatis3.0+jsp(demo)

    在"ibatis3.0+jsp(demo)"项目中,JSP页面可能用于显示从数据库查询到的数据,或者接收用户输入,与后台JavaBean进行交互,实现数据的增删改查功能。 【数据库脚本】 项目中包含了创建数据库和表的脚本,这些脚本...

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

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

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

    这个例子是利用这三个框架实现了一个基础的增删改查(CRUD)功能,涵盖了数据库操作、业务逻辑处理以及用户界面交互。 **Struts** 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,负责处理用户的...

    ibatis的增删改查功能

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

    Ibatis增删改查

    在本文中,我们将深入探讨如何使用Ibatis实现基本的增删改查操作,这对于初学者来说是非常重要的基础知识。 ### 1. Ibatis 框架简介 Ibatis 最初由Clinton Begin 创建,后来成为Apache软件基金会的一个项目。它的...

    最新的ibatis 3.0(包含源码)

    在这个"最新的ibatis 3.0(包含源码)"压缩包中,我们得到了Ibatis 3.0版本的核心库文件`ibatis-core-3.0`,这个版本是官方发布的,但需要注意的是,它与Spring 3.0.1存在兼容性问题。 Ibatis 3.0的主要改进和特性...

    jsf+ibatis增删改查

    在"jsf+ibatis增删改查"项目中,JSF被用来创建用户界面,而iBatis则作为数据访问层,负责与数据库的交互。以下是实现这一功能的关键步骤: 1. **配置iBatis**:首先,需要在项目中引入iBatis的库文件,并配置`...

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

    本文将深入解析一个基于IBatis实现的最简单的增删改查(CRUD)操作实例,帮助初学者快速理解和掌握其核心概念。 首先,我们要理解什么是IBatis。IBatis(现更名为MyBatis)是由Apache Software Foundation维护的一...

    ibatis3.0示例

    iBatis通过`&lt;parameterMap&gt;`和`&lt;resultMap&gt;`标签实现参数和结果的映射。它可以自动处理复杂类型,如嵌套对象和集合,简化了数据绑定。 5. **Executor执行器** iBatis 3.0引入了Executor执行器,包括...

    Ibatis简单增删改查可用

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

    ibatis框架实现的增删改查

    本篇文章将深入探讨如何使用Ibatis框架实现对`student`表的增删改查操作,包括模糊查询以及利用序列自动生成主键。 首先,我们来理解Ibatis的基本概念。Ibatis是由Apache基金会维护的一个开源项目,它是一个SQL映射...

    springMVC+spring+Ibatis增删改查的demo

    总结来说,"springMVC+spring+Ibatis增删改查的demo" 提供了一个完整的后端解决方案,通过集成这三大框架,实现了与数据库交互的基本功能。对于初学者而言,这是一个很好的学习资源,可以深入了解如何在实际项目中...

    ibatis3.0中文版文档

    ibatis3.0的中文版文档,pdf格式,很适合ibatis学习使用

Global site tag (gtag.js) - Google Analytics