jdbc实现学生管理系统
程序员文章站
2022-05-06 16:08:30
...
概述
在Java学习过程中,将学到的知识综合到一起使用是一个必要的过程,所以,来巩固一下java调用数据库的相关的知识。
新建的项目采用的是MVC模式构建的,使用的IDEA + mysql5.6.12 + jdk1.8.0_71, 针对学生信息的增删改查开发的一个简单的管理系统(*面)。
简介
简单介绍一下项目目录结构
包名 | 作用 |
---|---|
controller | 用于存放操作数据的类,在View和数据库中间起着连接的作用 |
dao | 用于存放操作数据库数据的类 |
db | 用于得到数据库连接 |
entity | 用于存放项目中需要用到的模型的实体类 |
开发流程
第一步:新建数据库和表
我们实现的是基本的学生信息管理系统,那么主要对象是学生,次要对象时管理员,那么他们的属性分别是:
学生
(名字、性别、年龄、电话、地址)
name varchar(20) not null,
sex varchar(5) not null,
age int not null,
phone varchar(11) not null,
address varchar(20) not null
管理员
(账号、密码)
account varchar(20) not null,
paw varchar(20) not null
第二步:创建工程,导入jdbc的jar包
此时,我们编写测试连接的代码,来测试一下是否可以成功连接数据库。
//静态块初始化
static {
try {
Class.forName("com.mysql.jdbc.Driver");
conn = (Connection) DriverManager.getConnection(url,username,password);
System.out.println("连接成功!");
} catch (Exception e) {
System.out.println("连接失败!");
e.printStackTrace();
}
}
//得到连接实例的引用
public static Connection getConnection(){
return conn;
}
//测试代码
public static void main(String[] args) {
//测试连接
Connection connection = DbConnectUtil.getConnection();
}
运行试试
连接成功!
Process finished with exit code 0
可以看到,数据库连接成功了。
第三步:实现相应表的数据的增删改查的方法的封装
管理员表的相关操作
新增信息
public static boolean addManagerInfo(Connection connection, Manager manager) {
boolean result;
String mysql = "insert into number(account,paw) values(?,?)";
PreparedStatement ptt = null;
try {
ptt = (PreparedStatement) connection.prepareStatement(mysql);
ptt.setString(1, manager.getAccount());
ptt.setString(2, manager.getPsw());
result = ptt.execute();
} catch (SQLException e) {
System.out.println("添加管理员信息失败");
e.printStackTrace();
result = false;
}finally {
try {
ptt.close();
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return result;
}
测试一下
public static void main(String[] args) {
Connection connection = DbConnectUtil.getConnection();
//添加管理员
ManagerDao.addManagerInfo(connection,new Manager("123456","123456"));
}
我们看下数据库里面是否添加成功了
mysql> select * from number;
+----+---------+--------+
| id | account | paw |
+----+---------+--------+
| 1 | 123456 | 123456 |
+----+---------+--------+
1 row in set (0.02 sec)
可以看到,数据添加成功了。
下面我们实现查询的操作
public static List<Manager> queryAllManager(Connection connection) {
Statement stt = null;
ResultSet rs = null;
List<Manager> managers = new ArrayList<>();
try {
stt = (Statement) connection.createStatement();
rs=stt.executeQuery("select * from number");
while(rs.next()){
int id = rs.getInt("id");
String account = rs.getString("account");
String psw = rs.getString("paw");
Manager manager = new Manager(id,account,psw);
managers.add(manager);
}
} catch (SQLException e) {
System.out.println("管理员全部信息查询失败");
e.printStackTrace();
}finally{
try {
stt.close();
rs.close();
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return managers;
}
测试一下
public static void main(String[] args) {
Connection connection = DbConnectUtil.getConnection();
List<Manager> managers = ManagerDao.queryAllManager(connection);
for (Manager manager : managers) {
System.out.println(manager.toString());
}
}
看下运行结果
连接成功!
Manager{id=1, account='123456', psw='123456'}
Process finished with exit code 0
可以看到,查询出来我们刚添加的那条信息了。
我们再来试试修改。
public static boolean updateManagerInfo(Connection connection, Manager newManager) {
boolean result;
String sql="update number set account=?,paw=? where id = ?";
PreparedStatement pst = null;
try {
pst=(PreparedStatement) connection.prepareStatement(sql);
pst.setString(1, newManager.getAccount());
pst.setString(2, newManager.getPsw());
pst.setInt(3, newManager.getId());
result = pst.execute();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
result = false;
} finally {
try {
pst.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return result;
}
测试一下
public static void main(String[] args) {
Connection connection = DbConnectUtil.getConnection();
List<Manager> managers = ManagerDao.queryAllManager(connection);
for (Manager manager : managers) {
System.out.println(manager.toString());
}
Manager manager = managers.get(0);
manager.setAccount("111111");
manager.setAccount("aaaaaa");
ManagerDao.updateManagerInfo(connection,manager);
}
看看修改结果
mysql> select * from number;
+----+---------+--------+
| id | account | paw |
+----+---------+--------+
| 1 | aaaaaa | 123456 |
+----+---------+--------+
1 row in set (0.02 sec)
可以看到,修改也是没有问题的。
最后,我们实现一下删除的操作
public static boolean deleteManagerInfo(Connection connection, int id) {
boolean result;
String sql="delete from number where id=?";
PreparedStatement pst = null;
try {
pst = (PreparedStatement) connection.prepareStatement(sql);
pst.setInt(1, id);
result = pst.execute();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
result = false;
} finally {
try {
pst.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return result;
}
测试一下
public static void main(String[] args) {
Connection connection = DbConnectUtil.getConnection();
List<Manager> managers = ManagerDao.queryAllManager(connection);
for (Manager manager : managers) {
System.out.println(manager.toString());
}
Manager manager = managers.get(0);
ManagerDao.deleteManagerInfo(connection,manager.getId());
}
看看结果
mysql> select * from number;
Empty set
基本的增删改查的功能我们就实现完了。
结合这些基本代码,我们可以完成我们的小项目。
运行截图
那么整体的项目到这里就算完成了。
需要代码的或者 需要帮忙协助开发的 请加QQ:1170932205 ,
上一篇: maven实现学生管理系统
推荐阅读
-
vue权限管理系统的实现代码
-
abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之一(二十七)
-
jsp系统怎么运行的(jsp学生信息管理系统简介)
-
基于jsp实现新闻管理系统 附完整源码
-
abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十五)
-
python面向对象法实现图书管理系统
-
网站制作教程之PageAdmin网站管理系统(cms)实现多域名访问
-
jsp系统怎么运行的(jsp学生信息管理系统简介)
-
abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理三 (二十一)
-
学生系统管理系统java代码(java入门基础知识)