如何使用MySQL数据库中的行在Java中创建队列?
我是Java和SQL数据库的初学者,希望得到一些帮助 我试图制作一个程序,从phpMyAdmin MySQL数据库表访问存储的数据。我已经知道如何选择了。该数据是一份药品清单,其中包含了有关药品的所有信息。列标题如下:名称、每周的日期、有效期、制造商等 但我想用表中的行创建队列抽象数据结构 我想为每一行创建节点。我首先必须创建一个类节点,因此对于第一行,它将使用该行每列的数据创建一个节点。然后我必须创建推拉方法。然而,我相信已经有一个Java库可以做到这一点了?如何创建此队列 队列将用于存储计时顺序。每个节点对象在发生时都有自己的星期几 星期一吃A药,星期二吃B药。队列应按一周中的天数顺序订购每种药物 请询问我没有提供的任何信息。谢谢 编辑 我应该说清楚: 天数存储为字符串: e、 g如果我需要在星期一服药,则字符串为:如何使用MySQL数据库中的行在Java中创建队列?,java,mysql,data-structures,queue,nodes,Java,Mysql,Data Structures,Queue,Nodes,我是Java和SQL数据库的初学者,希望得到一些帮助 我试图制作一个程序,从phpMyAdmin MySQL数据库表访问存储的数据。我已经知道如何选择了。该数据是一份药品清单,其中包含了有关药品的所有信息。列标题如下:名称、每周的日期、有效期、制造商等 但我想用表中的行创建队列抽象数据结构 我想为每一行创建节点。我首先必须创建一个类节点,因此对于第一行,它将使用该行每列的数据创建一个节点。然后我必须创建推拉方法。然而,我相信已经有一个Java库可以做到这一点了?如何创建此队列 队列将用于存储计时
1000000此7个字符字符串中的每个位置都对应于一周中的几天。所以如果我必须在周六和周日吃药:0000011。等等…这里是可能的解决方案。我试着让它尽可能的通用。 我做了一些假设。。 我我没有设置数据库。我通过构造函数填充节点类对象。在本例中,通过数据库行创建节点类对象。数据库中的每一行对应于节点类的一个对象
public class Node {
private String mediName;
private String dayOfWeek;
private String expiry;
private String manufacturer;
public Node(String mediName,String dayOfWeek,String expiry,String manufacturer)
{
this.mediName=mediName;
this.dayOfWeek=dayOfWeek;
this.expiry=expiry;
this.manufacturer=manufacturer;
}
public String getMediName() {
return mediName;
}
public void setMediName(String mediName) {
this.mediName = mediName;
}
public String getDayOfWeek() {
return dayOfWeek;
}
public void setDayOfWeek(String dayOfWeek) {
this.dayOfWeek = dayOfWeek;
}
public String getExpiry() {
return expiry;
}
public void setExpiry(String expiry) {
this.expiry = expiry;
}
public String getManufacturer() {
return manufacturer;
}
public void setManufacturer(String manufacturer) {
this.manufacturer = manufacturer;
}
}
下面的类被设计成一个队列数据结构
public class QueueNode {
private int front=-1;
private int rear=-1;
private int capacity;
private Node[] arr;
public QueueNode(int capacity)
{
this.capacity=capacity;
arr=new Node[capacity];
}
private boolean isEmpty()
{
return front==-1;
}
private boolean isFull()
{
return (rear+1)%capacity==front;
}
public void push(Node data) throws Exception
{
if(isFull())
throw new Exception("Queue is Full");
else
{
rear=(rear+1)%capacity;
arr[rear]=data;
if(front==-1)
front=rear;
}
}
public Node pull() throws Exception
{
Node data=null;
if(isEmpty())
{
throw new Exception("Queue is Empty");
}else
{
data=arr[front];
if(front==rear)
front=rear-1;
else
{
front=(front+1)%capacity;
}
}
return data;
}
}
下面类的功能是测试Node和QueueNode类
public class MainClassForQueue {
public static void main(String[] args) throws Exception {
Node n1=new Node("A","1000000","2017-02-16","ABC");
Node n2=new Node("B","1100000","2017-02-16","ABC");
Node n3=new Node("C","0100000","2017-02-16","ABC");
Node n4=new Node("D","0010000","2017-02-16","ABC");
Node n5=new Node("F","1010000","2017-02-16","ABC");
Node n6=new Node("G","0000001","2017-02-16","ABC");
Node n7=new Node("H","0000011","2017-02-16","ABC");
Node n8=new Node("I","0001000","2017-02-16","ABC");
Node n9=new Node("J","0000100","2017-02-16","ABC");
Node n10=new Node("K","0000010","2017-02-16","ABC");
Node n11=new Node("L","1010101","2017-02-16","ABC");
Node n12=new Node("M","1001011","2017-02-16","ABC");
Node n13=new Node("N","1111111","2017-02-16","ABC");
List<Node> listNode=new ArrayList<Node>();
listNode.add(n1);
listNode.add(n2);
listNode.add(n3);
listNode.add(n4);
listNode.add(n5);
listNode.add(n6);
listNode.add(n7);
listNode.add(n8);
listNode.add(n9);
listNode.add(n10);
listNode.add(n11);
listNode.add(n12);
listNode.add(n13);
int size=listNode.size();
QueueNode queue=new QueueNode(7*size);
for(int j=0;j<7;j++)
{
for (int i = 0; i < listNode.size(); i++) {
Node data=listNode.get(i);
String day=data.getDayOfWeek();
if(day.charAt(j)=='1')
queue.push(data);
}
}
System.out.println(queue.pull().getMediName());
System.out.println(queue.pull().getMediName());
System.out.println(queue.pull().getMediName());
System.out.println(queue.pull().getMediName());
System.out.println(queue.pull().getMediName());
System.out.println(queue.pull().getMediName());
System.out.println(queue.pull().getMediName());
System.out.println(queue.pull().getMediName());
System.out.println(queue.pull().getMediName());
System.out.println(queue.pull().getMediName());
System.out.println(queue.pull().getMediName());
System.out.println(queue.pull().getMediName());
}
}
为什么不在java的收集框架中使用可用队列?@eatSleepCode这是什么,你在说什么?我不知道Java收集框架是什么。你能解释一下吗?我希望你能从db order中选择一周中的第天要取的行。。如果不是,你是如何获得行的?@kaushik很抱歉,但我不知道如何按顺序选择行。你的意思是,我应该按照我想要的顺序从数据库中获取数据,而不是获取所有数据,然后将其整理好?我已经编辑了我的问题是的,有一个功能order by,用于获取按特定列排序的数据。举个例子,如果你有一个表名student。它有三列:学生id、学生姓名、学生城市。现在,如果您编写了一个查询,请按学生城市从学生订单中选择*。它将为您提供按学生所在城市排序的行。实例如果一名学生来自城市ABC bt,其id为10,另一名学生来自EFG,其id为1。在结果集上,具有城市id ABC的学生记录将排在第一位。