数据库课程设计 人事管理系统 (一)
2018-07-03 01:02:44来源:博客园 阅读 ()
一、JAVA与数据库的合作
此次开发语言为Java,所用的数据库驱动是mysql-connector-java-5.1.8-bin.jar
第一步 用Java连接MySQL数据库(驱动下载:https://dev.mysql.com/downloads/connector/j/ )
将下载好的mysql-connector-java-5.1.8-bin.jar复制到本机下载的Java的文件夹中 (作者的是 C:\Program Files (x86)\Java\jdk1.7.0_07)
然后在 Eclipse 中,鼠标选中人事管理系统工程,右键点击 Build Path,选择 Configure Build Path,会 跳 出 一 个 属 性 框 图 。选 择 Java Build Path 下 的 Libraries , 查 看 是 否 有 mysql-connector-java-5.1.8-bin.jar。
如果没有,点击Add External JARs,浏览到JDBC的MySQL 驱动的 jar 包,点击确定,将其导入到项目中。
第二步 在项目下跑一个测试代码来检测数据库是否链接成功
1 public class Test() {
2 public static void main(String []args){
3 try {
4 //mysql数据库设置驱动程序类型
5 Class.forName("com.mysql.jdbc.Driver");
6 System.out.println("mysql数据库驱动加载成功");
7
8 //sqlserver数据库设置驱动程序类型
9 //Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
10 //System.out.println("sqlserver数据库驱动加载成功");
11
12 }
13 catch(java.lang.ClassNotFoundException e) {
14 e.printStackTrace();
15 }
16 }
17 }
第三步:驱动链接成功后,就可以在数据库建立待操作的基本表了
人事管理系统主要表为 (员工信息表 和 人事变更表)
对表的基本操作包括 用SQL语句对表中数据进行 查询和更新(增删改)
首先创建一个Connection对象 然后用SQL语句对数据库进行操作 具体代码如下
package exercise3;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class DbProcess{
static Connection connection = null; //链接对象 static ResultSet rs=null ; //操作后结果集 //mysql数据库url static String userMySql="root"; //数据库用户名 static String passwordMySql="a123456"; //密码 static String urlMySql = "jdbc:mysql://localhost:3306/StaffDb?user="+userMySql+"&password="+passwordMySql+"&useUnicode=true&characterEncoding=gbk"; //将数据库与Java链接 public DbProcess() { DbProcess//构造函数 try { //mysql数据库设置驱动程序类型 Class.forName("com.mysql.jdbc.Driver"); System.out.println("mysql数据库驱动加载成功"); } catch(java.lang.ClassNotFoundException e) { e.printStackTrace(); } } public static void connect(){ //连接 try{ //mysql数据库 connection = DriverManager.getConnection(urlMySql); if(connection!=null){ System.out.println("数据库连接成功"); } } catch(Exception e){ e.printStackTrace(); } } public static void disconnect(){ //断开连接 try{ if(connection != null){ connection.close(); connection = null; } } catch(Exception e){ e.printStackTrace(); } } public static ResultSet executeQuery(String sql) { //把查询SQL语句传送至数据库并执行 然后返回查询的结果集 try { System.out.println("executeQuery(). sql = " + sql); PreparedStatement pstm = connection.prepareStatement(sql); //PreparedStatement:用于执行sql语句的对象 //用connection的PreparedStatement(sql)方法获取 rs = pstm.executeQuery(); // ResultSet rw=rs; //while(rs.next()){ //System.out.println(rs.getString("pNo")); // } } catch(SQLException ex) { ex.printStackTrace(); } return rs; } //插入 //executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)。 //executeUpdate用于执行 INSERT、UPDATE 或 DELETE 语句 //以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。 //执行增、删、改语句的方法 public static int executeUpdate(String sql) { //把更新SQL语句传送至数据库执行 int count = 0; connect(); try { Statement stmt = connection.createStatement(); count = stmt.executeUpdate(sql); } catch(SQLException ex) { System.err.println(ex.getMessage()); } disconnect(); return count; } }
例如 查询所有员工的个人信息
1 try{ 2 // 建立查询条件 3 String sql = "select * from person;"; 4 System.out.println("queryAllProcess(). sql = " + sql); 5 6 // 将查询获得的记录数据,转换成适合生成JTable的数据形式 7 DbProcess.connect(); 8 9 DbProcess.executeQuery(sql); //结果集ResultSet 10 11 12 13 // 将查询获得的记录数据,转换成适合生成JTable的数据形式 14 staffVector.clear(); //此条为UI部分 可不管 15 while(DbProcess.rs.next()){ 16 Vector v = new Vector(); 17 System.out.println(DbProcess.rs.getString("pName")); //测试语句:输出查询出来的姓名 18 v.add(DbProcess.rs.getString("pId")); 19 v.add(DbProcess.rs.getString("pName")); 20 v.add(DbProcess.rs.getString("pSex")); 21 v.add(MD5.decrypt(DbProcess.rs.getString("pPasswd"))); 22 //MD5.decrypt()为我的数据库密码算法 23 v.add(DbProcess.rs.getString("pAuthority")); 24 v.add(DbProcess.rs.getString("pDepartment")); 25 v.add(DbProcess.rs.getString("pJob")); 26 v.add(DbProcess.rs.getString("pEdulevel")); 27 v.add(DbProcess.rs.getString("pSpcialty")); 28 v.add(DbProcess.rs.getString("pBirthday")); 29 v.add(DbProcess.rs.getString("pAddress")); 30 v.add(DbProcess.rs.getString("pTel")); 31 v.add(DbProcess.rs.getString("pEmail")); 32 v.add(DbProcess.rs.getString("pState")); 33 v.add(DbProcess.rs.getString("pRemark")); 34 35 staffVector.add(v); // 查询结果集已转换为Vector v ,并将v添加到我的GUI中显示 36 } 37 StaffJTable.updateUI(); //此条更新UI,在本次可以不管 38 DbProcess.disconnect(); 39 }catch(SQLException sqle){ 40 System.out.println("sqle = " + sqle); 41 JOptionPane.showMessageDialog(null, 42 "数据操作错误","错误",JOptionPane.ERROR_MESSAGE); 43 }catch(Exception e){ 44 System.out.println("e = " + e); 45 JOptionPane.showMessageDialog(null, 46 "数据操作错误","错误",JOptionPane.ERROR_MESSAGE); 47 }
最后提前预览一波,俺本次课程设计做出最后的作品
用户模式:
管理员模式:
(各位大佬如果有好意见欢迎及时提出,假如没有及时回复可以邮件738156044@qq.com)
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Java--反射(框架设计的灵魂)案例 2020-06-11
- Java--反射(框架设计的灵魂) 2020-06-11
- 老板让你抗住千万级流量,如何做架构设计? 2020-06-11
- 设计模式-委派/策略模式 2020-06-09
- 深入理解:设计模式中的七大设计原则 2020-06-07
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash