一个使用ibatis对数据库增删改查的例子:
这里用的开发环境是:Eclipse3.2+mysql5.0.20,ibatis包是ibatis-common-2.jar,
ibatis-dao-2.jar,ibatis-sqlmap-2.jar,mysql包是mysql-connector-java-5.0.3-bin.jar.
步骤:
1.创建数据库:
create database itcast;
use itcast;
创建表:
create table student
(
id int primary key auto_increment,
firstname varchar(20) not null,
lastname varchar(20) not null
)
2.创建POJO类,Student.java,此程序中用到的所有类都放在cn.itcast包下面,
其他的配置文件都放在txd.configfile包下面。
package cn.itcast;
public class Student {
private Integer id;
private String firstname;
private String lastname;
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
}
3.跟Student类对应的xml配置文件Student.xml,
<?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="student">
<!--insert元素,id属性值作为标识此元素,parameterClass属性是参数的类型,此
属性的值是Java类的全限定名(即包括类的包名)。它是可选的,但强烈建议使用。
它的目的是 限制输入参数的类型为指定的Java类,并优化框架的性能。##符号中
间的名字来自此类的属性.-->
<insert id="insert_student" parameterClass="cn.itcast.Student">
insert into student(firstname,lastname) values
(#firstname#,#lastname#)
</insert>
<select id="getStudent" resultClass="cn.itcast.Student">
select id, firstname, lastname from student
</select>
<delete id="delStudent" parameterClass="int">
delete from student where id=#value#
</delete>
<update id="updateStudent" parameterClass="cn.itcast.Student">
update student set firstname=#firstname#,lastname=#lastname#
where id=#id#
</update>
</sqlMap>
4.jdbc.properties文件,存储数据库连接的driver,url,username,password等信息,
driver=com.mysql.jdbc.Driver
url=jdbc:mysql:///itcast
username=root
password=
5. SqlMap的配置文件SqlMapConfigExample.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>元素,用于在配置文件中使用标准的Java属性文件(name=value)-->
<properties resource="txd/configfile/jdbc.properties" />
<!--
cacheModelsEnabled:全局性地启用或禁用SqlMapClient的所有缓存model。
enhancementEnabled:全局性地启用或禁用运行时字节码增强,以优化访问
Java Bean属性的性能,同时优化延迟加载的性能。
lazyLoadingEnabled:全局性地启用或禁用SqlMapClient的所有延迟加载。
maxRequests:同时执行SQL语句的最大线程数。
maxSessions:同一时间内活动的最大session数。
maxTransactions:同时进入SqlMapClient.startTransaction()的最大线程数。
useStatementNamespaces:如果启用本属性,必须使用全限定名来引用mapped statement。
Mapped statement的全限定名由sql-map的名称和mapped-statement的名称合成。
-->
<settings cacheModelsEnabled="true" enhancementEnabled="true"
lazyLoadingEnabled="true" maxRequests="32" maxSessions="10"
maxTransactions="5" useStatementNamespaces="false" />
<!--
<transationManager>元素让您为SQL Map配置事务管理服务。属性type指定所
使用的事务管理器类型。这个属性值可以是一个类名,也可以是一个别名。
包含在框架的三个事务管理器分别是:JDBC,JTA和EXTERNAL。
-->
<transactionManager type="JDBC">
<!--dataSource元素为SQL Map数据源设置了一系列参数。-->
<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>元素用于包括SQL Map映射文件和其他的SQL Map配置文件。-->
<sqlMap resource="txd/configfile/Student.xml" />
</sqlMapConfig>
6.MySqlMapClient.java类,用于产生一个SqlMapClient
package cn.itcast;
import java.io.IOException;
import java.io.Reader;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
public class MySqlMapClient {
private static SqlMapClient sqlMapClient;
static {
String resource = "txd/configfile/SqlMapConfigExample.xml";
Reader reader = null;
try {
reader = Resources.getResourceAsReader(resource);
sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlMapClient getSqlMapInstance() {
return sqlMapClient;
}
}
7.StudentManager 类测试一下上面的代码,
package cn.itcast;
import java.sql.SQLException;
import java.util.List;
import com.ibatis.sqlmap.client.SqlMapClient;
public class StudentManager {
public static void main(String[] args) {
SqlMapClient sqlMap = MySqlMapClient.getSqlMapInstance();
// insert一条记录
// Student student = new Student();
// student.setFirstname("zhang");
// student.setLastname("san");
// try {
// sqlMap.insert("insert_student", student);
// System.out.println("插入成功!");
// } catch (SQLException e) {
// e.printStackTrace();
// }
// delete一条记录
// try {
// int result = sqlMap.delete("delStudent", 5);
// System.out.println(result);
// } catch (SQLException e) {
// e.printStackTrace();
// }
// update一条已存在的记录
Student student = new Student();
student.setId(1);
student.setFirstname("jiang");
student.setLastname("zemin");
try {
int result = sqlMap.update("updateStudent", student);
System.out.println(result);
} catch (SQLException e) {
e.printStackTrace();
}
// query获得多条记录
// try {
// List<Student> list = sqlMap.queryForList("getStudent", null);
// for (Student student : list) {
// System.out
// .println(student.getId() + "\t"
// + student.getFirstname() + "\t"
// + student.getLastname());
// }
// } catch (SQLException e) {
// e.printStackTrace();
// }
// query单条记录
// try {
// Student student = (Student) sqlMap.queryForObject("getStudent", 1);
// System.out.println(student.getId());
// System.out.println(student.getFirstname());
// System.out.println(student.getLastname());
// } catch (SQLException e) {
// e.printStackTrace();
// }
}
}
分享到:
相关推荐
使用ibatis+oracle完成简单的增删改查的例子,把源码导入myeclipse,修改链接数据库信息,数据库需要自己建立
一个关于ibatis对数据库进行增删改查操作的小例子,简单易学,方便大家快速掌握和运用。
关于struts2.0+spring+ibatis框架的一个增删改查及分页和排序 数据库:sqlserver 2000 服务器:tomcat 如果是oracle的只需修改Spring配置文件的 驱动 及 数据库对应的表即可
struts2 Spring ibatis 整合实现增删改查以及分页 含有sql 到oracle数据库里执行就好了很适合新手 那个功能都实现了 而且代码很清晰
SSI框架整合(Struts2.1+Spring3.0+Ibatis 2.3) 下载之后执行.sql文件创建表和sequence 项目访问路径 localhost:8888/SSI_Demo1 一个简单的例子(Oracle数据库增删改查示例) 用户的增删改查操作,适合初学者...
这是本人只使用Ibatis做的一个增删改查的例子,里面注释写得很详细,可以直接运行,使用的是Oracle数据库,数据库表只有两个字段,id 跟name,表名就为Ibatis.如有什么不懂也可加我QQ:519603116
struts2+spring+ibatis 基于MySQL数据库的一个小例子,包含:增、删、改、查, 使用apache dbcp连接池连接数据库,包、数据库文件、源码都有,直接导入就可以了
struts2+spring+ibatis 基于MySQL数据库的一个小例子,包含:增、删、改、查,使用apache dbcp连 接池连接数据库,包、数据库文件、源码都有,直接导入就可以了
基于ssi struts_spring_ibatis 的一个增 删 查 更新的小例子 连接了数据库
经典开源插件之ibatis: 一个使用ibatis对数据库增删改查的例子 数据库, ibatis, 经典, 例子, 插件
一个Ibatis+Mysql的简单例子,有数据库文件。希望对初学者有所帮助!
向数据库student表插入一条数据 2.删除student表的所有数据 3.删除student表指定ID的数据 4.更新student表指定ID的数据 5.查询student表的所有数据 6.查询student表的指定ID数据 数据库为SQL Server 2005 此资源是...
快速入手ibatis,内含其增删改查例子,以及配套的讲解视频。
iBatisNet C# WinForm iBatisNet实现增删改的一个简单例子,数据库是sqlservice,大家可以下载来看看。
Struts2+Spring+iBatis整合的一个小例子。 包括了对MySQL数据库的增删改查,只适用于新手,使用时请先把ssi.sql文件导入数据库。 压缩包内有源码和所需jar包
自己写的ibatis例子,可以用来入门,也可以学习一下配置文件的配置方法,程序中对可以Student表进行增删改查,自己也可以根据需要添加新的方法,里面有源码和数据库脚本。有需要的,可以下过来看看。
本程序是一个简单ibatis(版本ibatis2.3.4.726)例子, 里面包含单表增,删,改,查。 SimpleExample.java 包含程序与测试. 我用到是sqlServer(其他的数据库,只需更改sqlMapConfig.xml里面的配置就行了)数据库, ...
SSI框架整合(Struts2.1+Spring3.0+Ibatis 2.3) 下载之后执行.sql文件创建表和sequence ...项目访问路径 localhost:8080/SSI_Demo1 一个简单的例子(Oracle数据库增删改查示例) 用户的增删改查操作,适合初学者...
开发环境说明 ...本示例完整地结合Struts2+Spring2+iBatis2+MySQL5,演示了一个用户表的增、删、改、查。 想完整学习Struts2+Spring+iBatis的同仁,可以在这个例子中学习或模仿最基本也是最核心的技术要点。
基于struts2+spring+ibatis做的一个例子。 包含: 1.项目源代码,及所需要用的jar包;...2.对另一张表的增删改查操作; 3.设有拦截器功能,不登录访问其他页面时返回登录页面; 4.列表隔行换色。