- 浏览: 36859 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
longyinjava:
不详细,没有一点具体实例
使用Axis开发Web Service -
redcoatjk:
随便转载。这样一些细节都没有。
使用Axis开发Web Service -
Sev7en_jun:
呵呵,幽默
笑话,开心!!生活必备! -
eccojap:
笑死我啦......
笑话,开心!!生活必备! -
ming_303:
native2ascii -encoding b.proper ...
struts 资源文件的中文化处理
收集下来,方便自己,也方便大家!
package com.scitel.gdnumcommon.utils;
import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Types;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.scitel.gdnumcommon.entity.Pagination;
import com.scitel.gdnumcommon.entity.BaseVO;
public class BaseDAO {
private static final Log log = LogFactory.getLog(BaseDAO.class);
/**
* 保存数据,新建和修改都用这个
*
* @param con
* @param SQL
* @param params
* @throws Exception
* @author
*/
public void save(Connection con, String SQL, List params)
throws Exception {
PreparedStatement ps = null;
try {
ps = con.prepareStatement(SQL);
if (SQL == null) {
throw new Exception();
}
if (params != null && params.size() > 0) {
int count = 0;
for (Iterator iterator = params.iterator(); iterator.hasNext(); count++) {
Object object = iterator.next();
setObjectValue(ps, count + 1, object);
}
}
ps.executeUpdate();
} catch (Exception e) {
log.error(e);
throw e;
} finally {
try{
if(ps != null) {
ps.close();
}
}catch(Exception e){
}
}
}
/**
* 保存数据,新建和修改都用这个,通过字段名称匹配类型
* @param con
* @param SQL
* @param voclass
* @param paramMap
* @throws Exception
* @author
*/
public void save(Connection con, String SQL, Class voclass, Map paramMap)
throws Exception {
PreparedStatement ps = null;
try {
ps = con.prepareStatement(SQL);
if (SQL == null) {
throw new Exception();
}
if (paramMap != null && paramMap.size() > 0) {
int count = 0;
for (Iterator iterator = paramMap.keySet().iterator(); iterator.hasNext(); count++) {
String key = (String)iterator.next();
Object object = paramMap.get(key);
setObjectValue(ps, voclass, count+1, key, object);
}
}
ps.executeUpdate();
} catch (Exception e) {
log.error(e);
throw e;
} finally {
try{
if(ps != null) {
ps.close();
}
}catch(Exception e){
}
}
}
/**
* 删除数据
*
* @param con
* @param SQL
* @param params
* @throws Exception
* @author
*/
public void remove(Connection con, String SQL, List params)
throws Exception {
PreparedStatement ps = null;
try {
ps = con.prepareStatement(SQL);
if (SQL == null) {
throw new Exception();
}
if (params != null && params.size() > 0) {
int count = 0;
for (Iterator iterator = params.iterator(); iterator.hasNext(); count++) {
Object object = iterator.next();
setObjectValue(ps, count + 1, object);
}
}
ps.executeUpdate();
} catch (Exception e) {
log.error(e);
throw e;
} finally {
try{
if(ps != null) {
ps.close();
}
}catch(Exception e){
}
}
}
/**
* 根据ID选择数据
*
* @param con
* @param SQL
* @param id
* @param voclass
* @return
* @throws Exception
* @author
*/
public BaseVO selectById(Connection con, String SQL, String id,
Class voclass) throws Exception {
Object po = null; // 承载值对象
PreparedStatement ps = null;
ResultSet rs = null;
ResultSetMetaData rsm = null;
try {
ps = con.prepareStatement(SQL);
if (SQL == null) {
throw new Exception();
}
ps.setString(1, id);
rs = ps.executeQuery();
rsm = rs.getMetaData();
if (rs.next()) {
Map entity = new HashMap();
for (int i = 1; i <= rsm.getColumnCount(); i++) {
String columnName = rsm.getColumnName(i).toLowerCase();
Object columnValue = getObjectValue(rs, voclass, i, columnName);
entity.put(columnName, columnValue);
}
if (voclass != null) {
po = voclass.newInstance();
BeanUtils.populate(po, entity);
}
}
} catch (Exception e) {
log.error(e);
throw e;
} finally {
try {
if (rs != null) {
rs.close();
}
} catch (Exception e) {
}
try {
if (ps != null) {
ps.close();
}
} catch (Exception e) {
}
}
return (BaseVO) po;
}
/**
* 选择记录,不分页
* @param con
* @param SQL
* @param params
* @param voclass
* @return
* @throws Exception
* @author
*/
public List select(Connection con, String SQL, List params, Class voclass)
throws Exception {
Object vo = null; // 承载值对象
PreparedStatement ps = null;
ResultSet rs = null;
ResultSetMetaData rsm = null;
List relist = null;
try {
ps = con.prepareStatement(SQL);
if (SQL == null) {
throw new Exception();
}
if (params != null && params.size() > 0) {
int count = 0;
for (Iterator iterator = params.iterator(); iterator.hasNext(); count++) {
Object object = iterator.next();
setObjectValue(ps, count + 1, object);
}
}
rs = ps.executeQuery();
rsm = rs.getMetaData();
relist = new ArrayList();
while (rs.next()) {
Map entity = new HashMap();
for (int i = 1; i <= rsm.getColumnCount(); i++) {
String columnName = rsm.getColumnName(i).toLowerCase();
Object columnValue = getObjectValue(rs, voclass, i, columnName);
entity.put(columnName, columnValue);
}
if (voclass != null) {
vo = voclass.newInstance();
BeanUtils.populate(vo, entity);
relist.add(vo);
} else {
relist.add(entity);
}
}
} catch (Exception e) {
log.error(e);
throw e;
} finally {
try {
if (rs != null) {
rs.close();
}
} catch (Exception e) {
}
try {
if (ps != null) {
ps.close();
}
} catch (Exception e) {
}
}
return relist;
}
/**
* 分页查询
*
* @param con
* @param SQL
* @param params
* @param voclass
* @param pagination
* @return
* @throws Exception
* @author
*/
public List selectPagination(Connection con, String SQL, List params,
Class voclass, Pagination pagination) throws Exception {
if (SQL == null) {
throw new NullPointerException("SQL不能为空!");
}
if (pagination == null) {
throw new NullPointerException("分页类不能为空!");
}
// TODO Auto-generated method stub
Object vo = null; // 承载值对象
PreparedStatement ps = null;
ResultSet rs = null;
ResultSetMetaData rsm = null;
List relist = null;
try {
ps = con.prepareStatement("select count(1) as count_ from ( " + SQL + " )");
if (params != null && params.size() > 0) {
int count = 0;
for (Iterator iterator = params.iterator(); iterator.hasNext(); count++) {
Object object = iterator.next();
setObjectValue(ps, count + 1, object);
}
}
rs = ps.executeQuery();
if (rs.next()) {
pagination.setTotalCount(rs.getInt(1));
}
if (pagination.getTotalCount() > 0) {
/* 组成分页内容 */
StringBuffer pagingSelect = new StringBuffer(100);
pagingSelect
.append("select * from ( select row_.*, rownum rownum_ from ( ");
pagingSelect.append(SQL);
pagingSelect
.append(" ) row_ where rownum <= ?) where rownum_ > ?");
ps = con.prepareStatement(pagingSelect.toString());
int count = 0;
if (params != null && params.size() > 0) {
for (Iterator iterator = params.iterator(); iterator.hasNext(); count++) {
Object object = iterator.next();
setObjectValue(ps, count + 1, object);
}
}
ps.setInt(count + 1, pagination.getPage()
* pagination.getCount());
ps.setInt(count + 2, (pagination.getPage() - 1)
* pagination.getCount());
log.info("pagination.getPage():" + pagination.getPage());
log.info("pagination.getCount():" + pagination.getCount());
rs = ps.executeQuery();
rsm = rs.getMetaData();
relist = new ArrayList();
while (rs.next()) {
Map entity = new HashMap();
for (int i = 1; i <= rsm.getColumnCount(); i++) {
String columnName = rsm.getColumnName(i).toLowerCase();
Object columnValue = getObjectValue(rs, voclass, i, columnName);
entity.put(columnName, columnValue);
}
if (voclass != null) {
vo = voclass.newInstance();
BeanUtils.populate(vo, entity);
relist.add(vo);
} else {
relist.add(entity);
}
}
}
} catch (Exception e) {
log.error(e);
throw e;
} finally {
try {
if (rs != null) {
rs.close();
}
} catch (Exception e) {
}
try {
if (ps != null) {
ps.close();
}
} catch (Exception e) {
}
}
return relist;
}
/**
* 获得SequenceValue
* @param sequenceName
* @return
* @throws Exception
* @author
*/
public Long getSequenceValue(Connection con, String sequenceName)throws Exception {
PreparedStatement ps = null;
ResultSet rs = null;
Long sequenceValue = null;
try{
ps = con.prepareStatement("select " + sequenceName + ".nextval from dual");
rs = ps.executeQuery();
if(rs.next()) {
sequenceValue = new Long(rs.getLong(1));
}
}catch(Exception e){
log.error(e);
throw e;
}finally{
try {
if (rs != null) {
rs.close();
}
} catch (Exception e) {
}
try {
if (ps != null) {
ps.close();
}
} catch (Exception e) {
}
}
return sequenceValue;
}
/**
* 把对象传入数据库
* @param ps
* @param count
* @param object
* @author
*/
private final void setObjectValue(PreparedStatement ps, int count, Object object) throws Exception {
log.debug("count is " + count + " object is " + object);
if(object != null) {
if(object instanceof Integer){
ps.setInt(count, ((Integer)object).intValue());
}else if(object instanceof Long) {
ps.setLong(count, ((Long)object).longValue());
}else if(object instanceof BigDecimal){
ps.setBigDecimal(count, (BigDecimal)object);
}else if(object instanceof String){
ps.setString(count, (String)object);
}else if(object instanceof java.util.Date) {
if(object!=null){
long time = ((java.util.Date)object).getTime();
ps.setDate(count, new java.sql.Date(time));
}else{
ps.setDate(count, null);
}
}else{
ps.setObject(count, object);
}
}else{
ps.setNull(count, Types.INTEGER);
}
}
/**
* 把对象传入数据库
* @param ps
* @param clazz
* @param count
* @param columnName
* @param object
* @throws Exception
* @author
*/
private final void setObjectValue(PreparedStatement ps, Class clazz, int count,
String columnName, Object object)throws Exception {
log.debug("count is " + count + " columnName is " + columnName + " object is " + object);
String classType = clazz.getDeclaredField(columnName).getType().getName();
if(classType.equals("java.lang.Integer")){
if(object != null) {
ps.setInt(count, ((Integer)object).intValue());
}else{
ps.setNull(count, Types.INTEGER);
}
}else if(classType.equals("java.lang.Long")) {
if(object != null ) {
ps.setLong(count, ((Long)object).longValue());
}else{
ps.setNull(count, Types.INTEGER);
}
}else if(classType.equals("java.math.BigDecimal")){
if(object != null) {
ps.setBigDecimal(count, (BigDecimal)object);
}else{
ps.setNull(count, Types.NUMERIC);
}
}else if(classType.equals("java.lang.String")){
if(object != null) {
ps.setString(count, (String)object);
}else{
ps.setString(count, null);
}
}else if(classType.equals("java.util.Date")) {
if(object!=null){
long time = ((java.util.Date)object).getTime();
ps.setDate(count, new java.sql.Date(time));
}else{
ps.setDate(count, null);
}
}else{
ps.setObject(count, object);
}
}
/**
* 把数据从数据取出来
* @param rs
* @param clazz
* @param count
* @param columnName
* @return
* @throws Exception
* @author
*/
private final Object getObjectValue(ResultSet rs, Class clazz, int count, String columnName) throws Exception {
Object fieldValue = null;
log.debug("columnName is " + columnName + " count is " + count);
if(columnName != null) {
if("rownum".equals(columnName)) {
fieldValue = new Long(rs.getLong(count));
}else if("rownum_".equals(columnName)) {
fieldValue = new Long(rs.getLong(count));
}else if("count_".equals(columnName)) {
fieldValue = new Long(rs.getLong(count));
}else{
String classType = clazz.getDeclaredField(columnName).getType().getName();
if(classType.equals("java.lang.Integer")){
fieldValue =new Integer( rs.getInt(count));
}else if(classType.equals("java.lang.Long")) {
fieldValue =new Long( rs.getLong(count));
}else if(classType.equals("java.math.BigDecimal")){
fieldValue = rs.getBigDecimal(count);
}else if(classType.equals("java.lang.String")){
fieldValue = rs.getString(count);
}else if(classType.equals("java.util.Date")) {
java.sql.Date date = rs.getDate(count);
if(date!= null){
fieldValue = new java.util.Date(date.getTime());
}
}else{
fieldValue = rs.getString(count);
}
}
}
return fieldValue;
}
}
有什么更好的意见,可以发到这里来交流,欢迎!!
发表评论
-
智能平台
2014-01-12 13:45 1649时间过得挺 ... -
commons-fileupload组件实现多文件上传
2009-03-18 14:04 2207java servlet代码: package pho ... -
java jxl 写的excelutil 工具
2009-02-20 14:58 3208import java.io.File;import ... -
Java中四种XML解析技术
2008-10-30 21:40 1109在平时工作中,难免会 ... -
jdbc DEMO (sql语句的批处理,事务处理,数据绑定prepare)
2008-10-30 12:42 2420package com.chinacountry.d ... -
Java调用存储过程
2008-10-15 15:17 1347本文来自:http://java.c ... -
监听器实现网站流量统计
2008-09-23 10:49 1671//test.Online public class Onli ... -
struts 资源文件的中文化处理
2008-09-23 10:28 885首先新建一个三个文本文件,比如a.txt,b.txt.c. ... -
一个不错的xml工具
2008-08-29 16:29 2128import java.io.IOException;impo ... -
xml的增删改查之SAXBuilder
2008-08-29 16:28 3649package com.tjsoft.demo; import ... -
java文件操作大全
2008-08-29 16:24 720Java代码 /** *//**获得控制台用户输入的信息 ...
相关推荐
系统的目标用户是哈尔滨工程大学(简称“哈工程”),运行单位为软件开发小组。 ##### 1.3 定义 **Java EE应用的分层模型**主要包括以下几层: - **Domain Object (领域对象)层**:该层包含一系列POJO(Plain Old ...
在分析压缩包中的源代码时,你可以关注Action类的实现、ActionForm的设计、JSP页面的布局,以及可能存在的DAO(Data Access Object)层,这些都是Struts1应用的核心组成部分。同时,也可以学习如何结合分页和CRUD...
最后,"计算机操作系统(7).doc"可能探讨更高级或现代操作系统的话题,如分布式系统、云计算环境下的操作系统特性、操作系统的微内核设计或者实时操作系统的特性。 "教育手拉手 - Powered By Molyx.com.url"是一个...
7. **用户界面设计**:VB的Form设计器允许开发者通过拖放方式构建用户界面,无需编写大量界面布局代码。 8. **代码调试**:VB集成的调试工具,如Breakpoints、Watch窗口,便于开发者找出并修复程序中的问题。 9. *...
"需要的朋友可以下载哈!"这句提示表明该项目对学习和实践SSM框架或者了解二手拍卖系统开发的人来说具有实际价值。 【标签】中涉及的关键点: 1. **SSM框架**:Spring框架提供了依赖注入和事务管理等功能,Spring ...
DAO是数据访问对象,是Java编程中用于访问数据库的一种设计模式。在本系统中,DAO层负责与数据库进行交互,封装了所有的SQL操作,实现了业务逻辑与数据操作的解耦。这样,即使数据库结构发生变化,也不会影响到上层...
用于课设那可是再好不过了哈哈哈,用到了Mysql、SpringBoot、MyBatis、Maven、Thymeleaf。用到比较新颖的应该是markdown转html,人脸识别,还有好看的登录页面哦 个人博客管理系统主要分为管理员模块和览客模块。...
这很可能是项目的主要源码包或者工程文件,包含了项目的全部代码和配置,包括但不限于BPS流程定义文件、Struts的动作类、Hibernate的数据访问对象(DAO)、配置文件如struts-config.xml、hibernate.cfg.xml等。...
1. 源代码文件夹:包含Java后端代码,如控制器、服务层、DAO层等。 2. 视图文件夹:可能使用JSP或Thymeleaf等技术,用于渲染前端页面。 3. 配置文件:如web.xml,用于配置Web应用的初始化参数和Servlet映射。 4. SQL...
在IT行业中,Spring、Spring MVC和Hibernate是三个非常重要的开源框架,它们分别在不同层面上为Java应用提供了强有力的支持。本篇文章将详细讲解这三个框架的基本概念、整合过程以及为何适合初学者。 首先,Spring...
它遵循模型-视图-控制器(MVC)设计模式,将业务逻辑、数据展示和用户交互分离,使得代码结构清晰,易于维护。Spring MVC通过DispatcherServlet处理HTTP请求,通过ModelAndView对象来传递数据到视图层,同时支持多种...
在实际项目中,mdm(可能是MetaData Management的缩写)可能代表元数据管理,这可能是一个模块或者包名,它可能包含了Spring的配置文件、实体类、DAO层、服务层以及控制器层的代码。你可以从中学习如何组织和设计一...
5. 数据访问对象(DAO):如`StudentDAO.java`,执行数据库操作。 6. SQL脚本文件:如`create_table.sql`,用于创建数据库表结构。 7. 配置文件:如`web.xml`,定义Web应用的部署描述符。 深入研究这些文件,我们...
- Struts2是一个基于MVC设计模式的Web应用框架,处理用户请求并生成响应。 - 它提供了一套强大的拦截器(Interceptor)机制,可以实现请求的预处理和后处理,比如登录检查、权限验证等。 - 使用Struts2,可以通过...
3. **MyBatis**:是一个持久层框架,它允许开发者将SQL语句直接写在XML配置文件或注解中,解决了DAO层繁琐的代码编写工作,提高了开发效率。 描述中提到前端开发使用了Bootstrap,这是一个流行的HTML、CSS和JS框架...