搭建环境
1——————
File -->new -->project-->java下的Tomcat Project -->next-->项目名Spring+Ibatis
在lib下加入包,ibatis-common-2.jar,ibatis-dao-2.jar,ibatis-sqlmap-2.jar,ojdbc14.jar,commons-logging-1.0.4.jar,spring.jar几个
右键项目Spring+Ibatis--->Properties--->Java Bulid Path --->Libraries-->add JARS-->添加这些包---->ok
2——————
创建表
create table Test_String_64(
id varchar2(40) not null,
no varchar2(40) not null,
name varchar2(40) not null,
password varchar2(40) not null,
age varchar2(40) not null
)
3——————
在项目下建两个文件夹
---------src/java
----------src/reource
例如图:
在src/resource下加入三个文件
1————————-applicationContext-web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
"http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="person"
class="com.neusoft.test.spib.pojo.Person" >
<constructor-arg index="0" value="111"/>
<constructor-arg index="1" value="111" />
<constructor-arg index="2" value="韩超aa"/>
<constructor-arg index="3" value="123456" />
<constructor-arg index="4" value="123"/>
</bean>
<bean id="person1"
class="com.neusoft.test.spib.pojo.Person" >
<constructor-arg index="0" value="222"/>
<constructor-arg index="1" value="222"/>
<constructor-arg index="2" value="于海"/>
<constructor-arg index="3" value="345"/>
<constructor-arg index="4" value="123"/>
</bean>
<bean id="person2"
class="com.neusoft.test.spib.pojo.Person" >
<constructor-arg index="0" value="333"/>
<constructor-arg index="1" value="333"/>
<constructor-arg index="2" value="好啊"/>
<constructor-arg index="3" value="555"/>
<constructor-arg index="4" value="444"/>
</bean>
<!--静态工厂实例化-->
<bean id="beanFactory"
class="com.neusoft.test.spib.pojo.Person" factory-method="StaticCreatePerson"/>
<!--动态工厂实例化-->
<bean id="person4" class="com.neusoft.test.spib.pojo.Person"/>
<bean id="person5" factory-bean="person4" factory-method="CreatePerson"/>
<bean id="persons" class=" com.neusoft.test.spib.pojo.Person">
<property name="personList">
<list>
<ref bean="person"/>
<ref bean="person1"/>
<ref bean="person2"/>
<ref bean="beanFactory"/>
<ref bean="person5"/>
</list>
</property>
</bean>
</beans>
1————————-sql-map-config.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>
<settings
cacheModelsEnabled="true"
enhancementEnabled="true"
lazyLoadingEnabled="true"
errorTracingEnabled="true"
maxRequests="32"
maxSessions="10"
maxTransactions="5"
useStatementNamespaces="false" />
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property name="JDBC.Driver"
value="oracle.jdbc.driver.OracleDriver" />
<property name="JDBC.ConnectionURL"
value="jdbc:oracle:thin:@192.168.137.23:1521:unieap" />
<property name="JDBC.Username" value="tabuser" />
<property name="JDBC.Password" value="tabuser" />
<property name="Pool.MaximumActiveConnections" value="10" />
<property name="Pool.MaximumIdleConnections" value="5" />
<property name="Pool.MaximumCheckoutTime" value="120000" />
<property name="Pool.TimeToWait" value="500" />
<property name="Pool.PingQuery" value="select 1 from dual" />
<property name="Pool.PingEnabled" value="false" />
<property name="Pool.PingConnectionsOlderThan" value="1" />
<property name="Pool.PingConnectionsNotUsedFor" value="1" />
</dataSource>
</transactionManager>
<sqlMap resource="person.xml" />
</sqlMapConfig>
1——————————person.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="User">
<typeAlias alias="person" type="com.neusoft.test.spib.pojo.Person" />
<insert id="insertPerson" parameterClass="person">
INSERT INTO Test_String_64 (id,no,name,password,age) VALUES (#id#,#no#, #name#,#password#,#age# )
</insert>
<select id="getPerson" parameterClass="java.lang.String" resultClass="person">
<![CDATA[
SELECT id,no,name,password,age FROM Test_String_64
]]>
</select>
</sqlMap>
在dao下加入PersonDao.java接口
package com.neusoft.test.spib.dao;
import java.util.List;
import com.neusoft.test.spib.pojo.Person;
public interface PersonDao {
public boolean insert(Person person);
public List<Person> query();
public boolean insertPersons(List<Person> personList);
}
在impl下加入PersPersonImpl类 实现接口
package com.neusoft.test.spib.impl;
import java.io.Reader;
import java.util.List;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import com.neusoft.test.spib.dao.PersonDao;
import com.neusoft.test.spib.pojo.Person;
public class PersonImpl implements PersonDao {
public boolean insert(Person person) {
String resource="sql-map-config.xml";
SqlMapClient sqlMapClient=null;
try{
Reader reader=Resources.getResourceAsReader(resource);
sqlMapClient=SqlMapClientBuilder.buildSqlMapClient(reader);
sqlMapClient.startTransaction();
sqlMapClient.insert("insertPerson", person);
sqlMapClient.commitTransaction();
return true;
}catch (Exception e) {
return false;
}
}
public List<Person> query() {
return null;
}
public boolean insertPersons(List<Person> personList) {
String resource="sql-map-config.xml";
SqlMapClient sqlMapClient=null;
for(Person p:personList){
try{
Reader reader=Resources.getResourceAsReader(resource);
sqlMapClient=SqlMapClientBuilder.buildSqlMapClient(reader);
sqlMapClient.startTransaction();
sqlMapClient.insert("insertPerson", p);
sqlMapClient.commitTransaction();
}catch (Exception e) {
e.printStackTrace();
}
}
return false;
}
}
在pojo下加入person类
package com.neusoft.test.spib.pojo;
import java.util.List;
public class Person
{
private String id;
private String no;
private String name;
private String password;
private String age;
List<Person> personrList;
public List<Person> getPersonList()
{
return personrList;
}
public void setPersonList(List<Person> personrList)
{
this.personrList = personrList;
}
public Person(){}
public Person(String id,String no,String name,String password,String age){
this.id = id;
this.no = no;
this.name= name;
this.password = password;
this.age = age;
}
public String getId()
{
return id;
}
public String getNo()
{
return no;
}
public void setNo(String no)
{
this.no = no;
}
public void setId(String id)
{
this.id = id;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password = password;
}
public String getAge()
{
return age;
}
public void setAge(String age)
{
this.age = age;
}
public void print(){
System.out.println(this.getId()+" "+this.getNo()+" "+this.getName()+" "+this.getPassword()+" "+this.getAge());
}
public static Person StaticCreatePerson(){
return new Person("333","3333","小李","123","30");
}
public Person CreatePerson(){
return new Person("444","444","小王","123","30");
}
}
在main下加入Test类
package com.neusoft.test.spib.main;
import java.util.List;
import com.neusoft.test.spib.dao.PersonDao;
import com.neusoft.test.spib.impl.PersonImpl;
import com.neusoft.test.spib.pojo.Person;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test
{
/**
* {方法功能中文描述}
*
* @param args
* @author:韩超
*/
public static void main(String[] args)
{
// // 构造器和属性注入
// ApplicationContext applicationContext=new ClassPathXmlApplicationContext(new String("applicationContext-web.xml"));
// Person person=(Person)applicationContext.getBean("person");
// Person person2=(Person)applicationContext.getBean("person1");
// Person person3=(Person)applicationContext.getBean("person2");
// person.print();
// person2.print();
// person3.print();
//
// //静态工厂实例化
// // ApplicationContext applicationContext= new ClassPathXmlApplicationContext(new String("applicationContext-web.xml"));
// Person person1 = (Person)applicationContext.getBean("beanFactory");
// person1.StaticCreatePerson().print();
// //动态工厂实例化
// // ApplicationContext applicationContext= new ClassPathXmlApplicationContext(new String("applicationContext-web.xml"));
// Person person5 = (Person)applicationContext.getBean("person5");
// person5.CreatePerson().print();
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(new String( "applicationContext-web.xml"));
Person person=(Person)applicationContext.getBean("persons");
List<Person> personlist=person.getPersonList();
PersonDao persondao = new PersonImpl();
persondao.insertPersons(personlist);
System.out.println("*****************");
for(Person p: personlist){
System.out.println(p.getId()+" "+p.getNo()+" "+p.getName()+" "+p.getPassword()+" "+p.getAge());
}
}
}