iBATIS入门程序的示例分析
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,小编给大家分享一下iBATIS入门程序的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!iBATIS入门程序第一步:author.javapackage com.ibatis;
千家信息网最后更新 2025年02月23日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安全错误
数据库的锁怎样保障安全
创世宝可梦服务器服装在哪
江西软件开发电话多少
一家从事应用软件开发
京东用的是什么服务器
网络技术维护工程实训报告
l辽宁软件开发
软件连接服务器打不开
网络安全责任制原则
安阳哪个学校有计算机网络技术
西安培训软件开发的学校
呼市网络安全培训机构
苏州网络技术服务咨询报价
厦门软件开发中小型企业
手机 服务器出错
乌鲁木齐悬挂式车路协同服务器
修改数据库信息
软件开发 做技术好还是管理
江苏省城市数据库
centos安装数据库
数据库报表求和视频
南充市网络安全宣传活动
浙江宁海网络技术公司
河源定制化精益软件开发
rust实现kv数据库
郑州最大的互联网科技公司
上海速荣互联网科技
轻量级应用服务器能跑代码吗
江西通信网络安全知识答题答案
网络安全监测装置 端口
云是不是相当于服务器