前言
具体我也不知道那些专业名词,就按自己理解的来了,反正是能跑,没啥问题。 关系图: service充当中间过渡,增删改查在dao完成,操作返回的数据在UI显示出来。
一,封装JDBC
先封装一个JDBC文件,方便后续调用。 如下图,先链接到本地mysql数据库。 之后使用静态代码块给静态常量成员赋初值: 写一个接口方法,返回静态conn。后续待用。
public static Connection getConnection(){
return conn;
}
二,增
2.1,UserDAO.java
写一个SQLException public方法,方便UI页面调用方法获取sql表。
public ResultSet searchAll() throws SQLException{
Statement stmt = conn.createStatement();
String sql = "select * from eat";//表名
ResultSet rs = stmt.executeQuery(sql);
return rs;
}
返回表的内容(rs)。 再写一个DAO的add方法,作为操作数据库添加操作。
表当中添加数据的时候,我们表当中添加的实际上是商品id,商品名字,商品价格,商品库存。这样四个字段的数据,那我为了后续查询或者是其他操作的方便,我们会把一个用户。我们看一下,User in for,我会把user in for当中的一个用户封装成一个对象。一条记录就对应着我们的一个对象,一个记录对应着一个对象。所以现在我要做的操作,我就创建一个对象的实体类,这个实体类当中有四个属性。
2,2,UserServier.java
调用UserDAO,获取DAO查找的结果集,并传递出去.。
return dao.searchAll();
再写一个添加的方法:add 封装数据库里的,商品id,商品名字,商品价格,商品库存。 UserServier作为中间层调用传递给DAO,dao执行对数据库的增加操作。
2,3,userUI.java添加用户
用户管理 1-添加 2-删除 3-修改 4-查询 请输入数字,选择菜单功能: 输入1,执行添加操作。 输入用户名,密码----service----dao(插入一条记录) 这里调用上文的UserServier里的adduser方法,然后他,再继续调用DAO里的操作数据库添加方法。 ps:老师的话 那我们输入一进行添加,那我们要添加的这个用户名儿,比如说我就添加个SSS,那个密码我们随便填一下叫ABC这样一个密码。那执行完之后,执行完之后看没做任何的用户的交互,没有告诉用户我这个操作完成了,是成功还是没成功,需要我们自己到这里面去找一下到我们的这个用户表当中找一下,我们插入的是SSS,密码是ABC,那我们在底下这个地方刷新一下刷新这个位置上。这儿比较小,我点一下刷新,刷新之后看一下,我们现在这个表当中就添加了这样的一个数据,用户名儿SSS密码ABC这样一个数据,所以这就说明我们的操作已经完成很成功,能够在表当中插入一个用户
三,查
先看UI。
3.1,UserUI伪iu
case 4:
searchAllUserxian();
break;
调用searchAllUserxian方法。我们来看 这里写了应该过渡方法,用于细分查询的分类。 --1-按照编号查询 ------ --2-按照名称查询 ------ --3-查询全部 ------ 我们先看查询全部; searchAllUser()方法: 原理就是,获取到DAo传递的结果集,使用while函数遍历结果集。输出目标值。
按照编号查询 :其实与查询全部类似。我们在循坏的时候加一个条件,筛选即可:
if(s.equals(eatname)){
flag=1;
System.out.println( uid + "\t " + eatname + "\t " + eatprice+ "\t " + spare );
}
3.2,UserServier.java
上文的Ui在查询的时候需要调用Servier的searchAllFromUserInfo方法。
//获取DAO查找的结果集,并传递出去
public ResultSet searchAllFromUserInfo() throws SQLException{
return dao.searchAll();
}
如上代码,其实这一层就是一个中间商。
3.3,UserDAO.java
UserServier.请求调用UI的searchAll方法,执行sql语句获得数据返回给上一层。 我们的service就要将从UI当中,从UI当中接收的这个user对象。把这个对象传递给DAO,然后一层返回一层。
END
throws SQLException 是抛出异常,查询执行错误会抛出,一般正常运行,不执行。