Java怎么显示时间,Java怎么显示图片
用爪哇岛的摇摆组件画出表格,实现"增加"、"删除"、"保存"、"退出"的功能,并且与关系型数据库数据库相连接。
可以实现提取数据库中表的数据显示到含有表格的窗体上,也可以将在表格中修改的内容写入数据库表中。
写爬虫互联网协议(互联网协议)被封了怎么解决?立即使用
我实现以上功能时用了两个类,其中一个类是我的框架,另外一个类是PutinStorage。
具体代码如下(以下代码均为完整代码,经测试成功的):
PutinStorage类:
导入Java。SQL。连接;
导入Java。SQL。司机经理;
导入Java。SQL。准备好的声明;
导入Java。SQL。结果集;
导入Java。SQL。结果集元数据;
导入Java。SQL。SQL异常;
导入Java。util。向量;
导入javax。挥棒。joptionpane
公共类PutinStorage {
//得到数据库表数据
公共静态向量getRows(){
字符串SQL _ URL= JDBC:MySQL://localhost:3306/哈哈;//数据库路径(一般都是这样写),测试是数据库名称
string name=" root//用户名
字符串密码= 123456 ;//密码
连接接头;
prepared语句prepared语句=null
向量行=空;
向量列标题=空
尝试{
班级。forname( com。MySQL。JDBC。司机’);//连接驱动
驱动程序管理器。getconnection(SQL _ URL,名称,密码);//连接数据库
//如果(!conn.isClosed())
//System.out.println(成功连接数据库);
prepared语句=conn . prepare语句( select * from aa );
结果集结果1=准备好的语句。执行查询();
if(result1.wasNull())
joptionpane。showmessagedialog(null,结果集中无记录);
行数=新向量();
结果集元数据rsmd=结果1。获取元数据();
while(result1.next()){
行。add元素(get nextrow(result 1,rsmd));
}
} catch(ClassNotFoundException e){
//TODO自动生成的捕捉块
System.out.println(未成功加载驱动。);
e。printstacktrace();
} catch (SQLException e) {
//TODO自动生成的捕捉块
System.out.println(未成功打开数据库。);
e。printstacktrace();
}
返回行;
}
//得到数据库表头
公共静态向量getHead(){
字符串SQL _ URL= JDBC:MySQL://localhost:3306/哈哈;//数据库路径(一般都是这样写),测试是数据库名称
string name=" root//用户名
字符串密码= 123456 ;//密码
连接接头;
prepared语句prepared语句=null
向量列标题=空
尝试{
班级。forname( com。MySQL。JDBC。司机’);//连接驱动
驱动程序管理器。getconnection(SQL _ URL,名称,密码);//连接数据库
//如果(!conn.isClosed())
//System.out.println(成功连接数据库);
prepared语句=conn . prepare语句( select * from aa );
结果集结果1=准备好的语句。执行查询();
布尔更多记录=结果1。next();
如果(!更多记录)
joptionpane。showmessagedialog(null,结果集中无记录);
列标题=new Vector();
结果集元数据rsmd=结果1。获取元数据();
for(int I=1;I=rsmd。get column count();我)
列标题。添加元素(rsmd。获取列名(I));
} catch(ClassNotFoundException e){
//TODO自动生成的捕捉块
System.out.println(未成功加载驱动。);
e。printstacktrace();
} catch (SQLException e) {
//TODO自动生成的捕捉块
System.out.println(未成功打开数据库。);
e。printstacktrace();
}
返回列标题;
}
//得到数据库中下一行数据
私有静态向量getNextRow(结果集rs,结果集元数据rsmd)引发SQLException{
Vector currentRow=new Vector();
for(int I=1;I=rsmd。get column count();i ){
当前行。添加元素(RS。getstring(I));
}
返回当前行;
}
/*//主函数
公共静态void main(String[] args){
getRows();
}*/
}MyFrame类:
导入Java。awt。borderlayout
导入Java。awt。流程布局;
导入Java。awt。事件。动作事件;
导入Java。awt。事件。动作监听器;
导入Java。SQL。连接;
导入Java。SQL。司机经理;
导入Java。SQL。准备好的声明;
导入Java。SQL。SQL异常;
导入Java。util。向量;
导入javax。挥棒。jbutton
导入javax。挥棒。jframe
导入javax。挥棒。jpanel
导入javax。挥棒。jscrollpane
导入javax。挥棒。jtable
导入javax。挥棒。桌子。defaulttablemodel
导入per。土叔。存储。普京存储;
公共类自己扩展JFrame{
DefaultTableModel表模型;//默认显示的表格
命令按钮添加、删除、退出、保存;//各处理按钮
组建表;//表格
JPanel panelUP//增加信息的面板
//构造函数
公共MyFrame(){
this.setBounds(300,200,600,450);//设置窗体大小
this.setTitle(测试);//设置窗体名称
这个。set layout(new BorderLayout());//设置窗体的布局方式
//新建各按钮组件
add=new JButton(增加);
del=新JButton(删除);
save=new JButton(保存);
exit=new JButton(退出);
panel up=new JPanel();//新建按钮组件面板
panelUP.setLayout(新流程布局(流程布局。左));//设置面板的布局方式
//将各按钮组件依次添加到面板中
panelUP.add(添加);
面板向上。add(del);
panelUP.add(保存);
panelUP.add(退出);
//取得哈哈的笑数据库的嗜酒者互诫协会表的各行数据
向量行数据=普京存储。getrows();
//取得哈哈的笑数据库的嗜酒者互诫协会表的表头数据
向量列名=普京存储。gethead();
//新建表格
table model=new DefaultTableModel(行数据,列名);
table=new JTable(表格模型);
JScrollPane s=new JScrollPane(table);
//将面板和表格分别添加到窗体中
this.add(panelUP,BorderLayout .北);
this.add
//事件处理
我的事件();
这个。设置可见(真);//显示窗体
这个。setdefaultcloseoperation(JFrame .EXIT _ ON _ CLOSE);//设置窗体可关闭
}
//事件处理
public void MyEvent(){
//增加
add.addActionListener(新的ActionListener(){
@覆盖
已执行公共void操作(操作事件参数0){
//增加一行空白区域
表模型。addrow(new Vector());
}
});
//删除
del.addActionListener(新的ActionListener(){
@覆盖
已执行公共void操作(操作事件参数0){
//TODO自动生成的方法存根
//删除指定行
int rowcount=table。getselectedrow();
if(rowcount=0){
表模型。移除行(rowcount);
}
}
});
/**
* 保存
* 我的解决办法是直接将嗜酒者互诫协会表中的全部数据删除,
* 将表格中的所有内容获取到,
* 然后将表格数据重新写入嗜酒者互诫协会表
*/
保存。addactionlistener(新操作侦听器(){
@覆盖
已执行公共无效操作(操作事件e){
int列=表。get column count();//表格列数
int row=table。getrowcount();//表格行数
//值数组存放表格中的所有数据
字符串[][]值=新字符串[行][列];
for(int I=0;我划船;i ){
for(int j=0;j柱;j ){
value[i][j]=table.getValueAt(i,j).toString();
}
}
//以下均为对数据库的操作
字符串SQL _ URL= JDBC:MySQL://localhost:3306/哈哈;//数据库路径(一般都是这样写),哈哈是数据库名称
string name=" root//用户名
字符串密码= 123456 ;//密码
连接接头;
prepared语句prepared语句=null
尝试{
班级。forname( com。MySQL。JDBC。司机’);//连接驱动
驱动程序管理器。getconnection(SQL _ URL,名称,密码);//连接数据库
如果(!conn.isClosed())
System.out.println(成功连接数据库);
//删除嗜酒者互诫协会表中所有数据
prepared statement=conn . prepare statement( delete from aa where true );
准备好的声明。执行update();
//将价值数组中的数据依次存放到嗜酒者互诫协会表中
for(int I=0;我划船;i ){
prepared statement=conn . prepare statement( insert into aa values( integer。parse int(value[I][0]), value[I][1] ));
准备好的声明。执行update();
}
} catch(ClassNotFoundException E1){
//TODO自动生成的捕捉块
System.out.println(未成功加载驱动。);
E1。printstacktrace();
} catch (SQLException e1) {
//TODO自动生成的捕捉块
System.out.println(未成功打开数据库。);
E1。printstacktrace();
}
//保存后退出
系统。退出(0);
}
});
//退出
退出。addactionlistener(新操作侦听器(){
@覆盖
已执行公共无效操作(操作事件e){
//TODO自动生成的方法存根
系统。退出(0);
}
});
}
//主函数
公共静态void main(String[] args){
new my frame();
}
}执行以上代码的时候,最初显示的窗体如下所示:
点击增加按钮并写入需要增加的内容(我增加了三次)如下图:
点击删除按钮,删除指定行(我删除了第2行和第4行),如下图:
点击保存按钮,你会发现窗口也关闭了。这是您可以重新执行代码的地方,您会发现出现了如上图所示的表单页面。
单击退出按钮关闭窗口。java就是这样展示mysql的详细内容的。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。