`
阅读更多
这几天用的sql的动态拼装,一下子就想到的valuelist,但是valuelist有好多前端的东西我们又用不到,所以想了想决定吧valuelist的动态拼装提出来。直接上传源码,不喜勿喷!

<bean id="hibernate4Adapter" class="net.mlw.vlh.adapter.hibernate4.Hibernate4Adapter">
    //jap的
<property name="sessionFactory" ref="entityManagerFactory" />
    //hibernate的
<property name="sessionFactoryBean" ref="sessionFactoryBean" />
</bean>

<bean id="columnMapRowMapper" class="org.springframework.jdbc.core.ColumnMapRowMapper" />
<bean id="sqlPagingSupport" class="net.mlw.vlh.adapter.jdbc.util.SqlPagingSupport" />

<bean id="jdbcAdapter" class="net.mlw.vlh.adapter.jdbc.JdbcAdapter" >
<property name="showSql" value="${hibernate.showSql}" />
<property name="dataSource" ref="dataSource" />
<property name="rowMapper" ref="columnMapRowMapper" />
<property name="sqlPagingSupport" ref="sqlPagingSupport" />
</bean>
  //这个配置文件必须有
  ${hibernate.dialect}
 
 
  
  @Autowired
	public Hibernate4Adapter hibernate4Adapter;
	
	@Autowired
	private JdbcAdapter jdbcAdapter;
	
	@Test
	public void jdbc(){
		try {
			String sql = "select * from inspur_topic where 1=1 " +
					"/~name: and name = {name}~/" +
					"/~name: and name = '[name]'~/" +
					"/~sortColumn: order by [sortColumn] [sortDirection]~/";
			HashMap filters = new HashMap();
			filters.put("sortColumn", "id");
			filters.put("pagingNumberPer", "2");
			filters.put("sortDirection", "desc");
			filters.put("pagingPage", "1");
			filters.put("name", "新闻");
			net.mlw.vlh.ValueListInfo info = new net.mlw.vlh.ValueListInfo(filters);
			
			ValueList valueList = jdbcAdapter.getValueList(sql, info);
			System.err.println(valueList.getList().size());     
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
   
   	@Test
	public void hibernate(){
		try {
			String hql = "from topic where 1=1 " +
					"/~name: and name = {name}~/" +
					"/~name: and name = '[name]'~/" +
					"/~sortColumn: order by [sortColumn] [sortDirection]~/";
			HashMap filters = new HashMap();
			filters.put("sortColumn", "id");
			filters.put("pagingNumberPer", "2");
			filters.put("sortDirection", "desc");
			filters.put("pagingPage", "1");
			filters.put("name", "新闻");
			net.mlw.vlh.ValueListInfo info = new net.mlw.vlh.ValueListInfo(filters);
			
			ValueList valueList = hibernate4Adapter.getValueList(hql, info);
			System.err.println(valueList.getList().size());     
		} catch (Exception e) {
			e.printStackTrace();
		}
	}  
 


有不明白的加群一起讨论:172429747
分享到:
评论

相关推荐

    仿valuelist式动态sql拼装

    标题“仿valuelist式动态sql拼装”指的是在编程中实现类似MyBatis的`&lt;foreach&gt;`标签功能,用于动态地拼接SQL语句,尤其是处理列表参数时的插入、更新或查询操作。这种技术常见于Java后端开发,尤其是在使用ORM(对象...

    java分页插件valuelist

    2. **数据库查询优化**:Valuelist可能采用SQL动态拼接技术,只查询所需的数据,而不是全表扫描,这显著提高了查询效率。 3. **结果封装**:将数据库查询结果转化为适合分页展示的对象列表,同时包含总条数、总页数...

    valueList 分页插件的使用

    本实例使用SSH框架整合开发,sqlserver2000数据库,valueList 插件,目的是练习分页插件的使用。由于jar包文件太多,故把jar包删去了,使用者只要加上SSH的jar文件,导入eclipse就可以运行

    ValueList_delphiValueList_

    在Delphi编程环境中,`ValueList`是一种非常实用的组件,尤其对于初学者来说,它提供了方便的方式来管理和处理数据集合。`ValueList`组件通常用于存储键值对,类似于其他编程语言中的字典或哈希表。在这个压缩包中,...

    valuelist

    "valuelist"是一个专为高性能表格展示设计的组件,主要应用于J2EE环境中,它提供了丰富的功能,如分页、分组以及排序等,旨在优化数据处理和用户体验。在这个项目中,我们可以看到一系列的JSP文件,这些文件是Web...

    兔八哥ValueList的文档0.3

    兔八哥ValueList文档翻译 概述:ValueList是一个强大的数据访问工具,它可以帮助开发者快速构建数据驱动的应用程序。本文档是ValueList的官方文档翻译,旨在帮助开发者更好地理解和使用ValueList。 一、ValueList...

    ValueList的文档

    3. `ValueListAdapter` 执行 SQL 查询,将查询结果转换为 `ValueList`,其中包含一组Java对象,这些对象反映了数据库中的记录。 4. 可以遍历 `ValueList`,处理或展示返回的数据。 **总结** ValueList 是一个简化...

    valuelist war

    valuelist;valuelist;valuelist;valuelist; 不错的表格控制技术

    ValueList技术分享 ValueList技术应用.doc

    总的来说,ValueList技术提供了一种抽象层,将数据访问逻辑与业务逻辑分离,使得代码更易于维护和扩展。通过ValueListHandler和ValueListAdapter,开发者可以专注于业务逻辑,而无需关心底层数据查询的细节。这种...

    包括应用示例的功能强大的分页组件valuelist0.1.8

    - **兼容性**: 兼容多种数据库,包括MySQL、Oracle、SQL Server等,同时支持JDBC和ORM框架如Hibernate、MyBatis。 - **应用示例**:随组件提供的应用示例帮助开发者快速理解和使用,通过实际操作了解其工作原理和...

    功能强大的JSP分页组件 valuelist0.1.8

    功能强大的JSP分页组件 valuelist0.1.8 封装的很好

    如何通过配置自动实现ValueList中hql语句的整型参数转换

    这样,每次ValueList在拼装HQL之前,会先调用`IntegerSetter`中的`setParameter`方法,将接收到的String参数转换为Integer类型,然后再传递给HQL语句。这样既简化了代码,也避免了数据库迁移时的兼容性问题。 总结...

    权限控制(struts2+hibernate+spring+struts-menu+valuelist)

    本项目以"权限控制(struts2+hibernate+spring+struts-menu+valuelist)"为主题,采用一系列成熟的技术栈来实现这一目标。下面我们将深入探讨这些技术及其在项目中的应用。 首先,Struts2作为MVC框架,负责处理HTTP...

    c#几种数据库的大数据批量插入(SqlServer、Oracle、SQLite和MySql)

    sql.Append($"INSERT INTO TableName ({columnList}) VALUES ({valueList});"); } command.CommandText = sql.ToString(); command.ExecuteNonQuery(); ``` 这里,`columnList`和`valueList`应根据实际列和值...

    用JDBC实现数据库的级联删除与更新

    public int updateSchools(String condition, List&lt;Object&gt; valueList, School sch) throws DBException; public List&lt;School&gt; findSchools(String conditions, List&lt;Object&gt; ValueList) throws DBException; ...

    7.ESQL/C简单插入语句.pdf

    【ESQL/C简单插入语句】是Informix数据库系统中用于在C程序中执行SQL插入操作的方法。在学习这一主题后,你将掌握如何在数据库中通过嵌入SQL语句来插入一行记录。 **INSERT语句语法:** 插入语句的基本格式如下: `...

    Android代码-BaseItemLayout

    BaseItemLayout 更新 对项目进行了重构,详情请看项目重构 上个图 简介 在工作中经常会遇到下面的... List valueList = new ArrayList(); valueList.add("相册"); valueList.add("收藏"); valueList.add("钱包");

Global site tag (gtag.js) - Google Analytics