iBATIS入门程序的示例分析
发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,小编给大家分享一下iBATIS入门程序的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!iBATIS入门程序第一步:author.javapackage com.ibatis;
千家信息网最后更新 2025年11月11日iBATIS入门程序的示例分析
小编给大家分享一下iBATIS入门程序的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
iBATIS入门程序第一步:author.java
package com.ibatis; public class Author { private int id; private String name; 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; } }iBATIS入门程序第二步:author.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="Author"﹥ ﹤!--模块配置--﹥ ﹤!--设置本映射文件中的别名--﹥ ﹤typeAlias alias="author" type="com.ibatis.Author" /﹥ ﹤!-- ﹤cacheModel type="LRU" ﹥ 设置缓存有效期,如果超出这个时间,则会清空缓存 ﹤flushInterval hours="24"﹥﹤/flushInterval﹥ 指定执行特定的statement时,清空缓存 ﹤flushOnExecute statement="updateAuthor"/﹥ SIZE:本cacheModel***容纳数据对象的数量 ﹤property value="1000"/﹥ ﹤/cacheModel﹥ 需要使用模块配置,如:﹤select resultClass="author" cacheModel="authorCache"﹥ 把记录使用cacheModel"authorCache"进行缓存,以后程序再使用statement进行数据查询,就直接 去缓存中取数据,而不是去数据库中取数据 --﹥ ﹤!--Statement配置--﹥ ﹤select resultClass="author"﹥ ﹤![CDATA[SELECT * FROM author]]﹥ ﹤/select﹥ ﹤update parameterClass="author"﹥ ﹤![CDATA[UPDATE author SET WHERE ﹥ ﹤/update﹥ ﹤delete parameterClass="author"﹥ delete from author WHERE ﹤/delete﹥ ﹤insert parameterClass="author"﹥ ﹤![CDATA[INSERT INTO author(id,name) VALUES(#id#,#name#)]]﹥ ﹤/insert﹥ ﹤/sqlMap﹥
iBATIS入门程序第三步:SqlMapConfig.properties
driver=com.microsoft.jdbc.sqlserver.SQLServerDriver url=jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=ibatis username=sa password=sa
iBATIS入门程序第四步:SqlMapConfig.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"﹥ ﹤!-- Ibatis配置文件--﹥ ﹤sqlMapConfig﹥ ﹤!-- 加载连接数据库属性文件 --﹥ ﹤properties resource="com/ibatis/SqlMapConfig.properties"/﹥ ﹤!-- cacheModelsEnabled:是否启动SqlMapClient的缓存机制。 enhancementEnabled:是否针对POJO启用字节码增加机制以提升geter/seter的调用效用,为延迟加载带来了及大的性能提升。 lazyLoadingEnabled:是否启用延迟加载机制。 maxRequests:***并大请求数。 maxSessions:***Session数,即当前***允许的开发SqlMapClient数 maxTransactions:***并发事务数。 --﹥ ﹤settings cacheModelsEnabled="true" enhancementEnabled="true" lazyLoadingEnabled="true" maxRequests="32" maxSessions="10" maxTransactions="5" useStatementNamespaces="false" /﹥ ﹤!-- datasource --﹥ ﹤transactionManager type="JDBC" ﹥ ﹤dataSource type="SIMPLE"﹥ ﹤!--JDBC驱动--﹥ ﹤property name=JDBC.Driver value="${driver}"/﹥ ﹤!--数据库URL--﹥ ﹤property value="${url}"/﹥ ﹤!--数据库用户名--﹥ ﹤property value="${username}"/﹥ ﹤!--数据库密码--﹥ ﹤property value="${password}"/﹥ ﹤!--不知道,在网站上查不出来,有时间再研究--﹥ ﹤property value="true" /﹥ ﹤!--数据库连接池可维持的***容量--﹥ ﹤property value="10"/﹥ ﹤!--数据库连接池中允许的可挂起连接数--﹥ ﹤property value="5"/﹥ ﹤!--数据库连接池中,连接被某个任务所占用的***时间--﹥ ﹤property value="120000"/﹥ ﹤!--当线程想从连接池中获取连接时,连接池中无可用连接,该参数设置线程所允许等待的最长时间--﹥ ﹤property value="500"/﹥ ﹤!--数据库连接状态检查语句--﹥ ﹤property value="select 1 from author"/﹥ ﹤!--是否允许检查连接状态--﹥ ﹤property value="false"/﹥ ﹤!--对持续连接超过设定值的连接进行检查--﹥ ﹤property value="1"/﹥ ﹤!--对空闲超过设定值的连接进行检查--﹥ ﹤property value="1"/﹥ ﹤/dataSource﹥ ﹤/transactionManager﹥ ﹤!--加载SqlMap文件--﹥ ﹤sqlMap resource="com/ibatis/author.xml" /﹥ ﹤/sqlMapConfig﹥iBATIS入门程序第五步:
package com.ibatis; import java.io.IOException; import java.io.Reader; import com.ibatis.common.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; public class SqlMapConf { //初始化SqlMapClient private static SqlMapClient sqlmapclient; static{ //定义ibatis配置文件的路径 String resource="com/ibatis/SqlMapConfig.xml"; try { //读取ibatis配置文件 Reader reader=Resources.getResourceAsReader(resource); //通过SqlMapClientBuilder创建SqlMapClient sqlmapclient=SqlMapClientBuilder.buildSqlMapClient(reader); } catch (IOException e) { // TODO Auto-generated catch block System.out.println("找不到SqlMapConfig.xml文件~~"); } } public static SqlMapClient getInstance(){ //返回sqlmapclient,SqlMapClient是ibatis的核心主建,提供数据操作的基础平台 return sqlmapclient; } /** * SqlMapClient的另一种创建方式 * XmlSqlMapClientBuilder xmlbuilder=new XmlSqlMapClientBuilder(); * SqlMapClient sqlmapclient=xmlbuilder.builderSqlMap(reader); * XmlSqlMapClientBuilder是ibatis2.0之后版本新引入的组件,用以取代1.X版本中的 * XmlSqlMapBuilder,其作用就是创建SqlMapClient。 */ }iBATIS入门程序第六步:
package com.ibatis; import java.sql.SQLException; import java.util.List; import java.util.*; import com.ibatis.sqlmap.client.SqlMapClient; /** * ibatis的事务管理器,目前只支持三种:JDBC,JTA,EXTERNAL * JDBC:通过传统的JDBC CONNECTION.COMIT/rollback实现事务支持 * JTA:使用容器提供的JTA服务实现全局事务管理 * EXTERNAL:外部事务管理,如EJB中使用IBATIS,通过EJB的部署配置即可实现自动的事务管理机制 * 。此时IBATIS将把所有的事务委托给外部容器进行管理 */ public class IbatisClient { private static SqlMapClient sqlmapclient=SqlMapConf.getInstance(); //根据主健ID修改NAME public static void updateAuthor(int id,String name){ Author author=new Author(); author.setId(id); author.setName(name); try { //事务开始,用的是JDBC的事务管理 sqlmapclient.startTransaction(); sqlmapclient.update("updateAuthor",author); sqlmapclient.commitTransaction(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); System.out.println("修改错误~~"); } finally{ try { sqlmapclient.endTransaction(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } //查询所有的记录,返回一个集合 public static List findAll(){ List list=null; try { sqlmapclient.startTransaction(); //0:设置从第几条记录开始 //1:设置显示记录记录 //list=sqlmapclient.queryForList("getAllAuthor",null,0,1); list=sqlmapclient.queryForList("getAllAuthor",null); sqlmapclient.commitTransaction(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); System.out.println("查询错误~~"); } finally{ try { sqlmapclient.endTransaction(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return list; } //添加操作 public static boolean insert(int id,String name){ boolean bool=false; Author author=new Author(); author.setId(id); author.setName(name); try { sqlmapclient.startTransaction(); sqlmapclient.insert("insertAuthor",author); bool=true; sqlmapclient.commitTransaction(); } catch (SQLException e) { // TODO Auto-generated catch block bool=false; e.printStackTrace(); System.out.println("添加错误~~"); } finally{ try { sqlmapclient.endTransaction(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return bool; } //删除操作 public static boolean delete(int id){ boolean bool=false; Author author=new Author(); author.setId(id); try { sqlmapclient.commitTransaction(); sqlmapclient.delete("deleteAuthor",author); bool=true; sqlmapclient.startTransaction(); } catch (SQLException e) { // TODO Auto-generated catch block bool=false; e.printStackTrace(); System.out.println("删除错误~~"); } finally{ try { sqlmapclient.endTransaction(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return bool; } public static void main(String str[]){ //删除 //boolean bool=IbatisClient.delete(3); //添加 //boolean bool=IbatisClient.insert(3,"wanwu"); //修改 //IbatisClient.updateAuthor(3,"jj"); //查询所有的记录 List list=IbatisClient.findAll(); Iterator iterator=list.iterator(); while(iterator.hasNext()){ Author author=(Author)iterator.next(); System.out.println("﹥ System.out.println("﹥ } } }看完了这篇文章,相信你对"iBATIS入门程序的示例分析"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
数据
程序
事务
数据库
文件
配置
缓存
管理
事务管理
时间
机制
错误
查询
检查
示例
分析
容器
模块
版本
状态
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
mc服务器优化
垫江it软件开发培训学校招生
王者注销掉的号怎么还在服务器
杨浦区个人数据库研发优点
网络安全防护 提升
创建mysql数据库连接
服务器资源论坛
浦东新区互联网教育科技
连云港服务器管理软件
孙子兵法与网络安全
宁夏儿火网络技术有限公司
内蒙古会计软件开发商家
网络技术能不能考二建
温州电脑软件开发计划
广东网络安全监察部门电话
多福玩家网络技术武汉有限公司
加大投入扶持重点网络安全技术
广州领闲科技互联网
等保网络安全法
远程云服务器
服务器驱动文件管理器
葫芦娃数据库娃
联通 服务器集采
广电网络技术创新课题
学生课程数据库包括三个表
数据库格教学教案小论文
企业经营数据库
数据库事物的四个级别
加大投入扶持重点网络安全技术
统信服务器操作系统产品手册