「java轮训查询」java轮询读取文件
本篇文章给大家谈谈java轮训查询,以及java轮询读取文件对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
Java里通用的查询方法怎么写?
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.PreparedStatement;
public class JDBC {
private Connection con = null;
private Statement stmt = null;
private ResultSet rs = null;
private String driver = "com.mysql.jdbc.Driver";
private String url="jdbc:mysql://localhost:3306/dataname
?characterEncoding=GBK";
private String user = "root";
private String password = "mysql";
/**
* 准备连接
*/
public void startConnection() throws ClassNotFoundException, SQLException {
Class.forName(driver); //注册数据库驱动
con = DriverManager.getConnection(url, user, password); //获得数据库连接
}
/**
* 执行select 并返回结果集 throws SQLException
*/
public ResultSet query(String sql) throws SQLException {
stmt = con.createStatement(); //创建Statement
rs = stmt.executeQuery(sql); //执行查询
return rs;
}
/**
* 执行insert update delete
*/
public int update(String sql) throws SQLException {
stmt = con.createStatement();
int r = stmt.executeUpdate(sql);
return r;
}
/**
* 释放资源(连接)
*/
public void releaseConnection() {
try {
if (rs != null)
rs.close();
stmt.close();
if (con != null)
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
如何用Java实现数据库查询
import java.sql.*;
public class MSSQLText
{
public static void main(String args[])
{
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Northwind";
String user="sa";//这里替换成你自已的数据库用户名
String password="sa";//这里替换成你自已的数据库用户密码
String sqlStr="select CustomerID, CompanyName, ContactName from Customers";
try
{ //这里的异常处理语句是必需的.否则不能通过编译!
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
System.out.println("类实例化成功!");
Connection con = DriverManager.getConnection(url,user,password);
System.out.println("创建连接对像成功!");
Statement st = con.createStatement();
System.out.println("创建Statement成功!");
ResultSet rs = st.executeQuery(sqlStr);
System.out.println("操作数据表成功!");
System.out.println("----------------!");
while(rs.next())
{
System.out.print(rs.getString("CustomerID") + " ");
System.out.print(rs.getString("CompanyName") + " ");
System.out.println(rs.getString("ContactName"));
}
rs.close();
st.close();
con.close();
}
catch(Exception err){
err.printStackTrace(System.out);
}
}
}
java的递归查询怎么写
原文在这里,写得不错,楼主可参考下,具体链接如下,我只是搬运工!
/**
* 说明方法描述:将list转为树tree结构
*
* @param allRrecords
* @return
* @time 2016年5月10日 下午6:00:35
* @author yangdong
*/
public ListRecord useListRecordToTree(ListRecord allRrecords) {
ListRecord listParentRecord = new ArrayListRecord();
ListRecord listNotParentRecord = new ArrayListRecord();
// 第一步:遍历allRrecords保存所有数据的uuid用于判断是不是根节点
MapString, String mapAllUuid = new HashMapString, String();
MapString, Record allRecordMap = new HashMapString, Record();
for (Record record : allRrecords) {
mapAllUuid.put(record.getStr("uuid"), record.getStr("uuid"));
allRecordMap.put(record.getStr("uuid"), record);
}
// 第二步:遍历allRrecords找出所有的根节点和非根节点
if (allRrecords != null allRrecords.size() 0) {
for (Record record : allRrecords) {
if (StringUtil.isBlank(record.getStr("parent_uuid"))
|| !mapAllUuid.containsKey(record.getStr("parent_uuid"))) {
listParentRecord.add(record);
} else {
listNotParentRecord.add(record);
}
}
}
// 第三步: 递归获取所有子节点
if (listParentRecord.size() 0) {
for (Record record : listParentRecord) {
// 添加所有子级
record.set("childs", this.getTreeChildRecord(listNotParentRecord, record.getStr("uuid")));
}
}
return listParentRecord;
}
/**
* 说明方法描述:使list转换为树并根据关键字和节点名称过滤
*
* @param allRecords 所有节点
* @param keywords 要过滤的关键字
* @param filterFields 要过滤的字段
* @return
* @time 2016年5月19日 下午3:27:32
* @author yangdong
*/
public ListRecord useListRecordToTreeByKeywords(ListRecord allRecords, String keywords, String... filterFields) {
ListRecord listRecord = new ArrayListRecord();
MapString, Record allRecordMap = new HashMapString, Record();
for (Record record : allRecords) {
allRecordMap.put(record.getStr("uuid"), record);
}
// 遍历allRrecords找出所有的nodeName和关键字keywords相关的数据
if (allRecords != null allRecords.size() 0) {
if (filterFields.length 1) {
for (Record record : allRecords) {
for (String field : filterFields) {
// 比较
if (record.getStr(field).toLowerCase().indexOf(keywords.toLowerCase()) != -1) {
listRecord.add(record);
}
}
}
} else {
for (Record record : allRecords) {
// 比较
if (record.getStr(filterFields[0]).toLowerCase().indexOf(keywords.toLowerCase()) != -1) {
listRecord.add(record);
}
}
}
}
// 查找过滤出来的节点和他们的父节点
listRecord = this.getSelfAndTheirParentRecord(listRecord, new ArrayListRecord(),
new HashMapString, Record(), allRecordMap);
// 将过滤出来的数据变成树tree结构
listRecord = this.useListRecordToTree(listRecord);
return listRecord;
}
/**
* 说明方法描述:递归查询子节点
*
* @param childList 子节点
* @param parentUuid 父节点id
* @return
* @time 2016年5月10日 下午3:29:35
* @author yangdong
*/
private ListRecord getTreeChildRecord(ListRecord childList, String parentUuid) {
ListRecord listParentRecord = new ArrayListRecord();
ListRecord listNotParentRecord = new ArrayListRecord();
// 遍历tmpList,找出所有的根节点和非根节点
if (childList != null childList.size() 0) {
for (Record record : childList) {
// 对比找出父节点
if (StringUtil.equals(record.getStr("parent_uuid"), parentUuid)) {
listParentRecord.add(record);
} else {
listNotParentRecord.add(record);
}
}
}
// 查询子节点
if (listParentRecord.size() 0) {
for (Record record : listParentRecord) {
// 递归查询子节点
record.set("childs", getTreeChildRecord(listNotParentRecord, record.getStr("uuid")));
}
}
return listParentRecord;
}
/**
* 说明方法描述:递归找出本节点和他们的父节点
*
* @param parentList 根据关键字过滤出来的相关节点的父节点
* @param resultList 返回的过滤出来的节点
* @param filterRecordMap 已经过滤出来的节点
* @param allRecordMap 所有节点
* @return
* @time 2016年5月19日 上午9:53:56
* @author yangdong
*/
private ListRecord getSelfAndTheirParentRecord(ListRecord parentList, ListRecord resultList,
MapString, Record filterRecordMap,
MapString, Record allRecordMap) {
// 当父节点为null或者节点数量为0时返回结果,退出递归
if (parentList == null || parentList.size() == 0) {
return resultList;
}
// 重新创建父节点集合
ListRecord listParentRecord = new ArrayListRecord();
// 遍历已经过滤出来的节点
for (Record record : parentList) {
String uuid = record.getStr("uuid");
String parent_uuid = record.getStr("parent_uuid");
// 如果已经过滤出来的节点不存在则添加到list中
if (!filterRecordMap.containsKey(uuid)) {
listParentRecord.add(record);// 添加到父节点中
filterRecordMap.put(uuid, record);// 添加到已过滤的map中
allRecordMap.remove(uuid);// 移除集合中相应的元素
resultList.add(record);// 添加到结果集中
}
// 找出本节点的父节点并添加到listParentRecord父节点集合中,并移除集合中相应的元素
if (StringUtil.isNotBlank(parent_uuid)) {
Record parentRecord = allRecordMap.get(parent_uuid);
if (parentRecord != null) {
listParentRecord.add(parentRecord);
allRecordMap.remove(parent_uuid);
}
}
}
// 递归调用
getSelfAndTheirParentRecord(listParentRecord, resultList, filterRecordMap, allRecordMap);
return resultList;
}
[java] view plain copy
//示例
[java] view plain copy
/**
* 说明方法描述:递归查询所有权限
*
* @param keyword
* @param is_deleted
* @return
* @time 2016年5月10日 下午3:47:50
* @author yangdong
*/
public ListRecord getRecordByKeywordRecursive(String keyword, String is_deleted) {
// 第一步:查询所有的数据
StringBuffer sql = new StringBuffer(
" select pa.uuid,pa.parent_uuid,pa.author_code,pa.author_name,pa.is_menu,pa.sort_number,pa.is_enable,pa.menu_icon ");
sql.append(" from s_author pa");
ListObject params = new ArrayListObject();
sql.append(" where pa.is_deleted=? ");
params.add(is_deleted);
sql.append(" order by pa.sort_number asc ");
ListRecord allRrecords = Db.use(AppConst.DB_DATASOURCE_MAIN).find(sql.toString(), ParamUtil.listToArray(params));
[java] view plain copy
//第二步:将list变为树tree结构
if (StringUtil.isNotBlank(keyword)) {
return super.useListRecordToTreeByKeywords(allRrecords, keyword, "author_name");
} else {
return super.useListRecordToTree(allRrecords);
}
}
java中sql的多重循环查询问题求助。
Statement既然有两个,即它们的结果集是分开的,这样从数据库上是没有错误的,第一次循环(这里的第一次循环是指外围循环,即rs1的循环)没有问题,问题在于当进入第二次循环(rs1的第二次循环)后,由于rs2在第一次循环(这里的第一次循环是指外围循环,即rs1的循环)结束时调用了close方法已经关闭了,所以当第二次循环时(rs1的第二次循环)运行在rs2=stmt2.executeQuery(sql2);.
会发生错误,rs2已经关闭了,所以建议rs2这个对象要在rs1的循环中建立。
在使用Statement时要注意调用executeQuery,每调用一次,那么该Statement对象对应的上一次结果集就会自动关闭掉。
如rs1=st.executeQuery(sql);
rs2=st.executeQuery(sql);
这时rs1就自动关闭掉了,你再想获得rs1的内容会异常。
如何用java监听 数据库某张表的变化
ajax 轮训,HTML5 websocket 触发器是在数据库端的,实现不了你的要求。
ajax轮训每隔几秒就查询一次,保存上次的总条数,然后下次只要不一样了就弹窗。
你这个对服务器压力很大(如果用户很多的话)
关于java轮训查询和java轮询读取文件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。