ibatis使用3
来源:互联网 发布:无法连接主机 端口23 编辑:程序博客网 时间:2024/06/07 04:45
3.6 使用命名空间区分相同的id
public class IBatisSameSQLMapId {// Ibatis核心对象,可以进行数据库操作private static SqlMapClient sqlMapper; static { try { // 读取IBatis的数据库连接配置文件 Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml"); // 创建Ibatis核心对象 sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader); // 关闭文件输入流 reader.close(); } catch (IOException e) { // Fail fast. throw new RuntimeException("Something bad happened while building the SqlMapClient instance." + e, e); }}/** * @param args */public static void main(String[] args) throws Exception {queryForList();}public static void queryForList() throws Exception {// Ibatis技术框架将sqlMapId和sql绑定在一起,那么如果在多个映射文件中存在相同名称sqlMapId,会出现问题。// 解决问题的方法:// 1) 修改映射ID名称,保证不相同。// 2) 增加命名空间来解决名称相同的问题。类似于java中的包的概念。// 如果指定命名空间,那么访问SQLID时,必须执行命名空间// 命名空间如果想要使用,必须让IBatis启用命名空间,需要修改连接配置文件。String sqlMapId = "user.selectList";sqlMapper.queryForList(sqlMapId);}}
3.6 sql文件
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"><sqlMap namespace="user"> <!-- select标签表示声明查询SQL语句 id属性表示sql语句关联ID,当程序访问这个ID时,等同于访问这个SQL语句。 resultClass属性表示当查询结果有了之后,将结果直接转换为指定类型的对象 --> <!-- SQL中的##表示SQL语句需要参数,可以代替?号 --> <!-- 查询结果使用反射的方式将所有查询字段的值放置在对象的属性当中,如果查询字段不存在,那么属性值为null usercode -> setUsercode usercode setUser_code user_code -> setUser_code 如果表字段名称和对象属性名称不一致的场合,可以通过别名的方式保持一致,进行数据的封装。 --> <select id="selectUserByCode" resultClass="com.cjf.ibatis.bean.User"> select usercode as user_code, username, userpswd, orgtype from t_user where usercode = #usercode# </select> <!-- resultClass属性表示查询的每一条数据转换成指定类型的对象 如果结果为多条数据,转换后会自动封装为集合对象 --> <select id="selectUsers" resultClass="com.cjf.ibatis.bean.User"> select * from t_user </select> <select id="selectList" resultClass="com.cjf.ibatis.bean.User"> select * from t_user </select></sqlMap>
---------------------
3.7 使用缓存
public class IBatisQueryCache {// Ibatis核心对象,可以进行数据库操作private static SqlMapClient sqlMapper; static { try { // 读取IBatis的数据库连接配置文件 Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml"); // 创建Ibatis核心对象 sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader); // 关闭文件输入流 reader.close(); } catch (IOException e) { // Fail fast. throw new RuntimeException("Something bad happened while building the SqlMapClient instance." + e, e); }}/** * @param args */public static void main(String[] args) throws Exception {queryForList();}public static void queryForList() throws Exception {// Ibatis技术框架查询缓存 // ibatis将查询结果和映射ID关联起来,放置在缓存当中,当下一回再次访问相同的映射ID时,不再访问数据库,而是从缓存中获取// 提供查询效率。// 使用缓存的步骤:// 1) 启用缓存,修改连接配置文件,增加缓存的操作。// 查询缓存对于修改可能会发生问题。修改操作会导致数据不统一。String sqlMapId = "userCache.selectUsers";List<User> userList = sqlMapper.queryForList(sqlMapId);for ( User u : userList ) {System.out.println( u.getUsername() );}System.out.println( "***************************" );sqlMapId = "userCUD.updateUser";User user = new User();user.setUsercode("1");user.setUsername("zhangsan");sqlMapper.update(sqlMapId, user);System.out.println( "***************************" ); userList = sqlMapper.queryForList(sqlMapId);for ( User u : userList ) {System.out.println( u.getUsername() );}}}
3.7 sql文件
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"><sqlMap namespace="userCache"> <!-- 缓存模型,可以将查询结果放置缓存当中 id属性表示模型的引用标示ID type属性表示缓存的处理方式 LRU : 最近最少使用的对象 MEMOERY : 基于引用的缓存策略,和垃圾回收器有关系。 FIFO :First In First Out 先进先出 OSCACHE : 基于OSCACHE组件的缓存策略。 --> <cacheModel type="LRU" id="userCache"> <property name="size" value="100"/> <!-- 当执行某一个操作时,可以将查询结果给清空掉,下一回查询时还是会访问数据库,获取最新的数据 --> <flushOnExecute statement="userCUD.updateUser"/> <!-- 当到达指定时间时,缓存的数据自动清除。 --> <flushInterval hours="2" minutes="30" seconds="30"/> </cacheModel> <select id="selectUsers" resultClass="com.cjf.ibatis.bean.User" cacheModel="userCache"> select * from t_user </select></sqlMap>
- ibatis使用3
- ibatis 使用
- ibatis使用
- iBatis使用
- spring系列之3--iBATIS的使用
- ibatis学习(二)--ibatis使用介绍
- ibatis学习笔记(四)>>>>>>>ibatis使用实例
- ibatis学习(二)--ibatis使用介绍
- ibatis学习(二)--ibatis使用介绍
- ibatis学习(二)--ibatis使用介绍
- ibatis学习(二)--ibatis使用介绍
- ibatis学习笔记(四)>>>>>>>ibatis使用实例
- [Java][ibatis]Ibatis TypeHandler使用总结
- iBatis使用点滴
- IBatis详细使用例子
- ibatis 使用笔记
- ibatis中使用缓存
- ibatis中使用缓存
- jQuery 03 DOM操作
- Android基础知识学习——界面转换
- iOS: NSObject的方法cancelPreviousPerformRequestsWithTarget:selector:object:
- 最近在折腾VPS(持续完善)
- Unable to add window错误
- ibatis使用3
- haar——nosecascade
- IIS+WAMP配置php + asp开发环境
- What are TCHAR, WCHAR, LPSTR, LPWSTR, LPCTSTR
- Java编写软件
- 五位以内的对称素数
- Ubuntu下配置tftp服务和NFS服务
- Django的安装(windows下)
- 项目研发过程中总结的几个案例-3D建模工具