ibatis入门实例(完整)
一:首先展示一下我的web文件结构,首先导入Ibatis所需jar和数据库驱动,从第二步开始跟着笔者一步步来

二:数据库建测试表
CREATE TABLE STUDENT (
ID NUMBER(5),
NAME VARCHAR2(10),
SEX VARCHAR2(10),
AGE NUMBER(10),
ADDRESS VARCHAR2(10),
CONSTRAINT PK_ID PRIMARY KEY(ID)
);
三:创建SqlMapConfig.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig> <properties resource="SqlMapConfig.properties" /> <transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${driver}" />
<property name="JDBC.ConnectionURL" value="${url}" />
<property name="JDBC.Username" value="${username}" />
<property name="JDBC.Password" value="${password}" /> </dataSource>
</transactionManager> <sqlMap resource="sqlMap_student.xml" /> </sqlMapConfig>
四:创建SqlMapConfig.properties,将用户名和密码改成自己的
driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:orcl
username=ynsb1
password=1
五 创建sqlMap_student.xml映射文件,注意parameterClass要改成自己的pojo类
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd"> <sqlMap namespace="Test"> <statement id="insert_student"
parameterClass="com.shangcg.ibatis.StudentDto">
insert into student(
id,name,age,sex,address) values(
#id#,#name#,#age#,#sex#,#address# )
</statement> <statement id="delete_all_student"
parameterClass="com.shangcg.ibatis.StudentDto">
delete from student
</statement> <statement id="deleteByID_student"
parameterClass="com.shangcg.ibatis.StudentDto">
delete from student where
id = #id#
</statement> <statement id="updataStudent_test"
parameterClass="com.shangcg.ibatis.StudentDto">
update student set
name=#name#,sex=#sex#,age=#age#,address=#address#
where id = #id#
</statement> <statement id="select_all_student"
resultClass="com.shangcg.ibatis.StudentDto">
select * from student order by id
</statement> <statement id="selectByID_student"
parameterClass="com.shangcg.ibatis.StudentDto"
resultClass="com.shangcg.ibatis.StudentDto">
select * from student
where id = #id#
order by id
</statement>
</sqlMap>
六:配置文件创建完成,接下来创建java类
1)创建StudentDto
import java.sql.Date;
public class StudentDto {
// 注意这里需要保证有一个无参构造方法,因为包括Hibernate在内的映射都是使用反射的,如果没有无参构造可能会出现问题
//学生ID
private int id = 0;
//学生姓名
private String name = "";
//学生性别
private String sex = "";
//学生年龄
private int age = 0;
//学生地址
private String address = "";
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 String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
2)创建接口StudentDao
import java.util.ArrayList; import com.ibatis.sqlmap.client.SqlMapClient;
import com.shangcg.ibatis.StudentDto; public interface StudentDao { //添加student表的数据
public void addStudent(SqlMapClient sqlMap,StudentDto studentdto);
//删除student表的数据
public void delStudent(SqlMapClient sqlMap);
//删除student表的指定ID数据
public void delStudentByID(SqlMapClient sqlMap,StudentDto studentdto);
//更新student表的数据
public void updataStudent(SqlMapClient sqlMap,StudentDto studentdto);
//查询student表的所有数据
public ArrayList selectStudent(SqlMapClient sqlMap);
//查询student表的指定ID数据
public StudentDto selectStudentByID(SqlMapClient sqlMap,StudentDto studentdto);
}
3)创建实现类StudentImpl
import java.sql.SQLException;
import java.util.ArrayList; import com.ibatis.sqlmap.client.SqlMapClient;
import com.shangcg.ibatis.StudentDto;
import com.shangcg.interfaces.StudentDao; public class StudentImpl implements StudentDao { //添加student表的数据
public void addStudent(SqlMapClient sqlMap, StudentDto studentdto) { try {
sqlMap.insert("insert_student", studentdto);
} catch (SQLException e) { e.printStackTrace();
}
} //删除student表的数据
public void delStudent(SqlMapClient sqlMap) { try {
sqlMap.delete("delete_all_student", null);
} catch (SQLException e) { e.printStackTrace();
}
} //删除student表的指定ID数据
public void delStudentByID(SqlMapClient sqlMap, StudentDto studentdto) { try {
sqlMap.delete("deleteByID_student",studentdto );
} catch (SQLException e) { e.printStackTrace();
}
} //更新student表的数据
public void updataStudent(SqlMapClient sqlMap, StudentDto studentdto) { try {
sqlMap.update("updataStudent_test",studentdto );
} catch (SQLException e) { e.printStackTrace();
}
} //查询student表的所有数据
public ArrayList selectStudent(SqlMapClient sqlMap) { //保存查询结果
ArrayList rsList = new ArrayList(); try {
rsList = (ArrayList)sqlMap.queryForList("select_all_student","");
} catch (SQLException e) { e.printStackTrace();
}
return rsList;
} //查询student表的指定ID数据
public StudentDto selectStudentByID(SqlMapClient sqlMap, StudentDto studentdto) { //返回后保存在info中
StudentDto info = new StudentDto();
try {
info = (StudentDto)sqlMap.queryForObject("selectByID_student", studentdto);
} catch (SQLException e) { e.printStackTrace();
}
return info;
} }
4)创建MainTest 测试类
import java.io.IOException;
import java.io.Reader;
import java.util.ArrayList; import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import com.shangcg.ibatis.StudentDto;
import com.shangcg.impl.StudentImpl; public class MainTest { public StudentImpl impl = new StudentImpl();
public StudentDto info = new StudentDto();
public static SqlMapClient sqlmapclient = null;
static {
try {
//读取xml文件
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
sqlmapclient = SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
} catch (IOException e) { e.printStackTrace();
}
} public static void main(String []args){
MainTest stu = new MainTest(); System.out.println("------------------------------- start ------------------------------"); //以下为各种方法测试 //添加student表的数据
stu.addStudent_test(); //删除student表的数据
//stu.delStudent_test(); //删除student表的指定ID数据
//stu.delStudentByID_test(); //更新student表的数据
//stu.updataStudent_test(); //查询student表的所有数据
//stu.selectStudent_test(); //查询student表的所有数据
//stu.selectStudentByID_test(); System.out.println("------------------------------- end ------------------------------"); } //添加student表的数据
public void addStudent_test(){ //把要插入的数据填入info对象中
info.setId(5);
info.setName("zh2208");
info.setSex("男");
info.setAge(24);
info.setAddress("上海"); impl.addStudent(sqlmapclient, info); //参数就是sqlMap_student.xml中配置对应的id
} //删除student表的数据
public void delStudent_test(){
impl.delStudent(sqlmapclient);
} //删除student表的指定ID数据
public void delStudentByID_test(){
//指定ID
info.setId(1);
impl.delStudentByID(sqlmapclient,info); } //更新student表的数据
public void updataStudent_test(){ //把要更新的数据填入info对象中
info.setId(6);
info.setName("zh2208up");
info.setSex("男");
info.setAge(20);
info.setAddress("上海up");
impl.updataStudent(sqlmapclient, info);
} //查询student表的所有数据
public void selectStudent_test(){ StudentDto stu_dto = new StudentDto();
//检索结果保存到list中
ArrayList resultList = impl.selectStudent(sqlmapclient);
for(int i = 0; i < resultList.size();i++){
stu_dto = (StudentDto) resultList.get(i);
//打印对象中的信息
show(stu_dto);
} } //查询student表的指定ID数据
public void selectStudentByID_test(){
StudentDto stu_dto = new StudentDto();
info.setId(1);
stu_dto = impl.selectStudentByID(sqlmapclient,info); if(stu_dto != null){
show(stu_dto);
}else{
System.out.println("no data!!!!");
}
} //打印查询结果
public void show(StudentDto stu_dto){ System.out.print("学生ID :" + stu_dto.getId() + " ; ");
System.out.print("学生姓名 :" + stu_dto.getName() + " ; ");
System.out.print("学生性别 :" + stu_dto.getSex() + " ; ");
System.out.print("学生年龄 :" + stu_dto.getAge() + " ; ");
System.out.print("学生地址 :" + stu_dto.getAddress());
System.out.println(); }
}
ibatis入门实例(完整)的更多相关文章
- mybatis 详解(二)------入门实例(基于XML)
通过上一小节,mybatis 和 jdbc 的区别:http://www.cnblogs.com/ysocean/p/7271600.html,我们对 mybatis有了一个大致的了解,下面我们通过一 ...
- mybatis 详解(三)------入门实例(基于注解)
1.创建MySQL数据库:mybatisDemo和表:user 详情参考:mybatis 详解(二)------入门实例(基于XML) 一致 2.建立一个Java工程,并导入相应的jar包,具体目录如 ...
- SoapUI简介和入门实例解析
SoapUI简介 SoapUI是一个开源测试工具,通过soap/http来检查.调用.实现Web Service的功能/负载/符合性测试.该工具既可作为一个单独的测试软件使用,也可利用插件集成到Ecl ...
- 【React】入门实例
React 可以灵活的应用在各种各样的项目中.你可以用它来创建新的应用程序,你也可以逐步引用而不改变现有的代码库. React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaS ...
- React 入门实例
React 入门实例教程 一.安装 React 的安装包,可以到官网下载. $ git clone git@github.com:ruanyf/react-demos.git 如果你没安装 git, ...
- Spring入门1. IoC入门实例
Spring入门1. IoC入门实例 Reference:Java EE轻量级解决方案——S2SH 前言: 之前学习过关于Spring的一点知识,曾经因为配置出现问题,而总是被迫放弃学习这些框架技术, ...
- Lucene建立索引搜索入门实例
第一部分:Lucene建立索引 Lucene建立索引主要有以下两步:第一步:建立索引器第二步:添加索引文件准备在f盘建立lucene文件夹,然后 ...
- 1. mybatis 的入门实例
mybatis 的入门实例 1.创建一个普通的Java项目 1.加入jar包(所有mybatis 和mysql) 2.加入配置文件 src 目录下 (1) db.properties mysql.us ...
- Vue项目入门实例
前言 本文记录Vue2.x + Element-UI + TypeScript语法入门实例 为什么要用TypeScript? 1.TypeScript是JavaScript的超集,利用es6语法,实现 ...
随机推荐
- 阿里云和微软共同开源的 OAM 对 Kubernetes 开发人员意味着什么?
上周,微软和阿里巴巴共同推出了开放应用模型(OAM),用于定义部署在任何地方的应用模型的一种规范.Rudr是Microsoft基于Kubernetes环境的OAM标准实现. 我用了一个周末来了解OAM ...
- "Dependency on app with no migrations: %s" % key[0]
问题描述:我在model中建好模型类,运行的控制台就报错误: 解决方法:1,首先需要在setting中重载AUTH_USER_MODEL AUTH_USER_MODEL = 'users.UserPr ...
- vue 合成图片
目的:将二维码图片和背景图片合成变成一张图片 方法一: 引入依赖 cnpm install qrcanvas --save cnpm install html2canvas --save 具体代码: ...
- OpenSSL aes加解密实例+base64编解码
OpenSSL aes加解密简单实例+base64编解码 #include <stdio.h> #include <string.h> #include <memory. ...
- 学习笔记59_python字符串处理
python中,字符串可以使用 '或"括起来 1. 要想写成 "hellow "aaaa" ",在python中,可以"hellow ' ...
- 【建站02】WordPress主题设置
大家好,我是帝哥.相信很多朋友看了我上一篇文章的介绍之后已经可以搭建自己的个人网站了,但是网站的功能和美观程度都还是有所欠缺的,现在呢,再给大家大概的介绍一些如何美化自己的网站,当然了,这个过程也是很 ...
- CSPS模拟 72
状态..找不回来了.. T2 简单的期望 考试的时候忘考虑一个事,就是连续多位进位的情况 考试的时候打出$n^2$复杂度dp还没引起怀疑真是不应该. T3 简单的操作 最后一刻才想到图不联通,已经想不 ...
- Java学习总结之基本数据类型
Java的数据类型分为基本数据类型和引用数据类型, 今天总结的是基本数据类型.在Java中,一共有八种基本数据类型,分别为整数类型(byte,short,int,long).浮点类型(float,do ...
- P3043 [USACO12JAN]牛联盟(并查集+数学)
(m<n<=1e5,有重边) 题目表述有问题..... 给定一张图(不一定联通),每条边可以选择连接的两个点之一,剩余的点可以自己成对,问方案数. 一开始是真的被吓到了....觉得可写性极 ...
- PHP curl下载图片的方法
PHP curl下载图片的方法 <pre> <?php $images = [ 'http://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTKPkia3rx ...