《java《记事小系统》》由会员分享,可在线阅读,更多相关《java《记事小系统》(25页珍藏版)》请在金锄头文库上搜索。
1、記事小系統实验目的:1. 掌握 JDBC;2. 掌握 DAO 模式应用。3. 对 sql 数据库的表的增删改查4. 实现登录操作5. 记事并写入 sql 表内6. 对所记内容进行增删改查实验要求:1. 数据库 ignore_love表 admin( id,name,password)表 note (标题 内容 日期)2. 创建数据库工具类 adminDao定义实体类 admin,与表 admin 对应定义 adminDao 接口创建 adminDao 的实现类,实现查询方法实验步骤:创建表use ignore_love;create table admin(Id int IDENTITY(1,
2、1) NOT NULL,Name varchar(12),Password varchar(20), PRIMARY KEY (Id);create table note(id int IDENTITY(1,1) NOT NULL,标题 varchar(100),内容 varchar(500),日期 varchar(100),PRIMARY KEY (Id);创建 Dao 类:package ignore_love.sql;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedState
3、ment;import java.sql.ResultSet;import java.sql.SQLException;public class BDao private static String driver = com.microsoft.sqlserver.jdbc.SQLServerDriver;static String url = jdbc:sqlserver:/127.0.0.1:1433;DatabaseName=ignore_love;static String user = sa;static String password = 123456789;static Conn
4、ection conn = null;/* 获取数据库连接对象。*/public Connection getConnection() if(conn=null)/ 获取连接并捕获异常try Class.forName(driver);conn = DriverManager.getConnection(url, user, password); catch (Exception e) e.printStackTrace();/ 异常处理return conn;/ 返回连接对象/* 关闭数据库连接。* param conn 数据库连接* param pstmt Statement 对象* pa
5、ram rs 结果集*/public void closeAll(Connection conn, PreparedStatement pstmt,ResultSet rs) / 若结果集对象不为空,则关闭if (rs != null) try catch (Exception e) e.printStackTrace(); / 若 Statement 对象不为空,则关闭if (pstmt != null) try pstmt.close(); catch (Exception e) e.printStackTrace();/ 若数据库连接对象不为空,则关闭if (conn != null)
6、try catch (Exception e) e.printStackTrace();/* * 增、删、改的操作* param sql 预编译的 SQL 语句 * param param 预编译的 SQL 语句中的?参数的字符串数组 * return 影响的行数*/public int exceuteUpdate(String preparedSql, Object param) PreparedStatement pstmt = null;int num = 0;conn = getConnection();try pstmt = conn.prepareStatement(prepare
7、dSql);if (param != null) for (int i = 0; i param.length; i+) pstmt.setObject(i + 1, param); / 为预编译 sql 设置参数num = pstmt.executeUpdate(); catch (SQLException e) e.printStackTrace(); finallycloseAll(conn, pstmt, null);return num; package ignore_love.sql;public class admin private Integer id;private Str
8、ing loginId;private String password;private String 标题;private String 内容;private String 日期;public admin() public admin(String loginId, String password) this.loginId = loginId;this.password = password;public admin( String 标题, String 内容, String 日期) this.标题 = 标题;this.内容 = 内容;this.日期 = 日期;public Integer
9、getId() return id;public void setId(Integer id) this.id = id;public String getLoginId() return loginId;public void setLoginId(String loginId) this.loginId = loginId;public String getPassword() return password;public void setPassword(String password) this.password = password;public String get 标题() re
10、turn 标题;public void set 标题(String 标题) this.标题 = 标题;public String get 内容() return 内容;public void set 内容(String 内容) this.内容 = 内容;public String get 日期() return 日期;public void set 日期(String 日期) this.日期 = 日期;界面:登录界面:package ignore_love.activity;import ignore_love.sql.admin;import ignore_love.sql.adminDao
11、;import ignore_love.sql.adminDaoServiceData;import java.awt.Color;import java.awt.Container;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import
12、 javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;import javax.swing.SwingConstants;public class admin_user extends JFrame admin admin=null; /主人private JTextField username;/ 密码private JPasswordField password;/ 小容器private JLabel title;private JLabel name;private JLab
13、el pass;private JButton login;public admin_user() / 设置窗口标题this.setTitle(用户登录系统);/ 窗体组件初始化init();this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/ 设置布局方式为绝对定位getContentPane().setLayout(null); this.setBounds(0, 0, 355, 265);/ 窗体大小不能改变this.setResizable(false);/ 居中显示this.setLocationRelativeTo(null);
14、/ 窗体可见this.setVisible(true);public void init() / 创建一个容器Container con = this.getContentPane();title = new JLabel(笔记管理);title.setHorizontalAlignment(SwingConstants.CENTER);title.setBounds(135, 33, 80, 40);name = new JLabel(账号:);name.setBounds(62, 88, 70, 20);/ 用户号码登录输入框username = new JTextField();user
15、name.setBounds(100, 90, 150, 20);/ 密码输入框pass = new JLabel(密码:);pass.setBounds(62, 120, 70, 20);password = new JPasswordField();password.setBounds(100, 120, 150, 20);/ 按钮设定login = new JButton(登录);login.setFont(new Font(幼圆, Font.PLAIN, 16);login.setForeground(Color.BLACK);login.setBackground(Color.LIGHT_GRAY);login.setFocusPainted(false);login.setBounds(135, 160, 80, 40);/给按钮添加 1 个事件login.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) String str=e.getActionCommand(); if(登录.equals(str)String getName =username.getText();String get