package com.zhuyang.test;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import com.halamadrid.po.NewsPO;
public class DAOUtil {
// private static final String DRIVER_NAME = "com.mysql.jdbc.Driver";
// private static final String URL =
// "jdbc:mysql://mysql.sql86.cdncenter.net:3306/sq_halamadrid?setUnicode=true&characterEncoding=utf8";
// private static final String USER_NAME = "sq_halamadrid";
// private static final String PASSWORD = "realmadrid1902";
private static final String DRIVER_NAME = "com.mysql.jdbc.Driver";
private static final String URL = "jdbc:mysql://localhost:3306/MySQL";
private static final String USER_NAME = "root";
private static final String PASSWORD = "881104";
private static Connection conn;
private static PreparedStatement statement;
private static CallableStatement callableStatement;
private static ResultSet resultSet;
public static Connection getConnection() throws Exception {
ConnectionPool connPool = new ConnectionPool(DRIVER_NAME, URL,
USER_NAME, PASSWORD);
connPool.createPool();
Connection conn = connPool.getConnection();
// Class.forName(DRIVER_NAME);
// conn = DriverManager.getConnection(URL, USER_NAME, PASSWORD);
return conn;
}
public static PreparedStatement getStatement(String sql) throws Exception {
statement = getConnection().prepareStatement(sql);
return statement;
}
public static CallableStatement getCallableStatement(String sql)
throws Exception {
callableStatement = getConnection().prepareCall(sql);
return callableStatement;
}
public static Object callFunction(String sql, Object[] params)
throws Exception {
Object obj = null;
CallableStatement callableStatement = getCallableStatement(sql);
if (params != null) {
for (int i = 0; i < params.length; i++) {
callableStatement.setObject(i + 1, params[i]);
}
}
ResultSet resultSet = callableStatement.executeQuery();
while (resultSet.next()) {
obj = resultSet.getObject(1);
}
return obj;
}
public static int updateData(String sql, Object[] params) throws Exception {
getConnection().setAutoCommit(false);
int rows = 0;
PreparedStatement statement = getStatement(sql);
for (int i = 0; i < params.length; i++) {
statement.setObject(i + 1, params[i]);
}
statement.execute();
return rows;
}
/**
*
* @param sql
* sql statement
* @param params
* @param cls
* which class should be returned
* @return
* @throws Exception
*/
public static List searchData(String sql, Object[] params, Class cls)
throws Exception {
List list = new ArrayList();
Object result = null;
PreparedStatement statement = getStatement(sql);
if (params != null) {
for (int i = 0; i < params.length; i++) {
statement.setObject(i + 1, params[i]);
}
}
resultSet = statement.executeQuery();
while (resultSet.next()) {
Field fields[] = cls.getDeclaredFields();
Object objectCopy = cls.getConstructor(new Class[] {}).newInstance(
new Object[] {});
for (Field field : fields) {
field.setAccessible(true);
String fieldName = field.getName();
Object dbValue = resultSet.getObject(fieldName);
String setMethodName = "set"
+ StringUtils.capitalise(fieldName);
Method setMethod = cls.getDeclaredMethod(setMethodName, field
.getType());
setMethod.invoke(objectCopy, new Object[] { dbValue });
}
list.add(objectCopy);
}
return list;
}
public static void close() {
try {
if (resultSet != null) {
resultSet.close();
}
if (statement != null) {
statement.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 查询所总条数
public static int totalCount(String tableName, Object[] params) {
String sql = "select count(*) from " + tableName;
int count = 0;
try {
statement = getConnection().prepareStatement(sql);
if (params != null) {
for (int i = 0; i < params.length; i++) {
statement.setObject(i + 1, params[i]);
}
}
resultSet = statement.executeQuery();
if (resultSet.next()) {
count = resultSet.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return count;
}
public static void main(String[] args) throws Exception {
StringBuffer html =new StringBuffer();
System.out.println(listComments() );
List<CommentPO> listComments = DAOUtil.listComments();
List<CommentPO> quoteList=new ArrayList();
for(CommentPO comments :listComments ){
quoteList =addComment(listComments,quoteList,comments);
}
for(CommentPO po:quoteList){
System.out.println("+++++");
System.out.println("找到=="+po.getId() + "comment id"+po.getCommentid());
System.out.println("===========");
html.append("原帖 ").append(po.getUsername()).append("内容 :").append(po.getContent());
}
System.out.println(html);
}
protected static List addComment(List<CommentPO> list, List<CommentPO> quoteList,CommentPO comments) {
if(comments.getCommentid()!=null ){
for(CommentPO comment :list ){
if(comments.getId().equals(comment.getCommentid())){
//System.out.println("找到=="+comment.getId() + "comment id"+comment.getCommentid());
quoteList.add(comment);
addComment(list, quoteList, comment);
}
}
return quoteList;
}
return quoteList;
}
public static List<CommentPO> listComments() {
List<CommentPO> list;
try {
String sql ="select * from commenttest order by id desc";
list = DAOUtil.searchData(sql, null, CommentPO.class);
return list;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
分享到:
相关推荐
根据给定文件的信息,我们可以提炼出关于SSS1700这款USB音频芯片的重要知识点。 ### 一、SSS1700概述 SSS1700是固态系统有限公司(简称3S)推出的一款高度集成的单芯片USB音频控制器,主要应用于耳机设备。相较...
【标题】"sss6675-sss6677U盘量产工具"涉及的知识点主要涵盖U盘的量产、金士顿U盘、CDROM模拟以及系统安装。以下是对这些概念的详细解释: 1. **U盘量产**:U盘量产是指通过专用的量产工具对U盘进行格式化、分区、...
标题中的"SSS_MP_Utility_v2162"很可能是指一个名为"SSS MP Utility"的软件的版本号,其中"v2162"表明这是第2162版。这个工具可能是专为特定的工业设备或系统设计的,因为后续的"industrial7x9"标签暗示了它可能与7...
SSS1700B1是一款由台湾鑫创公司设计的USB音频编解码芯片,旨在作为Cmedia CM6533的低成本替代方案。该芯片支持24位音频采样和96kHz的采样率,适用于高质量的音频处理应用。在本文中,我们将深入探讨SSS1700B1的主要...
【鑫创(SSS)sss6690/sk6611 量产工具】是针对鑫创科技生产的SSS6690和SK6611芯片进行批量生产编程和测试的专业软件工具。该工具主要用于USB闪存盘、SD卡、MMC卡等存储设备的制造过程中,确保芯片在大规模生产时...
SSS6677-A7优盘量产工具是一款专门针对SSS6677主控芯片的优盘进行批量生产、格式化和修复的软件工具。这个工具的主要目的是帮助用户解决优盘出现的各种问题,如无法识别、读写速度慢、容量显示不正确等。在了解如何...
在这个“sss.rar_1216sss com_786sss_969sss.com\_sss_sss aps”压缩包中,包含了一个名为“sss”的文件,很可能是一个源代码文件,可能是用C、C++、Python或JavaScript等编程语言编写的,用于实现屏幕冒泡排序的...
"SSS PTS V2.0.2中文翻译版" SSS PTS V2.0.2中文翻译版是企业级存储测试解决方案,旨在为存储设备提供详细的性能测试和评估报告。本文档将对SSS PTS V2.0.2中文翻译版的标题、描述、标签和部分内容进行详细的解释和...
### 台湾鑫创SSS6675-SSS6677_U盘量产图文教程 #### 一、量产工具概述及作用 量产工具是一种专门用于对U盘底层固件进行重写或修改的软件工具,通常由U盘主控芯片的制造商提供。对于SSS6675-SSS6677系列U盘来说,量...
【鑫创SSS6677量产工具】是一款专门针对鑫创科技生产的SSS6677芯片进行批量生产操作的软件工具。该工具的主要功能是帮助用户对使用SSS6677芯片的存储设备进行初始化、格式化、修复以及性能测试等一系列生产和维护...
《SSS_MP_Utility_v2173:VHDL编程中的钢琴功能工具》 在电子设计自动化领域,VHDL(Very High Speed Integrated Circuit Hardware Description Language)是一种强大的硬件描述语言,用于描述数字系统的结构和行为...
根据给定文件信息,以下是对SSS1630A1-U6D相关的知识点的详细说明: 1. SSS1630A1-U6D设备概述: SSS1630A1-U6D是由Solid State System Co., Ltd.(3S)设计生产的一款高度集成的单芯片USB音频控制器。该控制器具备...
【标题】"SSS.rar_www.533sss.com_www.SSS" 提供的信息表明,这是一个与网络资源相关的压缩文件,可能是从网站www.533sss.com或www.SSS下载的游戏资源,文件名中的"连连看游戏"暗示了内容可能是一个连连看游戏的应用...
对于金士顿sss6691的量产,本人也在网上找了好多,发现很多是只支持以下主控和FLASH 1 6677 + CM Flash 2 6677 + Normal Flash 3 6677 + USB Disk AND CDROM 4 6690 + IM 34nm Normal Flash 5 6690 + SanDisk 43nm ...
"sss量产修复工具"是一种专门用于修复和管理SSD(固态硬盘)的软件工具。在IT领域,量产工具通常指的是能够对大量相同型号的存储设备进行格式化、分区、写入数据等批量操作的软件。这里的“sss”可能是特定品牌或...
【sss6691量产工具】是一款专门针对sss6691芯片进行批量生产操作的软件工具。在电子制造业中,量产工具对于高效、大批量地烧录固件或者进行设备初始化至关重要。这款工具简化了操作流程,允许用户在更改相应路径后...
鑫创SSS量产工具,亲测下面u盘可用 ================================ 设备描述: [I:]USB Mass Storage Device(Kingston DT 101 II) 设备类型: 大容量存储设备 协议版本: USB 2.00 当前速度: 高速(High...
【TC58NC6690-SSS6692-B4-Toshiba(东芝) 量产工具】是一款专为Toshiba(东芝)生产的SSS6692存储芯片设计的量产工具。在理解这个工具之前,我们需要先了解几个基本概念。 **一、SSS6692存储芯片** SSS6692是Toshiba...
在提供的文件内容中,涉及到关于SSS1700 USB耳机及192K麦克风方案设计电路图的关键信息,结合文件的标题、描述、标签和部分内容,我们可以整理出如下知识点: 1. SSS1700 USB耳机设计电路的知识点: - SSS1700是一...
SSS1700是3S高度集成的单片USB音频控制器,带有片上振荡器 将外部12MHz晶体组件保存在耳机应用程序中。SSS1700功能支持 96 KHz 24位采样率,带外部音频编解码器(24位/96 KHz I2S输入和输出),并具有 内置立体声...