- 浏览: 281209 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (75)
- Extjs (9)
- Java (27)
- 幽默人生 (2)
- IT新闻 (0)
- Extjs4 (5)
- DB2 (1)
- JQuery (3)
- Myeclipse (2)
- Android (3)
- JSON (2)
- Perl (1)
- Javascript json (1)
- Sping (3)
- Struts2 (2)
- HTML (3)
- SQL (1)
- Spring (2)
- Flash builder4.5 (0)
- Hibernate (2)
- Javascript FusionCharts (0)
- FusionCharts (1)
- Javascript (2)
- CSS (1)
- 刷机 (1)
- 数据库 (3)
- 测试 (1)
- Java解惑 (1)
- Oracle (1)
- Ubuntu (3)
- JDK7 (1)
- eclipse (1)
- tomcat (1)
- gis (0)
- arcgis (1)
最新评论
-
hshyy2005:
赞赞赞!!!
Could not load the Tomcat server configuration at /Servers/Tomcat v7.0 Server at -
Butterfeild:
有效果!但是颜色貌似改不了
Extjs中Ext.grid.GridPanel stripeRows斑马纹 没效果 失效 解决办法 -
lliiqiang:
用户不是程序员,行为要被强制引导.
Web安全 -
lliiqiang:
动态的东西不容易分析,服务器动态容易被攻击漏洞。动态处理仅仅是 ...
Web安全 -
jingyemingyue:
砺雪凝霜 写道 没用啊那你可以试试Aptana这个软件,他也有 ...
spket对Extjs4的支持方法 eclipse插件spket安装 extjs4 提示
package com.zsw.util.service;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.lang.reflect.*;
import java.sql.*;
public class DBCommonFunction<T> {
private T ts;
public T getTs() {
return ts;
}
public void setTs(T ts) {
this.ts = ts;
}
public DBCommonFunction(T ts) {
this.ts = ts;
}
public void getClasses() {
Object object = ts.getClass();
System.out.println(getTs().getClass().getName());
try {
Class s = Class.forName(getTs().getClass().getName());
object = s.newInstance(); // 利用T类型 创建一个新的实例
System.out.println((T) object);
} catch (Exception e) {
e.printStackTrace();
}
}
// 获得T的参数并赋值
public void getParam() {
try {
Class s = Class.forName(getTs().getClass().getName());
Object o = s.newInstance();
for (Field f : o.getClass().getDeclaredFields()) {
if (f.getType().getSimpleName().equals("String")) {
f.set(o, 2 + "");
} else {
f.set(o, 1);
}
System.out.println(f);
}
System.out.println((T) o);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取表名
*/
private String getTblName() {
return getTs().getClass().getSimpleName() + "s";
}
/**
* 获取表中的字段
*/
@SuppressWarnings("finally")
private String getPram() {
String pram = "";
try {
Class s = Class.forName(getTs().getClass().getName());
Object o = s.newInstance();
Field[] fs = o.getClass().getDeclaredFields();
for (int i = 1; i < fs.length; i++) {
Field f = fs[i];
if (fs.length - 1 == i)
pram += f.getName();
else
pram += f.getName() + ",";
}
} catch (Exception e) {
e.printStackTrace();
} finally {
return pram;
}
}
/**
* 获取传递进的类型的值
*/
private String getValues(T t) {
Field[] fs = t.getClass().getDeclaredFields();
String ret = "";
try {
Class.forName(t.getClass().getName());
for (int i = 1; i < fs.length; i++) {
if (fs.length - 1 == i)
if (fs[i].getType().getSimpleName().equals("String")) {
ret += "'"+fs[i].get(t).toString()+"'";
} else {
ret += fs[i].get(t);
}
else {
if (fs[i].getType().getSimpleName().equals("String")) {
ret += "'"+fs[i].get(t)+"',";
} else {
ret += fs[i].get(t)+",";
}
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
return ret;
}
}
public List<T> findAll(){
List<T> list = new ArrayList<T>();
Connection conn = PageService.getConn();
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
pstmt = conn.prepareStatement("select * from "+getTblName());
rs = pstmt.executeQuery();
while (rs.next()) {
Class s = Class.forName(getTs().getClass().getName());
Object o = s.newInstance();
for (Field f : o.getClass().getDeclaredFields()) {
f.set(o,rs.getObject(f.getName()));
}
list.add((T)o);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
return list;
}
}
/**
* 通用的添加
*/
public boolean Add(T t) {
String sql = "insert into " + getTblName() + " (" + getPram()
+ ") values (" + getValues(t) + ")";
Connection conn = PageService.getConn();
PreparedStatement pstmt = null;
int count = 0;
try {
pstmt = conn.prepareStatement(sql);
count = pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally{
try {
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return count > 0?true:false;
}
}
发表评论
-
hibernate-------could not instantiate id generator
2012-09-27 11:24 6125今天用Hibernate操作Mssql20 ... -
两种单例模式比较
2012-05-18 14:18 1292第一种: public class Test { ... -
MyEclipse Update Progress Error现象
2012-05-17 15:31 1215设置 Window->Prefrences->Ge ... -
Java内存模式
2012-04-10 14:49 947http://blog.csdn.net/intlgj/art ... -
Java解惑II
2012-02-27 10:42 1122public class Test { ... -
java.sql.SQLException: Listener refused the connection with the following error:
2012-02-23 11:10 15192java.sql.SQLException: Listener ... -
logback中文手册
2012-02-16 10:34 2542Logback是由log4j创始人设计的又一个开源日志组件。l ... -
使用logback替换原有项目中的log4j
2012-02-07 11:04 1825据说logback性能比较高,故想替换以前项目中的log4j, ... -
在Java中使用无符号整型
2012-01-31 09:37 9770在项目要使用无符号整型,可以在项目中加入joou. ... -
Java学习笔记之序列化
2012-01-30 15:11 977用static或者transient ... -
Java性能分析工具
2012-01-30 10:27 1114分享三款Java性能分析工具: 1.JProfiler ... -
Java内存小解
2011-12-26 17:25 945java中堆和堆栈的区别 1.栈(stack)与堆(he ... -
EL表达式 三目运算符在不同版本Tomcat中的表现
2011-12-14 13:50 3744我在JSP页面中使用了EL表达 式${param. ... -
map的三种遍历方法
2011-09-20 16:16 931集合的一个很重要的操作---遍历,学习了三种遍历方法,三种方 ... -
Java文件下载的几种方式
2011-09-15 08:56 29880public HttpServletResponse dow ... -
Hibernate属性配置
2011-09-07 11:51 1299引用 Hibernate 配置属性 Hibern ... -
关于struts.enable.DynamicMethodInvocation = true
2011-09-05 10:26 2367关于struts.enable.DynamicMethodI ... -
Java创建Web监听
2011-08-31 15:31 1211Java提供一些Servlet监听器,用于监听一些重要事件的发 ... -
<s:action />参数及URLRewriter重写地址后被包含后的jsp中链接问题
2011-07-28 10:37 11711:<s:action />在使用时的参数说明&l ... -
JAVA小程序的内存分析
2011-07-22 21:25 8451,基础数据类型直接在栈空间stack分配,方法的形参,直接在 ...
相关推荐
本示例通过一个通用的DAO(Data Access Object)类,展示了如何在不依赖Hibernate等ORM框架的情况下,进行数据库的增删改查操作。这有助于理解底层的SQL执行过程,同时也提供了更灵活的控制权。 首先,DAO模式是一...
写了一个通用java访问数据库操作的DAO类,非常简单,非常强大,非常方便,非常好用。绝对原版,绝对原创。把hibernate彻底扔掉。(根据C#改编的,原本我是搞C#开发的)支持泛型集合,让程序运行效率更高。
BaseDAO 是一个通用的增删改查基础类,使用 Java 语言实现。它提供了基本的数据操作方法,如保存、修改、删除和查询等。BaseDAO 通过反射机制来获取类的信息,并使用 JDBC 连接数据库来执行 SQL 语句。 BaseDAO 的...
【Java增删改查技术方案】是针对Java应用程序中对数据库进行基本操作(添加、删除、修改和查询)的一种通用模板设计。这个方案旨在提高开发效率,降低代码维护难度,并确保对数据库操作的灵活性和可扩展性。 1. **...
例如,我们可以定义一个`BaseDAO`接口,包含增删改查等通用方法,然后使用Proxy创建该接口的代理实现。InvocationHandler的invoke方法会处理这些方法调用,生成对应的SQL并执行。 反射则用于在运行时获取类的信息,...
例如,在进行数据库操作时,通过反射可以避免为每个数据表编写一个DAO类,而是可以创建一个通用的DAO类,通过传入不同的参数动态执行数据库的增删改查操作。 综上所述,Java反射机制是一种强大的特性,能够在运行时...
Session则负责具体的数据库操作,如增删改查;Transaction则管理事务,确保数据的一致性。 在Hibernate 4.0中,还引入了对JPA 2.1的支持,体现在`hibernate-jpa-2.1-api-1.0.0.Final.jar`文件中。JPA(Java ...
Java 6 RowSet 使用完全剖析 结合Spring2.0和ActiveMQ进行异步消息调用 struts+hibernate增删改查(一) AXIS 布署问题 struts+hibernate增删改查(二) MySQL中如何实现Top N及M至N段的记录查询?...
学习 Java 数据库编程需要掌握 Java 与数据库的连接方式、SQL 语句的使用、数据库的增删改查操作等。 Web 开发 Java 也是一种非常流行的 Web 开发语言。学习 Java Web 开发需要掌握 Java Servlet、JSP、JavaBean、...
在IT行业中,反射查询SQL框架是一种高级编程技术,它结合了面向对象的编程特性与数据库操作,使得开发者可以通过对象和属性来动态构建SQL语句,从而实现对数据库的增、删、改、查(CRUD)操作。这种技术极大地提高了...
对于DAO,我们可以定义一个基类,包含通用的增删改查方法,然后针对每个数据表创建继承自基类的子类。在运行时,根据表名动态加载相应的DAO子类并实例化。 例如,我们有用户表(User)和订单表(Order),可以创建...
Java JDBC(Java Database Connectivity)是Java编程语言与各种数据库交互的一种标准接口,它允许Java开发者在应用程序中执行SQL语句,实现对数据库的增删改查操作。本篇将介绍如何在Java中使用枚举(Enum)、泛型、...
在Java中,DAO通常包含一组方法,比如增删改查(CRUD)操作,针对不同的数据库实体进行操作。然而,对于每个新的实体,我们都需要编写相似的DAO接口和实现,这无疑增加了开发的工作量。这就是通用DAO的出现背景,它...
8. **编写业务逻辑**:实现增删改查等基本操作。 9. **测试验证**:运行测试用例确保功能正确。 #### 示例代码 下面是一个简单的 Hibernate 映射文件示例: ```xml <!DOCTYPE hibernate-mapping PUBLIC "-//...
这些接口和类提供了丰富的功能,如增删改查、迭代、排序等。 泛型编程允许在定义类、接口和方法时使用类型参数,提高了代码的通用性和类型安全性。通配符如"? extends T"和"? super T"用于限制泛型类型的范围。 ...
掌握它们的特点、用途以及操作方法,如增删改查,是非常重要的。 5. **内存管理与垃圾回收**:了解Java内存模型,包括堆内存和栈内存,以及垃圾收集机制。理解对象的生命周期和引用类型(强引用、软引用、弱引用、...
13. **数据库**:了解SQL语言,包括查询、增删改查操作,以及事务处理、索引、存储过程等高级特性。熟悉一种或多种关系型数据库(如MySQL、Oracle)。 14. **网络编程**:理解TCP/IP协议,套接字编程,以及HTTP协议...
而“Mapper-master.zip”正是一个专注于Mybatis单表操作的项目,它简化了常见的增删改查(CRUD)操作,使得开发者可以更加便捷地进行数据处理。 一、Mybatis简介 Mybatis是由Apache基金会维护的开源项目,它摒弃了...
"java封转dao层(源码),只需传路径,版本一" 提到的技术是一种简化DAO层创建的方法,通过提供一个通用的接口或抽象类,使得开发者无需为每个实体类编写单独的DAO实现,而是通过传入实体类的路径即可自动创建对应的...
- **持久化操作**: 执行如增删改查等数据库操作。 - **提交事务**: 成功执行数据库操作后,提交事务。 - **关闭Session**: 操作完成后关闭`Session`。 - **关闭SessionFactory**: 应用退出时关闭`SessionFactory`。 ...