當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
Spring+Ibatis集成开发实例
生活随笔
收集整理的這篇文章主要介紹了
Spring+Ibatis集成开发实例
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
首先簡歷數(shù)據(jù)庫demo(本文選mysql)
數(shù)據(jù)庫腳本:
?
CREATE?TABLE?`ibatis`?(??`id`?varchar(20)?NOT?NULL,
??`name`?varchar(20)?default?NULL,
??PRIMARY?KEY??(`id`)
)?ENGINE=InnoDB?DEFAULT?CHARSET=gb2312;
insert?into?ibatis?values("1","1");
insert?into?ibatis?values("2","2");
?
DAO接口:
?
package?ch10.SpringAndIbatis;import?java.util.List;
public?interface?IDAO?...{
??public?List?getList();
??public?Ibatis?getByName(String?name);
??public?Ibatis?getById(String?id);
??public?void?save(Ibatis?ibatis);
??public?void?delete(String?id);
??public?void?update(Ibatis?ibatis);
}
?
Ibatis配置文件:
?
<?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>?
<sqlMap?resource="ch10/SpringAndIbatis/Ibatis.xml"?/>?
</sqlMapConfig>
?
ibatis sql map文件ibatis.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?type="ch10.SpringAndIbatis.Ibatis"?alias="user"/>
??<resultMap?id="ibatisTest"?class="user"?>
????<result?column="id"?property="id"?jdbcType="VARCHAR"?/>
????<result?column="name"?property="name"?jdbcType="VARCHAR"?/>
??</resultMap>
??
??<!--?獲得全查詢列表?-->
??<select?id="getAllUsers"?resultMap="ibatisTest">
????select?*?from?Ibatis
??</select>
??
???<!--?依據(jù)username獲得用戶對象?-->
???<select?id="getUsersByName"?resultMap="ibatisTest">
?????select?*?from?Ibatis?where?name=#value#
??</select>?
??
??<!--?依據(jù)id獲得用戶對象?-->
????<select?id="getUsersById"?resultMap="ibatisTest">
?????select?*?from?Ibatis?where?id=#value#
??</select>?
??
???<!--?新增用戶對象?-->
???<insert?id="insertUsers"?parameterClass="user">
??????insert?into?ibatis?(id,name)?values?(#id#,#name#)
???</insert>
???
???<!--?刪除用戶對象?-->
???<delete?id="deleteUsers">
?????delete?from?ibatis?where?id=#value#
???</delete>
???
???<!--?更新用戶對象?-->
???<delete?id="updateUsers"?parameterClass="user">
??????update?ibatis?set?name=#name#?where?id=#id#
???</delete>
</sqlMap>
spring配置文件
?
<?xml?version="1.0"?encoding="UTF-8"?><beans
????xmlns="http://www.springframework.org/schema/beans"
????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
????xsi:schemaLocation="http://www.springframework.org/schema/beans?http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean?id="dataSource"?class="org.apache.commons.dbcp.BasicDataSource">
??<property?name="driverClassName">
????<value>com.mysql.jdbc.Driver</value>
??</property>
??<property?name="username">
????<value>root</value>
??</property>
??<property?name="password">
????<value>1234</value>
??</property>
??<property?name="url">
????<value>jdbc:mysql://localhost:3306/spring</value>
??</property>
</bean>
<bean?id="sqlMapClient"?class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
??<!--?此處應注入ibatis配置文件,而非sqlMap文件,否則會出現(xiàn)“there?is?no?statement.....異常”?-->
??<property?name="configLocation">
?????<value>ch10/SpringAndIbatis/sqlMapConfig.xml</value>
??</property>
</bean>
<bean?id="testDAO"?class="ch10.SpringAndIbatis.TestDAO">
???<property?name="dataSource">
???<ref?bean="dataSource"/>
?</property>
??<property?name="sqlMapClient">
????<ref?bean="sqlMapClient"/>
??</property>
</bean>
</beans>
DAO實現(xiàn)類:
?
package?ch10.SpringAndIbatis;import?java.util.List;
import?org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
public?class?TestDAO?extends?SqlMapClientDaoSupport?implements?IDAO?...{
????public?void?delete(String?id)?...{
????????getSqlMapClientTemplate().delete("deleteUsers",?id);
????}
????public?Ibatis?getById(String?id)?...{
????????return?(Ibatis)getSqlMapClientTemplate().queryForObject("getUsersById",id);
????}
????public?Ibatis?getByName(String?name)?...{
????????
????????return?(Ibatis)getSqlMapClientTemplate().queryForObject("getUsersByName",name);
????}
????public?List?getList()?...{
????????return?getSqlMapClientTemplate().queryForList("getAllUsers",null);
????}
????public?void?save(Ibatis?ibatis)?...{
????????getSqlMapClientTemplate().insert("insertUsers",ibatis);
????}
????public?void?update(Ibatis?ibatis)?...{
????????getSqlMapClientTemplate().update("updateUsers",?ibatis);
????}
}
domain對象
?
package?ch10.SpringAndIbatis;public?class?Ibatis?...{
??
private?String?id;
???private?String?name;
???public?String?getId()?...{
????????return?id;
???}
???public?void?setId(String?id)?...{
????????this.id?=?id;
???}
???public?String?getName()?...{
????????return?name;
???}
???public?void?setName(String?name)?...{
????????this.name?=?name;
???}
???public?Ibatis()...{
???????
???}
public?Ibatis(String?id,?String?name)?...{
????super();
????this.id?=?id;
????this.name?=?name;
}
}
?
?
測試代碼:
?
?
package?ch10.SpringAndIbatis;import?java.util.ArrayList;
import?java.util.Iterator;
import?java.util.List;
import?org.springframework.context.ApplicationContext;
import?org.springframework.context.support.ClassPathXmlApplicationContext;
public?class?Test?...{
????/**?*//**
?????*?@param?args
?????*/
????public?static?void?main(String[]?args)?...{
????????ApplicationContext?context=new?ClassPathXmlApplicationContext("ch10/SpringAndIbatis/applicationContext.xml");
????????TestDAO?testDAOImpl=(TestDAO)context.getBean("testDAO");
????????//獲得全查詢列表
????????System.out.println("獲得全查詢列表");
????????List?result=new?ArrayList();
????????result=testDAOImpl.getList();
????????for?(Iterator?iter?=?result.iterator();?iter.hasNext();)?...{
????????????Ibatis?element?=?(Ibatis)?iter.next();
????????????System.out.println(element.getName());
????????}????
????????
???????//依據(jù)username獲得用戶對象
????????System.out.println("依據(jù)username獲得用戶對象");
????????Ibatis?ibatis=testDAOImpl.getByName("1");
????????System.out.println(ibatis.getName());
????????
???????//依據(jù)id獲得用戶對象
????????System.out.println("依據(jù)id獲得用戶對象");
????????Ibatis?ibatis1=testDAOImpl.getById("1");
????????System.out.println(ibatis.getName());
????????
???????//新增用戶對象
????????System.out.println("-----------------");
????????System.out.println("新增用戶對象前");
????????List?result1=new?ArrayList();
????????result1=testDAOImpl.getList();
????????for?(Iterator?iter?=?result1.iterator();?iter.hasNext();)?...{
????????????Ibatis?element?=?(Ibatis)?iter.next();
????????????System.out.println(element.getName());
????????}????
????????testDAOImpl.save(new?Ibatis("3","3"));?//新增用戶
????????System.out.println("新增用戶對象后");
????????List?result2=new?ArrayList();
????????result2=testDAOImpl.getList();
????????for?(Iterator?iter?=?result2.iterator();?iter.hasNext();)?...{
????????????Ibatis?element?=?(Ibatis)?iter.next();
????????????System.out.println(element.getName());
????????}????
????????System.out.println("-----------------");
????????
????????//刪除用戶對象
????????System.out.println("-----------------");
????????System.out.println("刪除用戶對象前");
????????List?result3=new?ArrayList();
????????result3=testDAOImpl.getList();
????????for?(Iterator?iter?=?result3.iterator();?iter.hasNext();)?...{
????????????Ibatis?element?=?(Ibatis)?iter.next();
????????????System.out.println(element.getName());
????????}????
????????testDAOImpl.delete("3");?//刪除用戶
????????System.out.println("刪除用戶對象后");
????????List?result4=new?ArrayList();
????????result4=testDAOImpl.getList();
????????for?(Iterator?iter?=?result4.iterator();?iter.hasNext();)?...{
????????????Ibatis?element?=?(Ibatis)?iter.next();
????????????System.out.println(element.getName());
????????}????
????????System.out.println("-----------------");
????????
????????
????????//更新用戶對象
????????System.out.println("-----------------");
????????System.out.println("更新用戶對象前");
????????List?result5=new?ArrayList();
????????result5=testDAOImpl.getList();
????????for?(Iterator?iter?=?result5.iterator();?iter.hasNext();)?...{
????????????Ibatis?element?=?(Ibatis)?iter.next();
????????????System.out.println(element.getName());
????????}????
????????
????????Ibatis?ibatis3=testDAOImpl.getById("1");
????????ibatis3.setName("new1");
????????testDAOImpl.update(ibatis3);//更新用戶對象
????????
????????
????????System.out.println("更新用戶對象后");
????????List?result6=new?ArrayList();
????????result6=testDAOImpl.getList();
????????for?(Iterator?iter?=?result6.iterator();?iter.hasNext();)?...{
????????????Ibatis?element?=?(Ibatis)?iter.next();
????????????System.out.println(element.getName());
????????}????
????????System.out.println("-----------------");
????????
?????}
}
?
測試結果:
獲得全查詢列表
1
2
依據(jù)username獲得用戶對象
1
依據(jù)id獲得用戶對象
1
-----------------
新增用戶對象前
1
2
新增用戶對象后
1
2
3
-----------------
-----------------
刪除用戶對象前
1
2
3
刪除用戶對象后
1
2
-----------------
-----------------
更新用戶對象前
1
2
更新用戶對象后
new1
2
-----------------
轉載于:https://www.cnblogs.com/gcczhongduan/p/4287490.html
總結
以上是生活随笔為你收集整理的Spring+Ibatis集成开发实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2014年度工作总结
- 下一篇: gradle idea java ssm