- 浏览: 516752 次
- 性别:
- 来自: 宁波
-
文章分类
- 全部博客 (137)
- JQuery component (3)
- Web编程控件 (7)
- java (19)
- database (9)
- Web Service (6)
- XML (2)
- FTP (2)
- SSH2 (18)
- javascript (3)
- arcgis (7)
- geoserver (1)
- Openscales (2)
- FME (6)
- HttpClient (3)
- portal (6)
- oracle goldengate (7)
- oracle (3)
- 命令锦集 (1)
- web容器 (3)
- NB博客链接 (2)
- 设计模式 (0)
- ext (2)
- 小工具 (12)
- Flex (1)
- LINUX (1)
- Android (1)
- Maven 入门 (2)
- 负载均衡 (1)
- openlayers (2)
- Flexkkjk (0)
最新评论
-
lgh1992314:
ApplicationContext context = We ...
Spring中的ContextLoaderListener使用 -
lgh1992314:
ContextLoaderServletSpring3.0后删 ...
Spring中的ContextLoaderListener使用 -
gaoqiangjava:
...
Spring中的ContextLoaderListener使用 -
liude33:
好资料啊,网上这方面的资料好少。
goldengate 学习资料 -
AKka:
在实体类中加上@Transient 注解后,为什么还会在数据库 ...
JPA注解 转
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.reflect.Field;
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@interface FiledRef
{
String fieldName();
}
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@interface TableRef
{
String tableName();
}
@TableRef(tableName = "MobDevice")
public class ReflectTest
{
@FiledRef(fieldName = "ID")
private Long id;
@FiledRef(fieldName = "DEVICE_NAME")
private String name;
@FiledRef(fieldName = "DEVICE_CODE")
private String code;
public ReflectTest(Long id, String name, String code)
{
this.id = id;
this.name = name;
this.code = code;
}
public Long getId()
{
return id;
}
public void setId(Long id)
{
this.id = id;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getCode()
{
return code;
}
public void setCode(String code)
{
this.code = code;
}
/**
* @description
* @author zhangml
* @date May 17, 2010 4:39:30 PM
* @param args
*/
public static void main(String[] args)
{
ReflectTest rt = new ReflectTest(new Long(1), "2", "3");
StringBuffer sql = new StringBuffer("");
buildSql(rt, sql);
System.err.println(sql);
}
public static void buildSql(Object obj, StringBuffer sb)
{
Class<? extends Object> clazz = obj.getClass();
Field[] fields = clazz.getDeclaredFields();
if (clazz.isAnnotationPresent(TableRef.class))
{
TableRef tr = (TableRef) clazz.getAnnotation(TableRef.class);
sb.append("SELECT * FROM ");
sb.append(tr.tableName());
}
if (fields != null && fields.length > 0)
{
sb.append(" WHERE ");
for (Field field : fields)
{
try
{
Object value = field.get(obj);
if (value != null && field.isAnnotationPresent(FiledRef.class))
{
FiledRef fr = field.getAnnotation(FiledRef.class);
sb.append(fr.fieldName() + "=" + value);
sb.append(" AND ");
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
int length = sb.length();
sb.delete(length-5, length);
}
}
}
执行结果:SELECT * FROM MobDevice WHERE ID=1 AND DEVICE_NAME=2 AND DEVICE_CODE=3
发表评论
-
dwr 推送2
2013-12-22 23:17 01、>>>>>>> ... -
dwr 精准推送test
2013-12-15 23:07 0channelStatusMonitor_devChanne ... -
利用Object的wait、notify来实现线程同步原理 (转)
2012-11-21 22:46 1514认识Object.wait()方法: ... -
eclipse ant 编译 中文乱码问题
2012-11-19 15:22 3202eclipse ant 编译 中文乱码问题 在 javac 下 ... -
eclipse 离线安装SVN
2012-03-14 14:03 4444转 不知道因为是网络还是别的什么故障,在线安装svn插件方 ... -
win下 新建bat文件 启动 java应用服务
2011-12-09 14:17 1823rem --------------------------- ... -
异常备忘:java.lang.UnsupportedClassVersionError: Bad version number in .class file
2011-07-31 23:17 902今天在导入一个工程时,编译并打包到Tomcat后,发现出现ja ... -
存在sql注入式攻击的最差实践代码(Java新手注意了)
2011-06-16 17:50 1340下面是自己以前初学JDBC时候写的代码,存在sql注入漏洞。 ... -
ext的myeclipse插件安装
2011-04-13 15:04 972http://www.spket.com/updat ... -
Map Area 让栅格地图动了起来
2011-03-28 17:22 2423当前的绝大部分地图网 ... -
VML 入门
2011-03-28 10:15 923http://www.itlearner.com/code/v ... -
SVG 入门
2011-03-16 17:07 876SVG 入门 http://helius1214.iteye ... -
CAS 单点登录架设笔记
2011-03-12 20:51 1473工作需要,对CAS进行了研究,网络上看了些文章,但都不完善,自 ... -
MyEclipse编码&&其他设置
2011-03-12 15:02 1669http://www.blogjava.net/3ant/a ... -
字符串 与 java.sql.Timestamp转换
2011-03-11 14:34 12783package test; import java.sql. ... -
myeclipse6 .0 .1 注册码
2011-02-09 10:56 1069myeclipse6 .0 .1 注册码 vi ... -
封装jre安装程序
2010-12-23 11:56 1419封装jre安装程序 因为jre1.6u22安装程序的策略 ... -
applet访问本地资源,需要修改jre的java.policy
2010-12-23 11:54 3196Java Plug-in 1.6.0_22使用 JRE 版本 ... -
Java Annotation (二)
2010-06-02 22:42 1496首先分析jdk自带的java.lang.annot ... -
java Annotation 基础(转)
2010-06-02 21:56 1388Java 从1.5 ...
相关推荐
"Java使用注解拼接SQL语句"是一个常见的实践,它使得动态构建SQL查询变得更为简洁和可维护。这种技术通常与ORM(对象关系映射)框架如MyBatis或Hibernate结合使用,但也可以通过自定义处理逻辑实现。 1. **自定义...
在Java开发中,Bean对象常用于封装业务数据,而SQL语句则是数据库操作的核心。将Bean对象转换为SQL语句可以简化数据操作,提高代码的可读性和可维护性。本示例通过Annotation和反射技术来实现这一目标,旨在帮助...
### Java Annotation 概述与应用 #### 一、Java Annotation 的定义及作用 Java Annotation(注解)是自 Java 5.0 开始引入的一种语言元素,它为开发者提供了在代码中添加元数据的能力。简单来说,注解就像是对代码...
在Java编程语言中,注解(Annotation)和反射(Reflection)是两个强大的工具,它们能够帮助开发者实现高级功能,如元编程和动态行为控制。在本篇中,我们将深入探讨如何利用注解和反射来生成SQL语句,这对于构建...
2. 自动化生成SQL:一些ORM(对象关系映射)库,如Hibernate(Java)、SQLAlchemy(Python)、Entity Framework(C#)等,可以基于模型类自动构建SQL语句。它们会根据模型的属性生成INSERT、SELECT、UPDATE、DELETE...
Java Annotation 是 JDK5.0 引入的一种元数据机制,它允许程序员在代码中嵌入额外的信息,这些信息可以被编译器、构建工具或运行时系统用来执行特定的任务。Annotation 提供了一种安全、灵活的方式来描述代码的属性...
Java 注解(Annotation)是Java语言提供的一种元编程机制,它允许程序员在源代码的各个元素(如类、方法、变量等)上添加信息。这些信息可以被编译器或运行时系统用来验证代码、执行特定操作或者提供额外的运行时...
《Java Annotation手册》 在Java编程语言中,注解(Annotation)是一种元数据,它提供了在编译时或运行时处理代码的一种方式。通过注解,开发者可以向编译器或JVM提供有关代码的附加信息,而这些信息通常不直接影响...
Java的`javax.annotation.processing.Processor`接口定义了注解处理器的规范。 5. 使用注解 注解可以应用于类、方法、字段、参数、构造函数、包等不同级别。例如: ```java @MyAnnotation("Hello, World!") ...
Java注解(Annotation)是Java语言的一个重要特性,它为元数据提供了强大的支持。元数据是关于数据的数据,可以提供额外的信息,这些信息虽然不是程序运行所必需的,但能够帮助编译器、JVM(Java虚拟机)或工具更好...
4. **代码生成**:一些工具(如Hibernate)会根据注解生成数据库映射或SQL语句。 5. **测试**:JUnit框架中的`@Test`注解标识测试方法。 ### 自定义注解 自定义注解需要定义一个新的注解类型,并可以包含自定义的...
MyBatis是一款流行的Java持久层框架,用于简化数据库操作,其特点是将SQL语句与Java代码分离,使得SQL和业务逻辑更加清晰。本项目提供的"mybatis自动sql生成插件源码"则进一步提升了开发效率,通过拦截器...
Java Annotation,也称为注解,是Java编程语言中的一种元数据机制,用于向编译器、JVM或工具提供有关代码的附加信息。这些信息不直接影响代码的执行,但可以被编译器或运行时环境用来执行特定的操作,如代码分析、...
如果你想知道java annotation是什么?你可以看看
Java注解(Annotation)是Java语言的一个重要特性,它为元数据提供了强大的支持。元数据是一种描述数据的数据,可以提供有关代码的附加信息,而这些信息并不直接影响代码的执行。在Java中,注解用于向编译器、JVM或...
Java 注解(Annotation)是 Java 语言的一种元数据机制,它允许程序员在源代码中嵌入额外的信息。这些信息可以被编译器、IDE、JVM 或其他工具使用,以增强代码的功能,简化开发,提高可维护性。注解并不直接影响代码...
Java annotation 什么是java annotation?annotation 的7种标注类型。nnotation提供了一条与程序元素关联任何信息或者任何元数据(metadata)的途径。从某些方面看,annotation就像修饰符一样被使用,并应用于包、...
1. **Java SQL**:在代码中直接编写SQL语句,灵活且直观,适用于对SQL有高度控制需求的情况。 2. **XML SQL**:通过XML文件配置SQL,将业务逻辑和数据访问层分离,有利于代码维护和团队协作。 3. **Annotation SQL**...
【Java Annotation手册】 Java Annotation是Java编程语言中的一个重要特性,它允许程序员在代码中嵌入元数据,这些元数据不直接影响程序的运行,但可以被编译器、工具或运行时环境用来验证代码、生成文档、实现依赖...
Java 注解(Annotation)是Java语言的一个重要特性,它为代码提供元数据,即关于代码的信息,但这些信息不直接影响程序的运行。注解在Java中主要用于编译器检查、运行时处理、框架生成元数据等场景。本篇将深入探讨...