忙了三天,把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);
}
}
}
分享到:
相关推荐
在本教程中,我们将深入探讨Ibatis 3.0框架中的增、删、改、查操作,这是关于Ibatis 3.0系列教程的第三部分。...通过学习这一部分,你应能熟练掌握在Ibatis中进行数据的增删改查操作,并理解其背后的原理和用法。
在这个“增删改查(二)”的主题中,我们将继续上一部分的内容,详细介绍如何执行数据库的基本操作。 首先,我们需要理解Ibatis的核心概念,包括XML配置文件、映射器接口和SqlSession。XML配置文件是Ibatis的起点,...
在本示例中,"ibatis实现增删改查功能demo"是一个具体的项目,旨在演示如何利用Ibatis进行数据库操作,包括插入(Insert)、删除(Delete)、更新(Update)和查询(Select)数据。以下将详细解析这个项目的重点内容...
在这个"ibatis的增删改查"主题中,我们将深入探讨如何在不依赖MVC框架的情况下,利用Ibatis进行数据操作。 1. **Ibatis安装与配置** 首先,你需要将Ibatis的jar包添加到项目的类路径中,或者通过Maven或Gradle等...
Ibatis和Spring整合例子,实现增删改查功能.
总之,这个项目提供了一个学习和实践Java Web开发的良好平台,通过Struts1、Spring和iBatis的组合,展示了如何构建一个完整的用户管理应用,包括登录、注册以及对数据的增删改查操作。这样的实践经验有助于开发者...
在"ibatis3.0+jsp(demo)"项目中,JSP页面可能用于显示从数据库查询到的数据,或者接收用户输入,与后台JavaBean进行交互,实现数据的增删改查功能。 【数据库脚本】 项目中包含了创建数据库和表的脚本,这些脚本...
这个"Struts2+Spring2.5+iBatis完整增删改查Demo"提供了一个完整的集成示例,包括所有必要的jar包,使得开发者可以快速在Mycelipse环境中搭建并运行项目。 **Struts2框架**: Struts2是基于MVC设计模式的Web应用...
这个例子是利用这三个框架实现了一个基础的增删改查(CRUD)功能,涵盖了数据库操作、业务逻辑处理以及用户界面交互。 **Struts** 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,负责处理用户的...
总结,Ibatis以其简单易用、灵活高效的特性在Java开发中占据重要地位,其增删改查功能的实现让开发者能更加专注于业务逻辑,而不是繁琐的JDBC操作。对于初学者来说,深入理解Ibatis的CRUD操作及其相关配置,对提升...
在本文中,我们将深入探讨如何使用Ibatis实现基本的增删改查操作,这对于初学者来说是非常重要的基础知识。 ### 1. Ibatis 框架简介 Ibatis 最初由Clinton Begin 创建,后来成为Apache软件基金会的一个项目。它的...
在这个"最新的ibatis 3.0(包含源码)"压缩包中,我们得到了Ibatis 3.0版本的核心库文件`ibatis-core-3.0`,这个版本是官方发布的,但需要注意的是,它与Spring 3.0.1存在兼容性问题。 Ibatis 3.0的主要改进和特性...
在"jsf+ibatis增删改查"项目中,JSF被用来创建用户界面,而iBatis则作为数据访问层,负责与数据库的交互。以下是实现这一功能的关键步骤: 1. **配置iBatis**:首先,需要在项目中引入iBatis的库文件,并配置`...
本文将深入解析一个基于IBatis实现的最简单的增删改查(CRUD)操作实例,帮助初学者快速理解和掌握其核心概念。 首先,我们要理解什么是IBatis。IBatis(现更名为MyBatis)是由Apache Software Foundation维护的一...
iBatis通过`<parameterMap>`和`<resultMap>`标签实现参数和结果的映射。它可以自动处理复杂类型,如嵌套对象和集合,简化了数据绑定。 5. **Executor执行器** iBatis 3.0引入了Executor执行器,包括...
在本项目"Ibatis简单增删改查可用"中,我们看到的是一个基于VS2010开发的Ibatis应用实例,它包含了数据库和多样的数据库连接配置,用户可以根据自己的需求选择合适的配置文件进行使用。这个项目旨在提供一个快速上手...
本篇文章将深入探讨如何使用Ibatis框架实现对`student`表的增删改查操作,包括模糊查询以及利用序列自动生成主键。 首先,我们来理解Ibatis的基本概念。Ibatis是由Apache基金会维护的一个开源项目,它是一个SQL映射...
总结来说,"springMVC+spring+Ibatis增删改查的demo" 提供了一个完整的后端解决方案,通过集成这三大框架,实现了与数据库交互的基本功能。对于初学者而言,这是一个很好的学习资源,可以深入了解如何在实际项目中...
ibatis3.0的中文版文档,pdf格式,很适合ibatis学习使用