IBatis查删改查与调用存储过程 mysql数据库
简单介绍一下IBatis是什么:iBATIS一词来源于“internet”和“abatis”的组合,是一个由ClintonBegin在2001年发起的开放源代码项目。最初侧重于密码软件的开发,现在是一个基于Java的持久层框架。
iBATIS提供的持久层框架包括SQLMaps和DataAccessObjects(DAO),同时还提供一个利用这个框架开发的JPetStore实例。
相对Hibernate和ApacheOJB等“一站式”ORM解决方案而言,ibatis是一种“半自动化”的ORM实现。
所谓“半自动”,可能理解上有点生涩。纵观目前主流的ORM,无论Hibernate还是ApacheOJB,都对数据库结构提供了较为完整的封装,提供了从POJO到数据库表的全套映射机制。程序员往往只需定义好了POJO到数据库表的映射关系,即可通过Hibernate或者OJB提供的方法完成持久层操作。程序员甚至不需要对SQL的熟练掌握,Hibernate/OJB会根据制定的存储逻辑,自动生成对应的SQL并调用JDBC接口加以执行。
为什么:看到这里我想很多人想要问,为什么要弄一个半自动化的持久层框架,这里的话就要从hibernate的缺陷说起,虽然hibernate使得对数据的操作变得简单,但是如果数据库的数据处理量特别大,性能也要求很高,需要对sql语句进行优化才能够达到预期的要求,这个时候hibernate确实就是一个累赘了。所以在hibernate和jdbc之间多了一个选择,那就是IBatis,他使得开发人员不用在写繁琐的数据库访问代码,和字段读取操作。并且自己写sql语句。
怎么做:具体代码在附件中
1.建表
CREATE TABLE `users` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`age` varchar(255) DEFAULT NULL,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
CREATE PROCEDURE `sp_modify_user`(in_id Integer, in_age Integer)
begin
update users set age=in_age where id=in_id;
end;
2.建一个实体类
package com.ibatis.entity;
/**
*
* @author Administrator
*User实体类
*/
public class Users {
private int id;
private String name;
private int age;
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
4.一个映射
/p>
PUBLIC "-////DTD SQL Map 2.0//EN"
"/dtd/sql-map-2.dtd">
SELECT id,name,age FROM USERS
insert into USERS(id,name,age) values(#id#,#name#,#age#)
SELECT id,name,age FROM USERS WHERE id = #id#
delete from users where id=#id#
update users
name=#name#
age=#age#
where id=#id#
call sp_modify_user($id$,$age$)
select * from users
age > $age$
order by id limit $beginCount$,$pageSize$
5.IBatis配置文件
/p>
PUBLIC "-////DTD SQL Map Config 2.0//EN"
"/dtd/sql-map-config-2.dtd">
enhancementEnabled="true"
lazyLoadingEnabled="true"
maxRequests="32"
maxSessions="10"
maxTransactions="5"
useStatementNamespaces="false" />
6.后面的太长了还是下附件吧。。
1 楼
ssy341
-03-01
SqlMapClientBuilder 是什么啊?报错啊
2 楼
pzh244658240
-03-02
ssy341 写道
SqlMapClientBuilder 是什么啊?报错啊
对于这种问题。还是没有理解编译java是怎么实现的呀。。包呀。兄弟。导包,网上一大堆。