Ibatis-2.3.4.726 增删改查
来源:互联网 发布:电脑刷机软件 编辑:程序博客网 时间:2024/04/29 14:07
1. SqlMapConfig.xml 在src目录下
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMapConfigPUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN""http://www.ibatis.com/dtd/sql-map-config-2.dtd"><sqlMapConfig> <!-- 1. cacheModelsEnabled 是否启动sqlMapClient上的缓存机制; 2. enhancementEnabled是否针对POJO启用字节码增强机制以提升getter/setter的调用效能, 避免使用Java Reflect所带来的性能开销,同时也为Lazy Loading带来了极大的性能提升; 3. errorTracingEnabled 是否启用错误日志;在开发期间建议设为“true”以方便调试 4. lazyLoadingEnabled 是否启动延迟加载机制 5. maxRequests 最大并发请求数(Statement并发数) 5. maxTransactions 最大并发事务 6. maxSessions 最大Session数,即当前最大允许的并发sqlMapClient数(介于maxRequests和maxTransactions之间) 7. useStatementNamespaces 是否使用Statement命名空间(为true时,需要追加命名空间) --> <settings cacheModelsEnabled="true" enhancementEnabled="true" lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="32" maxSessions="10" maxTransactions="5" useStatementNamespaces="false" /> <!-- transactionManager 节点定义了ibatis的事务管理器 1. JDBC:通过传统JDBC Connection.commit/rollback实现事务支持 2. JTA:使用容器提供的JTA服务实现全局事务管理 3. EXTERNAL:外部事务管理,如EJB中使用ibatis,通过EJB的部署配置即可实现自动事务管理机制 此时ibatis将所有事务委托给外部容器管理 --> <transactionManager type="JDBC"> <!-- dataSource从属于transactionManager节点,用于设定ibatis运行期使用的DataSource属性 type属性: dataSource节点的type属性指定了dataSource的实现类型 1. SIMPLE: SIMPLE是ibatis内置的dataSource实现,其中实现了一个简单的数据库连接池机制, 对应ibatis 实现类为 com.ibatis.sqlmap.engine.datasource.SimpleDataSourceFactory。 2. DBCP: 基于Apache DBCP连接池组件实现的DataSource 封装,当无容器提供DataSource 服务时, 建议使用该选项,对应ibatis 实现类为com.ibatis.sqlmap.engine.datasource.DbcpDataSourceFactory。 3. JNDI: 使用J2EE 容器提供的DataSource 实现,DataSource 将通过指定的JNDI Name 从容器中获取。 对应ibatis 实现类为com.ibatis.sqlmap.engine.datasource.JndiDataSourceFactory。 --> <dataSource type="SIMPLE"> <!-- JDBC驱动 --> <!-- <property name="JDBC.Driver" value="oracle.jdbc.driver.OracleDriver" /> --> <property name="JDBC.Driver" value="com.mysql.jdbc.Driver" /> <!-- 数据库URL --> <!-- <property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@192.168.241.27:1521:orcl" /> --> <property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:3306/mytestdb" /> <!-- 数据库用户名 --> <property name="JDBC.Username" value="csz" /> <!-- 数据库密码 --> <property name="JDBC.Password" value="csz" /> <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 ACCOUNT" /> <property name="Pool.PingEnabled" value="false" /> <property name="Pool.PingConnectionsOlderThan" value="1" /> <property name="Pool.PingConnectionsNotUsedFor" value="1" /> </dataSource> </transactionManager> <!-- 指定映射文件的位置,配置中可出现多个sqlMap节点,以指定项目内所有映射文件 --> <sqlMap resource="com/ibatis/FirstIbatis.xml" /></sqlMapConfig>
2. log4j.xml文件,也在src目录下
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/' > <appender name="myConsole" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="[%d{dd HH:mm:ss,SSS\} %-5p] [%t] %c{2\} - %l%m%n" /> </layout> <!--过滤器设置输出的级别--> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="levelMin" value="debug" /> <param name="levelMax" value="warn" /> <param name="AcceptOnMatch" value="true" /> </filter> </appender> <appender name="myFile" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="D:/output.log" /><!-- 设置日志输出文件名 --> <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 --> <param name="Append" value="true" /> <param name="MaxBackupIndex" value="10" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%p (%c:%L)- %m%n" /> </layout> </appender> <appender name="activexAppender" class="org.apache.log4j.DailyRollingFileAppender"> <param name="File" value="E:/activex.log" /> <param name="DatePattern" value="'.'yyyy-MM-dd'.log'" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="[%d{MMdd HH:mm:ss SSS\} %-5p] [%t] %c{3\} - %m%n" /> </layout> </appender> <!-- 指定logger的设置,additivity指示是否遵循缺省的继承机制--> <logger name="com.runway.bssp.activeXdemo" additivity="false"> <priority value ="info"/> <appender-ref ref="activexAppender" /> </logger> <!-- 根logger的设置--> <root> <priority value ="debug"/> <appender-ref ref="myConsole"/> <appender-ref ref="myFile"/> </root> </log4j:configuration>
3. FirstIbatis.xml映射文件,在src\com\ibatis目录下
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE sqlMapPUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN""http://www.ibatis.com/dtd/sql-map-2.dtd"><sqlMap namespace="Ibatis"> <typeAlias alias="ibatis" type="com.ibatis.FirstIbatis"/> <!-- my own sql start --> <select id="getIbatis2" resultClass="ibatis"> select * from firstibatis </select> <!-- my own sql end --> <select id="getIbatis" parameterClass="java.lang.String" resultClass="ibatis"> select id, name, age from firstibatis where name = #name# </select> <update id="updateIbatis" parameterClass="ibatis"> UPDATE firstibatis SET name=#name#, age=#age# WHERE id = #id# </update> <insert id="insertIbatis" parameterClass="ibatis"> INSERT INTO firstibatis (id, name,age) VALUES (#id#, #name#, #age#) </insert> <delete id="deleteIbatis" parameterClass="java.lang.String"> delete from firstibatis where id = #value# </delete></sqlMap>
4. FirstIbatis.java, 在src/com/ibatis目录下
package com.ibatis;import java.io.Serializable;public class FirstIbatis implements Serializable{ private static final long serialVersionUID = 4054639727225043549L; private int id; private String name; private int age; public FirstIbatis() { super(); } public FirstIbatis(int id, String name, int age) { super(); this.id = id; this.name = name; this.age = age; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String toString(){ return id + " " + name + " " + age; }}
5. TestIbatis.java, 在src/com/ibatis目录下
package com.ibatis;import java.io.Reader;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Set;import org.apache.log4j.Logger;import com.ibatis.common.resources.Resources;import com.ibatis.sqlmap.client.SqlMapClient;import com.ibatis.sqlmap.client.SqlMapClientBuilder;public class TestIbatis { static Logger logger = Logger.getLogger(TestIbatis.class.getName()); /** * @param args */ public static void main(String[] args) { String path = System.getProperty("user.dir"); System.out.println(path); //String resource =path + File.separator + "src" + File.separator + "SqlMapConfig.xml"; String resource = "SqlMapConfig.xml"; //sqlMap系统初始化完毕,开始执行update操作 try { Reader reader = Resources.getResourceAsReader(resource); SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader); sqlMap.startTransaction();// Ibatis ibatis = new Ibatis();// ibatis.setId(new Integer(1));// ibatis.setName("Erica");// ibatis.setAge(new Integer(1));// sqlMap.insert("insertIbatis",ibatis); //增 //Object[] arr = new Object[]{2, "hello", 23};// FirstIbatis obj = new FirstIbatis();// obj.setId(2);// obj.setName("hello");// obj.setAge(23); //FirstIbatis ibatis = (FirstIbatis)sqlMap.insert("insertIbatis", obj); //删// int n = sqlMap.delete("deleteIbatis", "2");// if(n == 1) {// System.out.println("The record id of 2 is deleted!");// } //改 FirstIbatis obj = new FirstIbatis(); obj.setId(1); obj.setName("Erica"); obj.setAge(23); int n = sqlMap.update("updateIbatis",obj); if(n == 1) { System.out.println("The record id of 1 is updated!"); } //查 //FirstIbatis ibatis = (FirstIbatis)sqlMap.queryForObject("getIbatis", "Erica"); //System.out.println("Query for Erica: " + ibatis.toString()); List list = (List)sqlMap.queryForList("getIbatis2"); System.out.println(list.size() + list.toString()); FirstIbatis ibatis = null; for(int i = 0; i < list.size(); i ++) { ibatis = (FirstIbatis)list.get(i); System.out.println("Query firstibatis for List: " + ibatis.toString()); } sqlMap.commitTransaction(); } catch (Exception e) { // TODO: handle exception //e.printStackTrace(); logger.debug(e.toString()); } }}
所需jar包:
ibatis-2.3.4.726.jar, log4j-1.2.1.6, mysql-connector-java-5.0.4-bin.jar, proxool-0.9.1.jar
完整实例下载:
ibatis2.3.4.726增删改查源码实例.rar
- Ibatis-2.3.4.726 增删改查
- ibatis(基本增删改查)
- Ibatis 增删改查语句
- ibatis实现增删改查
- ibatis增删查改的一个例子
- 使用ibatis实现增删改查
- ibatis使用sql进行增删改查
- ibatis 入门例子 增删改查
- Ibatis的增删改查操作
- Ibatis 基础入门 增删改查
- 02-iBatis的增删改查操作
- 04-iBatis增删改查总结
- Ibatis基本的增删改查操作
- iBatis-iBatis基本操作(增删改查)
- 一个使用ibatis对数据库增删改查的例子
- 用ibatis写的一套增删改查
- iBatis的简单增删改查(CRUD)操作
- 第一个Ibatis增删改查例子(sqlserver2005)
- java代码块
- 名字相关的一些事
- HTML5 底层API概要
- RyMiniFramework(2)-命名规则
- int** a[3][4]这个数组占多大空间
- Ibatis-2.3.4.726 增删改查
- 在Windows7和Visual Studio 2010中编译DirectShow的例程AMCap的问题
- Android,谁动了我的内存(1)
- java 保留小数点
- 一个空类所占空间为1,多重继承的空类所占的空间还是1,但是虚继承涉及虚表(虚指针)所以所占的字节是4
- Hibernate + JPA + Spring MVC integrated Web Application - 4 easy steps
- c语言操作mysql学习日志
- MFC Tab Control控件的详细使用
- prim算法两种实现方法