Hello Ibatis

本文介绍使用Ibatis框架实现数据库操作的过程,包括配置文件、映射文件的创建及基本的CRUD操作示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ibatis实现数据和数据查询

目通过用

 

软件环境

MYSQL

Ibatis2.3.0.667

mysql-connector-java-5.0.5

 

MYSQL中数据库test中创建t_user(create table(id int,name varchar(10),sex int);)

Field

Type

Null

Key

Default

Extra

id

Int(11)

YES

 

Null

 

Name

Varchar(10)

YES

 

Null

 

Sex

Int(11)

YES

 

Null

 

 

创建ibatis配置文件

ibatis配置文件描述和数据库相关的配置信息

 

 
<? xml version="1.0" encoding="UTF-8"  ?>
<! DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd" >
< sqlMapConfig >   
<!-- 用传统的JDBC实现事务处理 -->
  
< transactionManager  type ="JDBC" >  
<!-- ibatis内置的dataSource实现实现的是一个简单的数据库连接池 -->
  
< dataSource  type ="SIMPLE" >
       
<! —提供JDBC的驱动类-- >
      
< property  name ="JDBC.Driver"  value ="org.gjt.mm.mysql.Driver" />  
      
<! —数据库位置,用户名密码-- >
< property  name ="JDBC.ConnectionURL"  value ="jdbc:mysql://localhost/test" />  
      
< property  name ="JDBC.Username"  value ="root" />  
      
< property  name ="JDBC.Password"  value ="12201220" />
      
<! —数据库连接池用可维护的最大容量-- >  
      
< 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  resource ="com/ibatis/sample/User.xml" />  
</ sqlMapConfig >

创建映射文件

 

<?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">
   <!-- 定义了本映射文件中的别名,以避免过长变量值的反复书写 -->
  
< typeAlias  alias ="user"  type ="com.ibatis.sample.User" />  
  
<!-- 这里申明了一个名为"userCache"的 cacheModel -->
  
< cacheModel  id ="userCache"  type ="LRU" >  
<!-- 设定缓存有效期,如果超过此设定值,则将此CacheModel的缓存清空 -->
   
< flushInterval  hours ="24" />  
   
<! —当执行updateUser的时候本cacheModel清空-- >
   
< flushOnExecute  statement =" updateUser" />  
   
<!-- 本CacheModel中最大容纳的数据对象数量 -->
   
< property  name ="size"  value ="1000"   />  
  
</ cacheModel >  
  
<! —Statement名称-- >
< select  id ="getUser"  
  <!—statement的参数类型--
>
parameterClass="java.lang.String" 
  
<! —statement的返回值类型-- >
resultClass="user" 
  
<! —使用之前定义的那个catcheModel-- >
cacheModel="userCache" > 
  
<! —对应的SQL语句-- >
    
<![CDATA[  
    select  name, sex  from t_user  where name = #name# 
    
]]>  
</ select >  
<! —update的statement-- >
< update  id ="updateUser"  
    parameterClass
="user" >  
    UPDATE t_user 
   SET  
      name=#name#, 
      sex=#sex# 
  WHERE id = #id# 
</ update >  
<! —insert的statement-- >
< insert  id  ="insertUser"   paramterClass ="user" >
  Insert into t_user (id,name,sex) values(#id#,#name#,#sex#)
</ insert >
</ sqlMap >

 

程序代码

String resource  =   " com/ibatis/sample/SqlMapConfig.xml " ;
Reader reader;
reader 
=  Resources.getResourceAsReader(resource);
SqlMapClient sqlMap 
=  SqlMapClientBuilder.buildSqlMapClient(reader);
User user 
=   new  User();
user.setId(
new  Integer( 1 ));
user.setName(
" Erica " );
user.setSex(
new  Integer( 1 ));
//  sqlMap系统初始化完毕,开始事务
sqlMap.startTransaction();
sqlMap.insert(
" insertUser " , user);
sqlMap.update(
" updateUser " , user);
User use1r 
=   new  User();
List list 
=  (List) sqlMap.queryForList( " getUser " , " Erica " );
// 提交事务
sqlMap.commitTransaction();

 

以上是一个最简单的ibatis的实践

 

 

资源下载链接为: https://pan.quark.cn/s/abbae039bf2a 无锡平芯微半导体科技有限公司生产的A1SHB三极管(全称PW2301A)是一款P沟道增强型MOSFET,具备低内阻、高重复雪崩耐受能力以及高效电源切换设计等优势。其技术规格如下:最大漏源电压(VDS)为-20V,最大连续漏极电流(ID)为-3A,可在此条件下稳定工作;栅源电压(VGS)最大值为±12V,能承受正反向电压;脉冲漏极电流(IDM)可达-10A,适合处理短暂高电流脉冲;最大功率耗散(PD)为1W,可防止器件过热。A1SHB采用3引脚SOT23-3封装,小型化设计利于空间受限的应用场景。热特性方面,结到环境的热阻(RθJA)为125℃/W,即每增加1W功率损耗,结温上升125℃,提示设计电路时需考虑散热。 A1SHB的电气性能出色,开关特性优异。开关测试电路及波形图(图1、图2)展示了不同条件下的开关性能,包括开关上升时间(tr)、下降时间(tf)、开启时间(ton)和关闭时间(toff),这些参数对评估MOSFET在高频开关应用中的效率至关重要。图4呈现了漏极电流(ID)与漏源电压(VDS)的关系,图5描绘了输出特性曲线,反映不同栅源电压下漏极电流的变化。图6至图10进一步揭示性能特征:转移特性(图7)显示栅极电压(Vgs)对漏极电流的影响;漏源开态电阻(RDS(ON))随Vgs变化的曲线(图8、图9)展现不同控制电压下的阻抗;图10可能涉及电容特性,对开关操作的响应速度和稳定性有重要影响。 A1SHB三极管(PW2301A)是高性能P沟道MOSFET,适用于低内阻、高效率电源切换及其他多种应用。用户在设计电路时,需充分考虑其电气参数、封装尺寸及热管理,以确保器件的可靠性和长期稳定性。无锡平芯微半导体科技有限公司提供的技术支持和代理商服务,可为用户在产品选型和应用过程中提供有
资源下载链接为: https://pan.quark.cn/s/9648a1f24758 在 JavaScript 中实现点击展开与隐藏效果是一种非常实用的交互设计,它能够有效提升用户界面的动态性和用户体验。本文将详细阐述如何通过 JavaScript 实现这种功能,并提供一个完整的代码示例。为了实现这一功能,我们需要掌握基础的 HTML 和 CSS 知识,以便构建基本的页面结构和样式。 在这个示例中,我们有一个按钮和一个提示框(prompt)。默认情况下,提示框是隐藏的。当用户点击按钮时,提示框会显示出来;再次点击按钮时,提示框则会隐藏。以下是 HTML 部分的代码: 接下来是 CSS 部分。我们通过设置提示框的 display 属性为 none 来实现默认隐藏的效果: 最后,我们使用 JavaScript 来处理点击事件。我们利用事件监听机制,监听按钮的点击事件,并通过动态改变提示框的 display 属性来实现展开和隐藏的效果。以下是 JavaScript 部分的代码: 为了进一步增强用户体验,我们还添加了一个关闭按钮(closePrompt),用户可以通过点击该按钮来关闭提示框。以下是关闭按钮的 JavaScript 实现: 通过以上代码,我们就完成了点击展开隐藏效果的实现。这个简单的交互可以通过添加 CSS 动画效果(如渐显渐隐等)来进一步提升用户体验。此外,这个基本原理还可以扩展到其他类似的交互场景,例如折叠面板、下拉菜单等。 总结来说,JavaScript 实现点击展开隐藏效果主要涉及 HTML 元素的布局、CSS 的样式控制以及 JavaScript 的事件处理。通过监听点击事件并动态改变元素的样式,可以实现丰富的交互功能。在实际开发中,可以结合现代前端框架(如 React 或 Vue 等),将这些交互封装成组件,从而提高代码的复用性和维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值