《Java高级编程应用》实验七八 数据库编程1.docx

上传人:b****6 文档编号:7764616 上传时间:2023-01-26 格式:DOCX 页数:12 大小:53.68KB
下载 相关 举报
《Java高级编程应用》实验七八 数据库编程1.docx_第1页
第1页 / 共12页
《Java高级编程应用》实验七八 数据库编程1.docx_第2页
第2页 / 共12页
《Java高级编程应用》实验七八 数据库编程1.docx_第3页
第3页 / 共12页
《Java高级编程应用》实验七八 数据库编程1.docx_第4页
第4页 / 共12页
《Java高级编程应用》实验七八 数据库编程1.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

《Java高级编程应用》实验七八 数据库编程1.docx

《《Java高级编程应用》实验七八 数据库编程1.docx》由会员分享,可在线阅读,更多相关《《Java高级编程应用》实验七八 数据库编程1.docx(12页珍藏版)》请在冰豆网上搜索。

《Java高级编程应用》实验七八 数据库编程1.docx

《Java高级编程应用》实验七八数据库编程1

实验七、八数据库编程

一、实验目的

1、掌握数据库连接用到的主要API;

2、掌握数据库连接两种常用的方法。

二、实验内容

1、请以数据查询为例,简述连接数据库的步骤。

1.注册数据库的驱动

2.通过DriverManager获取数据库连接

3.通过Connection对象获取Statement

4.使用Statement执行SQL语句

5.操作ResultSet结果集

6.回收据库资源

 

2、借助JDBC方式连接数据库,查询某班学生的花名册(含学号、姓名)。

源程序:

packageJDBC;

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.ResultSet;

importjava.sql.Statement;

publicclassDatabase_Connectivity{

publicstaticvoidmain(String[]args){

Statementstmt=null;

ResultSetrs=null;

Connectionconn=null;

try{

//1.注册数据库的驱动

Class.forName("com.mysql.jdbc.Driver");

//2.通过DriverManager获取数据库连接

Stringurl="jdbc:

mysql:

//localhost:

3306/gradem";

Stringusername="root";

Stringpassword="123";

conn=DriverManager.getConnection(url,username,password);

//3.通过Connection对象获取Statement

stmt=conn.createStatement();

//4.使用Statement执行SQL语句

Stringsql="select*fromstudent";

rs=stmt.executeQuery(sql);

//5.操作ResultSet结果集

System.out.println("\t学号"+"\t|\t"+"姓名");

while(rs.next()){

Stringsno=rs.getString("sno");

Stringsname=rs.getString("sname");

System.out.println(""+sno+"\t|\t"+sname);

}

}catch(Exceptione){

e.printStackTrace();

}finally{

//6.回收据库资源

if(rs!

=null){

try{

rs.close();

}catch(Exceptione){

e.printStackTrace();

}

rs=null;

}

if(stmt!

=null){

try{

stmt.close();

}catch(Exceptione){

e.printStackTrace();

}

stmt=null;

}

if(conn!

=null){

try{

conn.close();

}catch(Exceptione){

e.printStackTrace();

}

conn=null;

}

}

}

}

 

3、完善用户的登录程序,实现从数据库访问用户名和密码的登录控制。

源程序:

packageJDBC;

importjava.sql.*;

publicclassLoginVerify{

privatestaticintb;

publicstaticvoidmain(Stringargs[]){

Stringlogin_name="KDs";

Stringlogin_password="1234";

Statementstmt=null;

ResultSetrs=null;

Connectionconn=null;

b=1;

try{

//1.注册数据库的驱动

Class.forName("com.mysql.jdbc.Driver");

//2.通过DriverManager获取数据库连接

Stringurl="jdbc:

mysql:

//localhost:

3306/gradem";

Stringusername="root";

Stringpassword="123";

conn=DriverManager.getConnection(url,username,password);

//3.通过Connection对象获取Statement

stmt=conn.createStatement();

//4.使用Statement执行SQL语句

Stringsql="select*fromUsers";

rs=stmt.executeQuery(sql);

//5.操作ResultSet结果集

while(rs.next()){

Stringuser_name=rs.getString("user_name");

Stringuser_password=rs.getString("user_password");

if(login_name.equals(user_name)){

b=1;

if(login_password.equals(user_password)){

System.out.println("登录成功!

");

}

else{

System.out.println("密码错误!

登录失败!

");

}

}

else{

b=0;

}

}

if(b==0){

System.out.println("该用户名未注册!

登录失败!

");

}

}catch(Exceptione){

e.printStackTrace();

}

}

}

 

4、在题目3的基础上完善用户的登录程序,实现如下用户的登录控制。

源程序:

 

packageJDBC;

importjava.awt.GridLayout;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.event.MouseEvent;

importjava.awt.event.MouseListener;

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.ResultSet;

importjava.sql.Statement;

importjavax.swing.JButton;

importjavax.swing.JFrame;

importjavax.swing.JLabel;

importjavax.swing.JOptionPane;

importjavax.swing.JPanel;

importjavax.swing.JPasswordField;

importjavax.swing.JTextField;

importjava.awt.BorderLayout;

importjava.awt.Color;

importjava.awt.Font;

importjava.awt.Graphics;

importjava.util.Random;

publicclassLoginIntact{

JTextFieldtf,tf_security_code;

JPasswordFieldpf;

JFramef;

JLabellName,lPassword,refresh_security_code;

JButtonbLogin,bQuit;

JPanelp1,p2,p3,p4;

privatestaticintb;

publicLoginIntact(){

//TODOAuto-generatedconstructorstub

f=newJFrame();

tf=newJTextField(18);

tf_security_code=newJTextField(10);//验证码输入框

pf=newJPasswordField(18);

lName=newJLabel("用户名:

");

lPassword=newJLabel("密码:

");

bLogin=newJButton("登录");

bQuit=newJButton("取消");

refresh_security_code=newJLabel("看不清,换一张");

//-----------登录取消添加事件监听

bLogin.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

Stringlogin_name=tf.getText();

Stringlogin_password=pf.getText();

Statementstmt=null;

ResultSetrs=null;

Connectionconn=null;

b=1;

try{

//1.注册数据库的驱动

Class.forName("com.mysql.jdbc.Driver");

//2.通过DriverManager获取数据库连接

Stringurl="jdbc:

mysql:

//localhost:

3306/gradem";

Stringusername="root";

Stringpassword="123";

conn=DriverManager.getConnection(url,username,password);

//3.通过Connection对象获取Statement

stmt=conn.createStatement();

//4.使用Statement执行SQL语句

Stringsql="select*fromUsers";

rs=stmt.executeQuery(sql);

//5.操作ResultSet结果集

Stringinput_code=tf_security_code.getText();//获取用户输入的验证码

Stringss=newmyJPanel().sb.toString();

System.out.println(ss);

if(ss.equalsIgnoreCase(input_code)){

newmyJPanel().repaint();//重绘验证码面板

if("".equals(tf.getText())||"".equals(pf.getText())){

JOptionPane.showMessageDialog(null,"用户名或密码为空!

登录失败!

");

}

else{

while(rs.next()){

Stringuser_name=rs.getString("user_name");

Stringuser_password=rs.getString("user_password");

if(login_name.equals(user_name)){

b=1;

if(login_password.equals(user_password)){

JOptionPane.showMessageDialog(null,"登陆成功!

");

//System.out.println("登录成功!

");

tf.setText("");

pf.setText("");

tf_security_code.setText("");//刷新验证码时,清空验证码输入框

}

else{

//System.out.println("密码错误!

登录失败!

");

JOptionPane.showMessageDialog(null,"密码错误,登录失败");

}

}

else{

b=0;

}

}

if(b==0){

//System.out.println("该用户名未注册!

登录失败!

");

JOptionPane.showMessageDialog(null,"用该用户名未注册!

登录失败!

");

}

}

}

else{

JOptionPane.showMessageDialog(null,"验证码输入错误!

请重新输入!

");

}

}catch(Exceptionee){

ee.printStackTrace();

}

}

});

bQuit.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

System.exit(0);

}

});

refresh_security_code.addMouseListener(newMouseListener(){

@Override

publicvoidmouseClicked(MouseEventarg0){

//TODOAuto-generatedmethodstub

f.setVisible(true);

f.repaint();//重绘刷新

tf_security_code.setText("");//刷新验证码时,清空验证码输入框

}

@Override

publicvoidmouseEntered(MouseEvente){

//TODOAuto-generatedmethodstub

}

@Override

publicvoidmouseExited(MouseEvente){

//TODOAuto-generatedmethodstub

}

@Override

publicvoidmousePressed(MouseEvente){

//TODOAuto-generatedmethodstub

}

@Override

publicvoidmouseReleased(MouseEvente){

//TODOAuto-generatedmethodstub

}

});

//--------------------

p1=newJPanel();

p2=newJPanel();

p3=newJPanel();

p4=newJPanel();

JPanelpp=newJPanel();

p1.add(lName);

p1.add(tf);

p2.add(lPassword);

p2.add(pf);

p3.add(newmyJPanel());

pp.add(tf_security_code);

p3.add(pp);

p3.add(refresh_security_code);

p4.add(bLogin);

p4.add(bQuit);

//------添加部件

f.add(newJPanel());

f.add(p1);

f.add(p2);

f.add(p3);

f.add(p4);

//------布局设置

f.setLayout(newGridLayout(5,1));

p3.setLayout(newGridLayout(1,3));

//------窗体设置

f.setVisible(true);

f.setBounds(200,300,400,300);

}

staticclassmyJPanelextendsJPanel{

publicstaticStringBuildersb;

publicvoidpaint(Graphicsg){

intwidth=130;

intheight=35;

g.setColor(Color.LIGHT_GRAY);//设置上下文颜色

g.fillRect(0,0,width,height);//填充验证码背景

g.setColor(Color.black);//设置上下文颜色

g.drawRect(0,0,width-1,height-1);//绘制边框

//绘制干扰点

Randomr=newRandom();

for(inti=0;i<100;i++){

intx=r.nextInt(width)-2;

inty=r.nextInt(height)-2;

g.drawOval(x,y,2,2);

}

g.setFont(newFont("黑体",Font.BOLD,30));//设置验证码字体

g.setColor(Color.BLUE);//设置验证码颜色

//产生随机验证码

char[]chars=("abcdefghigklmnopqistuvwxyzABCDEFGHIJKLMNOPQISTUVWXYZ"

+"0123456789").toCharArray();

sb=newStringBuilder();

for(inti=0;i<4;i++){

intpos=r.nextInt(chars.length);

charc=chars[pos];

sb.append(c+"");

}

g.drawString(sb.toString(),20,30);//写入验证码

}

}

publicstaticvoidmain(Stringargs[]){

newLoginIntact();

}

}

 

三、实验总结

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1