ibatis入门

习惯hibernate太化自动了,学习下ibatis的半自动化, 各有各的优势,各有各的长处。

数据库表(oracle):

create table student(

sid int ,

sname varchar2(50),

major varchar2(50),

birth Date

)

create sequence studentPKSequence start with 1 increment by 1

select studentPKSequence.nextval from dual

insert into student values(1, ‘deng1‘, ‘major01‘, TO_DATE(‘2014-12-22‘,‘yyyy-mm-dd‘));

配置文件(SqlMapConfig.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>

<transactionManager type="JDBC" commitRequired="false">

<dataSource type="SIMPLE">

<property name="JDBC.Driver" value="oracle.jdbc.driver.OracleDriver"/>

<property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/>

<property name="JDBC.Username" value="deng"/>

<property name="JDBC.Password" value="xxxx"/>

</dataSource>

</transactionManager>

<sqlMap resource="com/dyh/ibatis/test01/Student.xml"/>

</sqlMapConfig>

配置文件(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.dyh.ibatis.test01.Student"/>

<select id="selectAllSudent" resultClass="Student">

select * from student

</select>

<select id="selectSudentById" parameterClass="int" resultClass="Student">

select * from student where sid=#sid#

</select>

<insert id="insertStudent" parameterClass="Student">

insert into Student(

sid,

sname,

major,

birth

)

values(

#sid#,#sname#,#major#,#birth#

)

</insert>

<delete id="deleteStudentById" parameterClass="int">

delete from Student where sid =#sid#

</delete>

<update id="updateStudentById" parameterClass="Student">

update Student set major=#major# where sid = #sid#

</update>

<select id="selectStudentByName" parameterClass="String" resultClass="Student">

select * from Student where sname like ‘%$sname$%‘

</select>

<insert id="insertStudentBySequence" parameterClass="Student">

<selectKey resultClass="int" keyProperty="sid">

select studentPKSequence.nextVal from dual

</selectKey>

insert into Student(

sid,

sname,

major,

birth

)

values(

#sid#,#sname#,#major#,#birth#

)

</insert>

</sqlMap>

Student的实体类

package com.dyh.ibatis.test01;

import java.util.Date;

public class Student {

private int sid;

private String sname;

private String major;

private Date birth;

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;

}

@Override

public String toString() {

return "Student [sid=" + sid + ", sname=" + sname + ", major=" + major

+ ", birth=" + birth + "]";

}

}

DAO接口(IStudentDAO):

package com.dyh.ibatis.test01;

import java.util.List;

public interface IStudentDAO {

public void addStudent(Student student);

public void addStudentBySequence(Student student);

public void delectStudentById(int id);

public void updateStudentById(Student student);

public List<Student> querAllStudent();

public List<Student> querStudentByName(String name);

public Student queryStudentById(int id);

}

DAO实现(IStudentDAOimpl):

package com.dyh.ibatis.test01;

import java.io.IOException;

import java.io.Reader;

import java.sql.SQLException;

import java.util.List;

import com.ibatis.common.resources.Resources;

import com.ibatis.sqlmap.client.SqlMapClient;

import com.ibatis.sqlmap.client.SqlMapClientBuilder;

public class IStudentDAOimpl implements IStudentDAO {

private static SqlMapClient sqlMapper = null;

static {

try {

Reader reader = Resources.getResourceAsReader("com/dyh/ibatis/test01/SqlMapConfig.xml");

sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);

reader.close();

} catch (IOException e) {

}

}

@Override

public void addStudent(Student student) {

// TODO Auto-generated method stub

try {

sqlMapper.insert("insertStudent", student);

} catch (SQLException e) {

e.printStackTrace();

}

}

@Override

public void addStudentBySequence(Student student) {

// TODO Auto-generated method stub

try {

sqlMapper.insert("insertStudentBySequence", student);

} catch (SQLException e) {

e.printStackTrace();

}

}

@Override

public void delectStudentById(int id) {

// TODO Auto-generated method stub

try {

sqlMapper.delete("deleteStudentById", id);

} catch (SQLException e) {

e.printStackTrace();

}

}

@Override

public void updateStudentById(Student student) {

// TODO Auto-generated method stub

try {

sqlMapper.update("updateStudentById", student);

} catch (SQLException e) {

e.printStackTrace();

}

}

@Override

public List<Student> querAllStudent() {

// TODO Auto-generated method stub

List<Student> studentList = null;

try {

studentList = sqlMapper.queryForList("selectAllSudent");

} catch (SQLException e) {

e.printStackTrace();

}

return studentList;

}

@Override

public List<Student> querStudentByName(String name) {

// TODO Auto-generated method stub

List<Student> studentlist = null;

try {

studentlist = sqlMapper.queryForList("selectStudentByName", name);

} catch (SQLException e) {

e.printStackTrace();

}

return studentlist;

}

@Override

public Student queryStudentById(int id) {

// TODO Auto-generated method stub

Student student = null;

try {

student = (Student) sqlMapper.queryForObject("selectSudentById", id);

} catch (SQLException e) {

e.printStackTrace();

}

return student;

}

}

测试类:

package com.dyh.ibatis.test01;

import java.sql.Date;

public class test {

public static void main(String[] args) {

//查找所有

IStudentDAO dao = new IStudentDAOimpl();

//    for(Student student : dao.querAllStudent()){

//       System.out.println(student);

//    }

//    //通过id查找

//    System.out.println(dao.queryStudentById(3));

//    //插入实体

//    Student student = new Student();

//    student.setSid(4);

//    student.setSname("deng4");

//    student.setMajor("major4");

//    student.setBirth(Date.valueOf("2014-12-23"));

//    dao.addStudent(student);

//通过id删除

//    dao.delectStudentById(4);

//通过id来更新

//    Student student = new Student();

//    student.setSid(3);

//    student.setMajor("major33");

//    dao.updateStudentById(student);

//模糊查询

//    for(Student student : dao.querStudentByName("g3")){

//       System.out.println(student);

//    }

//通过序列插入数据

Student student = new Student();

student.setSname("deng444");

student.setMajor("major444");

student.setBirth(Date.valueOf("2014-12-23"));

dao.addStudent(student);

}

}

时间: 2025-01-07 16:06:08

ibatis入门的相关文章

iBatis 入门笔记

iBatis简介 iBatis是一个"半自动"的轻量级O/R Mapping框架. O/R Mapping是指对象与数据库之间的映射,而iBatis就是这样一个映射器,映射器的主要作用是在对象和数据库之间搬运数据,同时保证对象.数据库和映射器之间相互独立. 通过O/R Mapping你将不用再面对那一堆令人厌恶的JDBC代码,为一堆打开连接.关闭连接的代码而眼花头昏. 何为"半自动"?    这里的半自动是与Hibernate这样的O/R Mapping方案对比得出

ibatis入门教程一

这几天研究ibatis玩,参考一篇贴子进行安装配置:蓝雪森林 选择这个帖子来跟随配置是因为这个帖子看着比较干净,但是我仍旧在配置得过程中出现了好几个问题,所以我决定在这个帖子的基础上将更多细节加上,做一个傻瓜教程. 一.前期准备 虽然ibatis能处理多种数据库,不过初学者还是比较适应mysql,因此我选择mysql作为我的数据载体.另外我准备建的是一个普通的java 工程,并采用maven命令行来建立这个工程.所以在这之前,电脑上需要安装maven和mysql. 二.工程建立 ①使用maven

Ibatis入门基本语法(转)

Ibatis入门基本语法 1.       Ibatis是开源软件组织Apache推出的一种轻量级的对象关系映射(ORM)框架,和Hibernate.Toplink等在java编程的对象持久化方面深受开发人员欢迎. 对象关系映射(ORM):简单原理是通过面向对象方式操作关系型数据库,目前存储数据最常用最流行的工具是关系型数据库,其操作方式是通过SQL语句操作数据库的表,但是对于Java面向对象编程语言中,所有的操作对象都是对象,因此对象关系映射就是把数据库表和java编程语言中的对象对应起来,把

一个简单的iBatis入门例子

一个简单的iBatis入门例子,用ORACLE和Java测试 目录结构: 1.导入iBatis和oracle驱动. 2.创建类Person.java package com.ibeats;import java.util.Date; public class Person { private int id; private String firstName; private String lastName; private double weightInKilograms; private do

ibatis入门教程

转载自  http://www.cnblogs.com/ycxyyzw/archive/2012/10/13/2722567.html iBatis 简介: iBatis 是apache 的一个开源项目,一个O/R Mapping 解决方案,iBatis 最大的特点就是小巧,上手很快.如果不需要太多复杂的功能,iBatis 是能够满足你的要求又足够灵活的最简单的解决方案,现在的iBatis 已经改名为Mybatis 了. 官网为:http://www.mybatis.org/ 搭建iBatis 

ibatis 入门

 iBatis 简单介绍: iBatis 是apache 的一个开源项目.一个O/R Mapping 解决方式,iBatis 最大的特点就是小巧.上手非常快.假设不须要太多复杂的功能.iBatis 是可以满足你的要求又足够灵活的最简单的解决方式,如今的iBatis 已经改名为Mybatis 了. 官网为:http://www.mybatis.org/ 搭建iBatis 开发环境: 1 .导入相关的jar 包,ibatis-2.3.0.677.jar .mysql-connector-java

Ibatis入门基本语法

1.       Ibatis是开源软件组织Apache推出的一种轻量级的对象关系映射(ORM)框架,和Hibernate.Toplink等在java编程的对象持久化方面深受开发人员欢迎. 对象关系映射(ORM):简单原理是通过面向对象方式操作关系型数据库,目前存储数据最常用最流行的工具是关系型数据库,其操作方式是通过SQL语句操作数据库的表,但是对于Java面向对象编程语言中,所有的操作对象都是对象,因此对象关系映射就是把数据库表和java编程语言中的对象对应起来,把表的列同java对象中的字

spring+ibatis环境搭建

简单的spring+ibatis入门实例:ibatis是一种半自动化的持久层框架,它介于JDBC和hibernate之间,使用比较灵活. 一:目录结构 二:需要导入的jar包: 所有的第三方jar包都需要加上,spring.jar.ibatis.-2.3.3.720.jar.sqlijdbc.jar.oscache-2.4.jar.commons-pool-1.3.jar.commons-dbcp-1.4.jar,mysql-connector-5.0.5.jar.不然运行的时候都要报错,这里需

IBatis和Hibernate区别

1. 简介 Hibernate是当前最流行的O/R mapping框架.它出身于sf.net,现在已经成为Jboss的一部分了.iBATIS是另外一种优秀的O/R mapping框架,现已改名叫myBATIS.目前属于apache的一个子项目了.相对Hibernate"O/R"而言,iBATIS 是一种"Sql Mapping"的ORM实现. Hibernate对数据库结构提供了较为完整的封装,Hibernate的O/R Mapping实现了POJO和数据库表之间的