数据库实训项目选题:
1、图书管理系统
功能需求:用户登陆图书管理系统,如没有可注册。登陆后,可查看图书信息,可实现图书借还,查询等功能
数据库:用户信息,图书信息
2、学生信息管理系统
功能需求:用户登陆学生信息管理系统,如没有可注册。登陆后,可查看学生的信息,可新增,删除,修改学生;可实现学生成绩管理,如查看成绩,添加成绩等功能。
数据库:学生信息
3、航空订票系统
功能需求:用户可登陆订票系统,如没有可注册。登陆订票系统后,可查看航班信息,可预订机票,可退订机票等功能
数据库:用户信息,机票信息
代码部分:(简单Login实现)
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
//登录界面
//main方法和init方法是同一级
//同级 无顺序
//mouse鼠标
//Java里面用之前必须先创建
public class Login {
//main方法--主方法,在主方法中调用自定义的init方法
public static void main(String[] args) {
/*也可以直接init(),但是会导致init()为static*/
Login lgn = new Login();
lgn.init();
}
//创建Login类
//静态方法不能用非静态的变量
// static Login lgn = new Login();
JTextField t1 = new JTextField(20);
JPasswordField p1 = new JPasswordField(20);
//创建一个空标签 -- 该空标签主要用于显示用户名或者密码不正确的
JLabel empty = new JLabel();
JFrame f = new JFrame(); //创建一个窗体
//自定义方法,方法名为init,该方法的主要功能是初始化窗体界面
public void init() {
JPanel p = new JPanel(); //创建一个面板
//创建用户名和文本输入框
JLabel usrname = new JLabel("用户名:");
//创建密码和密码输入框
JLabel password = new JLabel("密 码:");
//创建登录和注册按钮
JButton login = new JButton("登录");
//创建自定义的内部类MyListener
MyListener ml = new MyListener();
//给登录按钮绑定鼠标的监听事件
login.addMouseListener(ml);
JButton register = new JButton("注册");
p.add(usrname); //将用户名放入面板中
p.add(t1); //将文本输入框放入面板中
p.add(password); //将密码放入面板中
p.add(p1); //将密码输入框放入面板中
p.add(login); //将登录按钮放入面板中
p.add(register); //将注册按钮放入面板中
p.add(empty); //将空标签放入面板中
f.add(p); //将面板放入窗体中
f.setVisible(true); //设置窗体可见
f.setSize(320, 300); //设置窗体的大小
f.setLocation(600, 200); //设置窗体的位置
f.setTitle("登陆界面"); //设置窗体的标题
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置关闭窗体的后台
}
//自定义一个内部类(在一个类的里面,再定义一个类,该类叫做内部类)
//让MyListener去继承MouseAdapter,因为MouseAdapter具有鼠标时间的监听,
//继承之后就会继承过来父类的鼠标事件监听 Alt+/
/*监听器,里面含有很多监听事件*/
public class MyListener extends MouseAdapter {
//想法错误
// Login l;
// public MyListener() {
// this.l = l;
// }
//鼠标单击事件的监听
@Override
public void mouseClicked(MouseEvent e) {
//System.out.println("你点我了....");
//验证在登陆界面输入的用户名或者密码是否正确
//1.获取登录界面输入的用户名和密码的内容
/**
* p1./t1. 作用域的问题!访问不到
* 故:可以通过扩大作用域,放在与main,init,内部类同级的位置(利用左边小减号)
* 故:升高权限,在这几个里面都可以用
*/
String strName = t1.getText(); //t1表示用户名输入框,获取用户名输入框输入的内容
//横杠代表过时了,但是还是可以用
String strPwd = p1.getText(); //p1表示密码输入框,获取密码输入框输入的内容
System.out.println(strName + "," + strPwd);
//2.连接数据库,要查询myuser表是否有在登录界面输入的用户名和密码
//获得数据库的连接
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String username = "system";
String pwd = "tarena";
//父类继承来的方法并没有抛出异常,所以不能throws
try {
Connection con = DriverManager.getConnection(url, username, pwd);
//预编译SQL语句
//String sql = "select * from myuser"; //从所有的里面,一条一条的查询 效率低
//and 并且 必须两种情况都符合
String sql = "select * from myuser where name=? and pwd=?";
PreparedStatement prep = con.prepareStatement(sql);
prep.setString(1, strName);
prep.setString(2, strPwd);
//执行SQL语句
ResultSet rs = prep.executeQuery();
//根据rs结果集是否有数据,来判断输入的用户名和密码是否正确
if (rs.next()) { //rs结果集有数据 -- 用户名和密码输入正确
System.out.println("对啦");
JFrame w = new JFrame(); //创建一个新窗体
w.setVisible(true);
w.setSize(400, 300);
//让登录界面窗体关闭
//即使lgn放在和main同级,内部类不能 lgn. 想法错误
f.setVisible(false);
} else { //rs结果集没有数据 -- 用户名或者密码不正确
//System.out.println("错啦");
//将错啦信息显示在空标签上
empty.setText(" 用户名或者密码不正确 ");
}
} catch (SQLException e1) {
e1.printStackTrace();
}
}
}
}