这个是ibatis v2的一个小例子,刚学习,从网上找的,忘记原来的网址了,不过对于乐于分享的人很是感激,感觉还不错,上手应该挺快的,灵活的SQL构建。
感觉主要还是那个配置sql的文件里面的那些配置文件有一些难度,所以附上一份文档参考参考。
下面是实体类:
package com.tonyj.pojo;
public class Contact {
private String firstName;
private String lastName;
private String email;
private int id;
//相应的getter和setter方法,构造方法
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Contact(String firstName, String lastName, String email) {
super();
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
}
public Contact() {
super();
// TODO Auto-generated constructor stub
}
}
接下来是:配置文件 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>
<properties resource="jdbc.properties"/>
<settings
cacheModelsEnabled="true"
enhancementEnabled="true"
lazyLoadingEnabled="true"
maxRequests="32"
maxSessions="10"
maxTransactions="5"
useStatementNamespaces="true"/>
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${jdbc.driverClassName}"/>
<property name="JDBC.ConnectionURL" value="${jdbc.url}"/>
<property name="JDBC.Username" value="${jdbc.userName}"/>
<property name="JDBC.Password" value="${jdbc.password}"/>
</dataSource>
</transactionManager>
<sqlMap resource="Contact.xml"/>
</sqlMapConfig>
配置文件:jdbc.properties
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/vin
jdbc.userName=root
jdbc.password=root
配置文件:Contact.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>
<typeAlias alias="Contact" type="com.tonyj.pojo.Contact"/>
<!-- ibatis查询操作 -->
<select id="getAll" resultClass="Contact">
select *
from contact
</select>
<!-- ibatis插入1 -->
<insert id="insert" parameterClass="Contact">
insert into contact(firstName,lastName,email)
values(#firstName#,#lastName#,#email#)
<selectKey resultClass="int" keyProperty="id">
select last_insert_id() as id
</selectKey>
</insert>
<!-- ibatis插入操作2 -->
<parameterMap class="Contact" id="insert-contact-parameter">
<parameter property="firstName"/>
<parameter property="lastName"/>
<parameter property="email"/>
</parameterMap>
<statement id="insertContact" parameterMap="insert-contact-parameter">
insert into contact(firstName,lastName,email) values (?,?,?);
</statement>
<!-- ibatis删除操作 -->
<delete id="deleteContactById" parameterClass="int">
delete from Contact where id=#id#
</delete>
<!-- ibatis更新操作 -->
<update id="updateById" parameterClass="int">
update Contact set lastName="tonyJ"
where id=#id#
</update>
<!-- ibatis根据id查询 -->
<resultMap class="Contact" id="result">
<result property="id" column="id"/>
<result property="firstName" column="firstName"/>
<result property="lastName" column="lastName"/>
<result property="email" column="email"/>
</resultMap>
<select id="getById" resultMap="result">
select * from contact where id=#id#
</select>
<!-- ibatis调用mysql存储过程 -->
<procedure id="storedInfo" resultClass="Contact">
{call showData()}
</procedure>
<!-- ibatis模糊查询 -->
<select id="selectByName" parameterClass="java.lang.String" resultClass="Contact">
select *
from contact
where firstName like '%$firstName$%'
</select>
<!-- ibatis分页查询1 -->
<select id="getByPage" parameterClass="java.util.Map" resultClass="Contact">
select * from contact
<isParameterPresent>
<isNotNull property="orderById">
order by $orderById$
</isNotNull>
<isNotNull property="limitClauseStart">
limit $limitClauseStart$,$limitClauseCount$
</isNotNull>
</isParameterPresent>
</select>
<!--ibatis 分页查询2 -->
<select id="getByPage1" parameterClass="java.util.Map" resultClass="Contact">
select *
from contact
</select>
</sqlMap>
测试类:
package com.tonyj.test;
import java.io.Reader;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import com.tonyj.pojo.Contact;
public class IbatisExample {
public static void main(String[] args) throws Exception{
Reader reader=Resources.getResourceAsReader("SqlMapConfig.xml");
SqlMapClient sqlMap=SqlMapClientBuilder.buildSqlMapClient(reader);
//查询
/*System.out.println("All Contacts");
List<Contact> contacts=(List<Contact>)sqlMap.queryForList("getAll",null);
for(Contact c:contacts){
System.out.println(" "+c.getId()+"-->"+c.getFirstName()+"-->"
+c.getLastName()+"-->"+c.getEmail());
}*/
//插入1
/*System.out.println("*------insert Contact Table------------*");
Contact contact=new Contact("Amit","Kumar","amit@yes.com");
sqlMap.insert("insert",contact);*/
//插入2
/*System.out.println("*------insert Contact Table------------*");
Contact contact=new Contact("firstName2","lastName2","tang@yes.com");
sqlMap.insert("insertContact",contact);*/
//删除
// int i=sqlMap.delete("deleteContactById", 1);
// System.out.println("i="+i);
//更新
// sqlMap.update("updateById", 3);
//根据id查询
// Contact contact=(Contact) sqlMap.queryForObject("getById", new Integer(3));
// System.out.println(contact.toString());
//调用存储过程
// List<Contact> contacts=(List<Contact>)sqlMap.queryForList("storedInfo", null);
// Contact contact=null;
// for(Contact c:contacts){
// System.out.println(c.toString());
// }
//模糊查询
List<Contact> contacts=(List<Contact>)sqlMap.queryForList("selectByName","t");
Contact contact=null;
for(Contact c:contacts){
System.out.println(c.getFirstName());
}
//分页1
/*Map<String,Object> map=new HashMap<String,Object>();
map.put("orederById"," id asc");
map.put("limitClauseStart",5);
map.put("limitClauseCount",5);
List<Contact> result=(List<Contact>)sqlMap.queryForList("getByPage", map);
for(Contact c:result){
System.out.println(c.toString());
}*/
//分页2
// int skip=5;
// int max=4;
// String sql="getByPage1";
// @SuppressWarnings("unchecked")
// List<Contact> contacts=(List<Contact>)sqlMap.queryForList(sql,skip,max);
// for(Contact c:contacts){
// System.out.println(c.toString());
// }
}
}
分享到:
相关推荐
ibatis入门小例子,包括实例源码,所需jar包。
ibatis小例子Demo,对于初学者是个很好的例子。
struts2+spring2+ibatis简单登录例子
ibatis demo,ibatis例子,ibatis示例
ibatis简单CRUD例子,供新手学习用。
struts2+ibatis的小例子,但没有集成 spring,你下载下来可以自己尝试集成
最近自己看了下jsf2,资料少的蛋疼,有什么问题搜来的永远就那么几篇帖子,次噢...谁有jsf Spring ibatis之类的项目给我发个啊,学点东西不容易。 有资料的发我邮箱stgoder@163.com,跪求。 谁有jsf2项目给我发个。。。
maven整合ibatis的简单例子
iBatis工程的简单例子,在eclipse上实现的,数据库是mysql数据库,里面的字段为CREATE DATABASE MYDB; use MYDB; Drop TABLE IF EXISTS `MYDB`.`student`; Create TABLE `MYDB`.`student` ( `name` varchar(40) NOT...
ibatis例子,本例子是使用MySQL的,若使用Oracle或其他数据库,可以查看JDBC连接时使用的URL和账号用户名信息,具体自行查询。
简单的Ibatis入门例子,让你踏入Ibatis大门
适合初学者学习iBATIS的例子 带着数据库和JAR包。。
Ibatis连接ORACLE数据库的小例子
struts2+spring+ibatis简单登录例子
ibatis最简单的两个小例子,给刚刚学习ibatis的学友一点帮助
在.net中使用iBATISNET技术!该例子使用vs2008开发。现在调整资源分为之前的一半,方便大家下载吧。
Ibatis.net学习例子以及使用教程书,简单易学
Struts2+Spring+iBatis整合的一个小例子。 包括了对MySQL数据库的增删改查,只适用于新手,使用时请先把ssi.sql文件导入数据库。 压缩包内有源码和所需jar包
backbone+bootstrap+ibatis+spring例子