- 浏览: 5669 次
spring框架整合ibatis的项目实例代码
博客分类: java
spring
ibatisspring整合 .
原创整理不易,转载请注明出处:spring框架整合ibatis的项目实例代码
代码下载地址:http://www.zuidaima.com/share/1780211932679168.htm
这两天一直在研究ibatis与spring的整合 一个小小的demo搞的我头晕目眩的,但程序一旦跑起来了,突然有一种豁然开朗,重见天日,感觉生活很美好的感觉!,也许,这就是那一行行的代码带给我们的不同享受吧。呵呵,废话就不多说了。
在此先引用几句别人的资料。。。
Spring通过DAO模式,提供了对iBATIS的良好支持。SqlMapClient对象是iBATIS中的主要对象,我们可以通过配置让spring来管理SqlMapClient对象的创建。
与hibernate类似,Spring提供了SqlMapClientDaoSupport对象,我们的DAO可以继承这个类,通过它所提供的SqlMapClientTemplate对象来操纵数据库。看起来这些概念都与hibernate类似。
通过SqlMapClientTemplate来操纵数据库的CRUD是没有问题的。此篇文章没有进行事务处理。
本文采用ibatis+spring+mysql 进行编写
数据库脚本如下
create database ibatis;
create table person(
id int primary key,
name varchar(10),
sex int
);
一:要有一个PO类
Person.java
Java代码 复制代码 收藏代码
1.package com.zuidaima.po;
2.
3.import java.io.Serializable;
4.
5.public class Person implements Serializable{
6. /**
7. *
8. */
9. private static final long serialVersionUID = -517413165963030507L;
10. /**
11. *
12. */
13. private int id;
14. private String name;
15. private int sex;
16.
17. public Person(){
18.
19. }
20. public Person(int id,String name,int sex){
21. this.id = id;
22. this.name = name;
23. this.sex = sex;
24. }
25. public int getId() {
26. return id;
27. }
28. public void setId(int id) {
29. this.id = id;
30. }
31. public String getName() {
32. return name;
33. }
34. public void setName(String name) {
35. this.name = name;
36. }
37. public int getSex() {
38. return sex;
39. }
40. public void setSex(int sex) {
41. this.sex = sex;
42. }
43.
44.}
二:DAO接口类
IAction.java
Java代码 复制代码 收藏代码
1.package com.zuidaima.dao;
2.
3.import java.util.List;
4.
5.import po.Person;
6.
7.public interface IAction {
8. public boolean insertPerson(Person person); //添加
9. public boolean deleteById(int id); //删除
10. public boolean updatePerson(Person person); //修改
11. public Person queryById(int id); //根据ID查询
12. public List<Person> queryAllPerson(); //查询全部
13.}
三:DAO实现类
ActionImpl.java 此类继承SqlMapClientSupport 实现IAction接口
Java代码 复制代码 收藏代码
1.package com.zuidaima.dao.impl;
2.
3.import java.io.IOException;
4.import java.io.Reader;
5.import java.sql.SQLException;
6.import java.util.List;
7.
8.import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
9.
10.import com.ibatis.common.resources.Resources;
11.import com.ibatis.sqlmap.client.SqlMapClient;
12.import com.ibatis.sqlmap.client.SqlMapClientBuilder;
13.import com.ibatis.sqlmap.client.SqlMapSession;
14.
15.import po.Person;
16.import dao.IAction;
17.
18.public class ActionImpl extends SqlMapClientDaoSupport implements IAction {
19.
20. //添加操作
21. @Override
22. public boolean insertPerson(Person person) {
23. // TODO Auto-generated method stub
24. getSqlMapClientTemplate().insert("insertPerson",person);
25. return false;
26. }
27.
28. //删除操作
29. @Override
30. public boolean deleteById(int id) {
31. // TODO Auto-generated method stub
32. getSqlMapClientTemplate().delete("deleteById", id);
33. return false;
34. }
35.
36.
37.
38. //查询全部
39. @Override
40. public List<Person> queryAllPerson() {
41. // TODO Auto-generated method stub
42. List<Person> persons = getSqlMapClientTemplate().queryForList("queryAllPerson");
43. return persons;
44. }
45.
46. @Override
47. public Person queryById(int id) {
48. // TODO Auto-generated method stub
49.
50.
51. //自己添加实现代码
52. return null;
53.}
54.
55.@Override
56.public boolean updatePerson(Person person) {
57. // TODO Auto-generated method stub
58.
59.
60. //自己添加实现代码
61. return false;
62.}
四:既然是ibatis spring整合 那就必须要有ibatis的配置文件
SqlMapConfig.xml
Xml代码 复制代码 收藏代码
1.<?xml version="1.0" encoding="UTF-8" ?>
2.<!DOCTYPE sqlMapConfig
3. PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
4. "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
5. <sqlMapConfig>
6.<!--此处一定不能有<settings/> 标签-->
7. <!-- <settings cacheModelsEnabled="true"
8. enhancementEnabled="true"
9. lazyLoadingEnabled="true"
10. errorTracingEnabled="true"
11. maxRequests="32"
12. maxSessions="10"
13. maxTransactions="5"
14. useStatementNamespaces="false" /> -->
15.
16. <sqlMap resource="po/Person.xml" />
17.
18.</sqlMapConfig>
SqlMapClient.xml里本应该有数据源的配置的 使用spring之后数据源的配置移植到了spring上
五:Person.xml
里面配置了一下对数据的增删改查操作
Xml代码 复制代码 收藏代码
1.<?xml version="1.0" encoding="UTF-8"?>
2.<!DOCTYPE sqlMap
3.PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
4."http://www.ibatis.com/dtd/sql-map-2.dtd">
5.<sqlMap>
6. <typeAlias alias="person" type="po.Person" />
7.
8. <insert id="insertPerson" parameterClass="po.Person">
9. <![CDATA[
10. insert into person values (#id#,#name#,#sex#)
11. ]]>
12. </insert>
13.
14. <delete id="deleteById" parameterClass="int">
15. <![CDATA[
16. delete from person where id=#id#
17. ]]>
18. </delete>
19.
20. <update id="updatePerson" parameterClass="po.Person">
21. <![CDATA[
22. update person set name=#name#,sex=#sex# where id=#id#
23. ]]>
24. </update>
25.
26. <select id="queryById" parameterClass="int" resultClass="po.Person">
27. <![CDATA[
28. select * from person where id=#id#
29. ]]>
30. </select>
31.
32. <select id="queryAllPerson" cacheModel="personCache" resultClass="po.Person">
33. <![CDATA[
34. select * from person
35. ]]>
36. </select>
37.</sqlMap>
六:下面最重要的也就是配置applicationContext.xml了
Xml代码 复制代码 收藏代码
1.<?xml version="1.0" encoding="UTF-8"?>
2.<beans xmlns="http://www.springframework.org/schema/beans"
3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
5.
6. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
7. <property name="driverClassName" value="com.mysql.jdbc.Driver" />
8. <property name="url" value="jdbc:mysql://localhost:3306/ibatis" />
9. <property name="username" value="root" />
10. <property name="password" value="1" />
11. </bean>
12.
13. <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
14. <property name="configLocation"> <!-- name 为configLocation或s 不可为其他 -->
15. <value>SqlMapConfig.xml</value> <!-- 不区分大小写,路径前可加'/' -->
16. </property>
17.
18. <!-- dataSource不是必需 -->
19. <property name="dataSource">
20. <ref local="dataSource" />
21. </property>
22. </bean>
23.
24. <bean id="personDAO" class="dao.impl.ActionImpl">
25. <!-- dataSource不是必需 -->
26. <property name="dataSource">
27. <ref local="dataSource" />
28. </property>
29.
30. <!-- sqlMapClient必需 -->
31. <property name="sqlMapClient">
32. <ref local="sqlMapClient"/>
33. </property>
34. </bean>
35.
36. <!-- transactionManager不是必需 -->
37. <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
38. <property name="dataSource">
39. <ref local="dataSource" />
40. </property>
41. </bean>
42.</beans>
注释里面的必需或不是必需都是本人多次试验的,至于为什么是必需不必需 其中的原理我也不是能太讲清楚,在此先是这些写罢了。
里面的每一个节点,属性,如果不太理解,可以上网查一些其他资料。
七:编写测试类
此类利用junit进行测试。只测试了部分功能。
Java代码 复制代码 收藏代码
1.package com.zuidaima.dao.impl;
2.
3.import java.util.Iterator;
4.import java.util.List;
5.
6.import org.junit.Test;
7.import org.springframework.context.ApplicationContext;
8.import org.springframework.context.support.ClassPathXmlApplicationContext;
9.
10.import po.Person;
11.
12.
13.public class ActionImplTest {
14. private static ApplicationContext applicationContext = null; //提供静态ApplicationContext
15. static{
16. applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); //实例化
17. }
18. //添加操作
19. @Test
20. public void testInsertPerson(){
21. ActionImpl s = (ActionImpl)applicationContext.getBean("personDAO");
22. s.insertPerson(new Person(1,"zhangsan",2));
23. }
24.
25. //删除操作
26. @Test
27. public void testDeletePerson(){
28. ActionImpl s = (ActionImpl)applicationContext.getBean("personDAO");
29. s.deleteById(1);
30. }
31.
32. //查询全部
33. @Test
34. public void testQueryAllPerson(){
35. ActionImpl s = (ActionImpl)applicationContext.getBean("personDAO");
36. List<Person> persons = s.queryAllPerson();
37. //System.out.println(persons.size());
38. Iterator<Person> ite = persons.iterator();
39. while(ite.hasNext()){
40. Person person = ite.next();
41. System.out.print("ID: "+person.getId());
42. System.out.print(" Name: "+person.getName());
43. System.out.print(" Sex: "+person.getSex());
44. System.out.println();
45. }
46. }
47.}
八:如需记录日志 则要log4j.properties
Xml代码 复制代码 收藏代码
1.#log4j.rootLogger=DEBUG, stdout
2.#log4j.appender.stdout=org.apache.log4j.ConsoleAppender
3.#log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
4.#log4j.appender.stdout.layout.ConversionPattern=%c{1} - %m%n
5.#log4j.logger.java.sql.PreparedStatement=DEBUG
6.log4j.rootLogger=DEBUG, stdout, fileout
7.#log4j.logger.test=info
8.#log4j.logger.org.apache.jasper = DEBUG
9.#log4j.logger.org.apache.catalina.startup.TldConfig = DEBUG
10.#log4j.logger.org.apache.catalina.session.ManagerBase = DEBUG
11.
12.log4j.logger.com.fiscal = DEBUG
13.log4j.logger.com.system = DEBUG
14.
15.log4j.logger.com.ibatis = DEBUG
16.log4j.logger.com.ibatis.common.jdbc.SimpleDataSource = DEBUG
17.log4j.logger.com.ibatis.common.jdbc.ScriptRunner = DEBUG
18.log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate = DEBUG
19.log4j.logger.java.sql.Connection = DEBUG
20.log4j.logger.java.sql.Statement = DEBUG
21.log4j.logger.java.sql.PreparedStatement = DEBUG, fileout
22.log4j.logger.java.sql.ResultSet = DEBUG
23.
24.log4j.appender.stdout=org.apache.log4j.ConsoleAppender
25.
26.log4j.appender.fileout=org.apache.log4j.RollingFileAppender
27.log4j.appender.fileout.File=C\:\\ibatis.log
28.log4j.appender.fileout.MaxFileSize=10000KB
29.
30.log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
31.log4j.appender.stdout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH\:mm\:ss} \:%m%n
32.log4j.appender.fileout.layout=org.apache.log4j.PatternLayout
33.log4j.appender.fileout.layout.ConversionPattern=[%-5p]_%d{yyyy-MM-dd HH\:mm\:ss} \:%m%n
34.
35.#log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
36.
37.# log4j.logger.org=info
九:已经到最后了,我觉得这最后的才是最最重要的,就是一下jar包问题
我调试了很长时间 一大部分时间是jar问题
在此列出一下我认为能够跑起来这个小程序所需的一下jar包
如没有,可网上下载。
1.ibaits-2.3.4.jar
2.spring.jar
3.mysql-connector-java-bin.jar
4.commons-dbcp-1.4.jar
5.commons-pool-1.5.6.jar
6.spring-orm-2.5.6.jar //已集成到spring.jar里
7.//记录日志所需
8. log4j-1.2.15.jar
9.commons-logging.jar
下面是本人的目录结构图
博客分类: java
spring
ibatisspring整合 .
原创整理不易,转载请注明出处:spring框架整合ibatis的项目实例代码
代码下载地址:http://www.zuidaima.com/share/1780211932679168.htm
这两天一直在研究ibatis与spring的整合 一个小小的demo搞的我头晕目眩的,但程序一旦跑起来了,突然有一种豁然开朗,重见天日,感觉生活很美好的感觉!,也许,这就是那一行行的代码带给我们的不同享受吧。呵呵,废话就不多说了。
在此先引用几句别人的资料。。。
Spring通过DAO模式,提供了对iBATIS的良好支持。SqlMapClient对象是iBATIS中的主要对象,我们可以通过配置让spring来管理SqlMapClient对象的创建。
与hibernate类似,Spring提供了SqlMapClientDaoSupport对象,我们的DAO可以继承这个类,通过它所提供的SqlMapClientTemplate对象来操纵数据库。看起来这些概念都与hibernate类似。
通过SqlMapClientTemplate来操纵数据库的CRUD是没有问题的。此篇文章没有进行事务处理。
本文采用ibatis+spring+mysql 进行编写
数据库脚本如下
create database ibatis;
create table person(
id int primary key,
name varchar(10),
sex int
);
一:要有一个PO类
Person.java
Java代码 复制代码 收藏代码
1.package com.zuidaima.po;
2.
3.import java.io.Serializable;
4.
5.public class Person implements Serializable{
6. /**
7. *
8. */
9. private static final long serialVersionUID = -517413165963030507L;
10. /**
11. *
12. */
13. private int id;
14. private String name;
15. private int sex;
16.
17. public Person(){
18.
19. }
20. public Person(int id,String name,int sex){
21. this.id = id;
22. this.name = name;
23. this.sex = sex;
24. }
25. public int getId() {
26. return id;
27. }
28. public void setId(int id) {
29. this.id = id;
30. }
31. public String getName() {
32. return name;
33. }
34. public void setName(String name) {
35. this.name = name;
36. }
37. public int getSex() {
38. return sex;
39. }
40. public void setSex(int sex) {
41. this.sex = sex;
42. }
43.
44.}
二:DAO接口类
IAction.java
Java代码 复制代码 收藏代码
1.package com.zuidaima.dao;
2.
3.import java.util.List;
4.
5.import po.Person;
6.
7.public interface IAction {
8. public boolean insertPerson(Person person); //添加
9. public boolean deleteById(int id); //删除
10. public boolean updatePerson(Person person); //修改
11. public Person queryById(int id); //根据ID查询
12. public List<Person> queryAllPerson(); //查询全部
13.}
三:DAO实现类
ActionImpl.java 此类继承SqlMapClientSupport 实现IAction接口
Java代码 复制代码 收藏代码
1.package com.zuidaima.dao.impl;
2.
3.import java.io.IOException;
4.import java.io.Reader;
5.import java.sql.SQLException;
6.import java.util.List;
7.
8.import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
9.
10.import com.ibatis.common.resources.Resources;
11.import com.ibatis.sqlmap.client.SqlMapClient;
12.import com.ibatis.sqlmap.client.SqlMapClientBuilder;
13.import com.ibatis.sqlmap.client.SqlMapSession;
14.
15.import po.Person;
16.import dao.IAction;
17.
18.public class ActionImpl extends SqlMapClientDaoSupport implements IAction {
19.
20. //添加操作
21. @Override
22. public boolean insertPerson(Person person) {
23. // TODO Auto-generated method stub
24. getSqlMapClientTemplate().insert("insertPerson",person);
25. return false;
26. }
27.
28. //删除操作
29. @Override
30. public boolean deleteById(int id) {
31. // TODO Auto-generated method stub
32. getSqlMapClientTemplate().delete("deleteById", id);
33. return false;
34. }
35.
36.
37.
38. //查询全部
39. @Override
40. public List<Person> queryAllPerson() {
41. // TODO Auto-generated method stub
42. List<Person> persons = getSqlMapClientTemplate().queryForList("queryAllPerson");
43. return persons;
44. }
45.
46. @Override
47. public Person queryById(int id) {
48. // TODO Auto-generated method stub
49.
50.
51. //自己添加实现代码
52. return null;
53.}
54.
55.@Override
56.public boolean updatePerson(Person person) {
57. // TODO Auto-generated method stub
58.
59.
60. //自己添加实现代码
61. return false;
62.}
四:既然是ibatis spring整合 那就必须要有ibatis的配置文件
SqlMapConfig.xml
Xml代码 复制代码 收藏代码
1.<?xml version="1.0" encoding="UTF-8" ?>
2.<!DOCTYPE sqlMapConfig
3. PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
4. "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
5. <sqlMapConfig>
6.<!--此处一定不能有<settings/> 标签-->
7. <!-- <settings cacheModelsEnabled="true"
8. enhancementEnabled="true"
9. lazyLoadingEnabled="true"
10. errorTracingEnabled="true"
11. maxRequests="32"
12. maxSessions="10"
13. maxTransactions="5"
14. useStatementNamespaces="false" /> -->
15.
16. <sqlMap resource="po/Person.xml" />
17.
18.</sqlMapConfig>
SqlMapClient.xml里本应该有数据源的配置的 使用spring之后数据源的配置移植到了spring上
五:Person.xml
里面配置了一下对数据的增删改查操作
Xml代码 复制代码 收藏代码
1.<?xml version="1.0" encoding="UTF-8"?>
2.<!DOCTYPE sqlMap
3.PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
4."http://www.ibatis.com/dtd/sql-map-2.dtd">
5.<sqlMap>
6. <typeAlias alias="person" type="po.Person" />
7.
8. <insert id="insertPerson" parameterClass="po.Person">
9. <![CDATA[
10. insert into person values (#id#,#name#,#sex#)
11. ]]>
12. </insert>
13.
14. <delete id="deleteById" parameterClass="int">
15. <![CDATA[
16. delete from person where id=#id#
17. ]]>
18. </delete>
19.
20. <update id="updatePerson" parameterClass="po.Person">
21. <![CDATA[
22. update person set name=#name#,sex=#sex# where id=#id#
23. ]]>
24. </update>
25.
26. <select id="queryById" parameterClass="int" resultClass="po.Person">
27. <![CDATA[
28. select * from person where id=#id#
29. ]]>
30. </select>
31.
32. <select id="queryAllPerson" cacheModel="personCache" resultClass="po.Person">
33. <![CDATA[
34. select * from person
35. ]]>
36. </select>
37.</sqlMap>
六:下面最重要的也就是配置applicationContext.xml了
Xml代码 复制代码 收藏代码
1.<?xml version="1.0" encoding="UTF-8"?>
2.<beans xmlns="http://www.springframework.org/schema/beans"
3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
5.
6. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
7. <property name="driverClassName" value="com.mysql.jdbc.Driver" />
8. <property name="url" value="jdbc:mysql://localhost:3306/ibatis" />
9. <property name="username" value="root" />
10. <property name="password" value="1" />
11. </bean>
12.
13. <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
14. <property name="configLocation"> <!-- name 为configLocation或s 不可为其他 -->
15. <value>SqlMapConfig.xml</value> <!-- 不区分大小写,路径前可加'/' -->
16. </property>
17.
18. <!-- dataSource不是必需 -->
19. <property name="dataSource">
20. <ref local="dataSource" />
21. </property>
22. </bean>
23.
24. <bean id="personDAO" class="dao.impl.ActionImpl">
25. <!-- dataSource不是必需 -->
26. <property name="dataSource">
27. <ref local="dataSource" />
28. </property>
29.
30. <!-- sqlMapClient必需 -->
31. <property name="sqlMapClient">
32. <ref local="sqlMapClient"/>
33. </property>
34. </bean>
35.
36. <!-- transactionManager不是必需 -->
37. <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
38. <property name="dataSource">
39. <ref local="dataSource" />
40. </property>
41. </bean>
42.</beans>
注释里面的必需或不是必需都是本人多次试验的,至于为什么是必需不必需 其中的原理我也不是能太讲清楚,在此先是这些写罢了。
里面的每一个节点,属性,如果不太理解,可以上网查一些其他资料。
七:编写测试类
此类利用junit进行测试。只测试了部分功能。
Java代码 复制代码 收藏代码
1.package com.zuidaima.dao.impl;
2.
3.import java.util.Iterator;
4.import java.util.List;
5.
6.import org.junit.Test;
7.import org.springframework.context.ApplicationContext;
8.import org.springframework.context.support.ClassPathXmlApplicationContext;
9.
10.import po.Person;
11.
12.
13.public class ActionImplTest {
14. private static ApplicationContext applicationContext = null; //提供静态ApplicationContext
15. static{
16. applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); //实例化
17. }
18. //添加操作
19. @Test
20. public void testInsertPerson(){
21. ActionImpl s = (ActionImpl)applicationContext.getBean("personDAO");
22. s.insertPerson(new Person(1,"zhangsan",2));
23. }
24.
25. //删除操作
26. @Test
27. public void testDeletePerson(){
28. ActionImpl s = (ActionImpl)applicationContext.getBean("personDAO");
29. s.deleteById(1);
30. }
31.
32. //查询全部
33. @Test
34. public void testQueryAllPerson(){
35. ActionImpl s = (ActionImpl)applicationContext.getBean("personDAO");
36. List<Person> persons = s.queryAllPerson();
37. //System.out.println(persons.size());
38. Iterator<Person> ite = persons.iterator();
39. while(ite.hasNext()){
40. Person person = ite.next();
41. System.out.print("ID: "+person.getId());
42. System.out.print(" Name: "+person.getName());
43. System.out.print(" Sex: "+person.getSex());
44. System.out.println();
45. }
46. }
47.}
八:如需记录日志 则要log4j.properties
Xml代码 复制代码 收藏代码
1.#log4j.rootLogger=DEBUG, stdout
2.#log4j.appender.stdout=org.apache.log4j.ConsoleAppender
3.#log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
4.#log4j.appender.stdout.layout.ConversionPattern=%c{1} - %m%n
5.#log4j.logger.java.sql.PreparedStatement=DEBUG
6.log4j.rootLogger=DEBUG, stdout, fileout
7.#log4j.logger.test=info
8.#log4j.logger.org.apache.jasper = DEBUG
9.#log4j.logger.org.apache.catalina.startup.TldConfig = DEBUG
10.#log4j.logger.org.apache.catalina.session.ManagerBase = DEBUG
11.
12.log4j.logger.com.fiscal = DEBUG
13.log4j.logger.com.system = DEBUG
14.
15.log4j.logger.com.ibatis = DEBUG
16.log4j.logger.com.ibatis.common.jdbc.SimpleDataSource = DEBUG
17.log4j.logger.com.ibatis.common.jdbc.ScriptRunner = DEBUG
18.log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate = DEBUG
19.log4j.logger.java.sql.Connection = DEBUG
20.log4j.logger.java.sql.Statement = DEBUG
21.log4j.logger.java.sql.PreparedStatement = DEBUG, fileout
22.log4j.logger.java.sql.ResultSet = DEBUG
23.
24.log4j.appender.stdout=org.apache.log4j.ConsoleAppender
25.
26.log4j.appender.fileout=org.apache.log4j.RollingFileAppender
27.log4j.appender.fileout.File=C\:\\ibatis.log
28.log4j.appender.fileout.MaxFileSize=10000KB
29.
30.log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
31.log4j.appender.stdout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH\:mm\:ss} \:%m%n
32.log4j.appender.fileout.layout=org.apache.log4j.PatternLayout
33.log4j.appender.fileout.layout.ConversionPattern=[%-5p]_%d{yyyy-MM-dd HH\:mm\:ss} \:%m%n
34.
35.#log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
36.
37.# log4j.logger.org=info
九:已经到最后了,我觉得这最后的才是最最重要的,就是一下jar包问题
我调试了很长时间 一大部分时间是jar问题
在此列出一下我认为能够跑起来这个小程序所需的一下jar包
如没有,可网上下载。
1.ibaits-2.3.4.jar
2.spring.jar
3.mysql-connector-java-bin.jar
4.commons-dbcp-1.4.jar
5.commons-pool-1.5.6.jar
6.spring-orm-2.5.6.jar //已集成到spring.jar里
7.//记录日志所需
8. log4j-1.2.15.jar
9.commons-logging.jar
下面是本人的目录结构图
相关推荐
2. **Spring**:Spring框架是企业级Java应用的核心容器,提供了依赖注入(DI)和面向切面编程(AOP)等核心特性。它还包含了数据访问、Web、事务管理等多个模块。在与Struts2和iBatis的整合中,Spring主要负责组件的...
Spring框架则是一个全面的后端解决方案,包括依赖注入(DI)、面向切面编程(AOP)、事务管理等核心特性。在本项目中,Spring可以管理Struts2中的Action实例,通过DI实现对象间的协作。同时,Spring的AOP功能可以...
这个项目实例对于初学者来说是一份宝贵的资源,通过实际操作,可以更好地理解和掌握Spring3与iBatis的整合应用。记得仔细阅读项目文档,理解每一个配置和代码的作用,这将对你的编程技能提升大有裨益。
在整合 Spring 和 iBATIS 进行项目开发时,主要涉及以下几个关键知识点: 1. **依赖注入 (Dependency Injection, DI)**:Spring 的核心特性之一,通过 DI 可以使代码更松耦合,易于测试和维护。在整合 iBATIS 时,...
Spring框架与IBatis(现称为MyBatis)的整合为开发者提供了一种更简洁、更强大的数据库访问方式。Spring通过其内置的支持机制极大地简化了原有的IBatis访问代码,并且提供了与JdbcTemplate一致的异常处理方式。这种...
在这个"struts1+spring2.0+ibatis整合实例"中,开发者创建了一个小型的应用,演示了如何将这三个框架集成在一起,以构建一个功能完整的Web应用。这个实例中,MySQL5被选为后端数据库,用于存储数据。 首先,让我们...
总结来说,"spring+ibatis配置实例"是一个完整的Java Web项目,它展示了如何利用Spring框架进行服务层和控制层的构建,结合iBatis进行数据访问。通过学习这个实例,开发者可以更好地理解Spring和iBatis的整合使用,...
其次,Spring框架是企业级应用的核心,它提供依赖注入(DI)和面向切面编程(AOP),便于管理对象和事务。Spring还包含了一个强大的数据访问抽象层,可以集成多种持久化技术,包括iBatis。在Spring中,我们可以创建...
本文将深入探讨Spring整合iBATIS的过程,以及如何通过源代码理解和实践这一过程。 首先,了解iBATIS的基本概念。iBATIS是一个SQL映射框架,它将SQL语句与Java代码分离,使得开发者可以专注于SQL的编写,同时避免了...
在Java开发领域,Spring框架以其强大的依赖注入和面向切面编程能力被广泛应用,而iBatis作为一个轻量级的持久层框架,以其灵活的SQL映射机制受到开发者喜爱。将两者整合,可以充分利用Spring的管理能力,简化数据库...
在整合iBatis时,Spring可以配置SqlSessionFactoryBean,管理数据库连接池和SqlSession工厂。然后通过Mapper接口,将SQL操作声明式地定义在XML映射文件中,Spring会自动将这些接口与XML文件关联,使得Service层可以...
Spring框架可以与iBatis无缝集成,实现数据库操作的声明式事务管理。 在"webwork+spring+ibatis简单实例"中,可能包含以下步骤: 1. **项目结构**:首先,项目会有一个标准的Maven或Gradle构建文件,用于管理和...
在这个实例程序中,"Struts2+Spring2+iBatis开发实例程序"显然是一个整合了这三大框架的实际项目,用于演示或教学如何将这些技术有效地集成在一起。 Struts2作为MVC(模型-视图-控制器)框架,负责处理HTTP请求,...
6. 数据库设计:根据业务需求设计数据库表结构,创建相应的数据库文件,例如struts_ibatis_spring_框架整合_数据库.sql,用于初始化数据库。 7. 文档编写:提供详细的整合过程文档,解释每个步骤的具体操作,以及...
Spring框架是企业级应用开发的基石,提供了强大的依赖注入(DI)和面向切面编程(AOP)功能。在本实例中,Spring被用来管理Bean的生命周期和组装对象间的依赖关系。通过Spring的ApplicationContext,我们可以方便地...
**Spring框架** Spring是Java企业级应用的核心框架,它提供了依赖注入(DI)和面向切面编程(AOP)等特性,有助于简化代码结构和提高可测试性。在本实例中,Spring负责管理Bean的生命周期和事务管理。通过Spring的...
2. **Spring框架**:Spring是一个全面的企业应用框架,提供了依赖注入(DI)和面向切面编程(AOP)等功能。在本实例中,Spring作为容器管理iBATIS和Struts2的bean,负责各组件间的协调和事务管理。Spring还提供了一...
- **Spring框架**:Spring是一个开源的Java平台框架,它为开发Java应用程序提供了一种全面的基础架构支持。Spring的核心特性包括依赖注入(DI)、面向切面编程(AOP)、事务管理等。 - **ibatis**(现更名为MyBatis...
Spring MVC是Spring框架的一部分,是一个用于构建Web应用程序的模型-视图-控制器(MVC)架构。它提供了丰富的功能,如依赖注入、数据验证、本地化、国际化等。通过使用Spring MVC,开发者可以将业务逻辑、用户界面和...