DAO类的设计
初学JDBC时,我们练习crud功能时,经常把他们设计成几个类,这样几个功能联系性差,而且代码重合度很高,举个简单的例子,
Class.forName("com.mysql.jdbc.Driver");
Connection connection =DriverMannager.getConnection("jdbc:mysql:///tshi","root","123456")
类似于这样的注册驱动建立连接的代码,很多类都重复,这时我们要想办法,用面向对象的思维去解决这种问题。
如果将这几行代码提取为公共类的话,我们想到这个方法到底要不要返回值,显而易见是要的,因为下面的操作会用到对象connection的方法
PreparedStatement statement =connection.preparedStatement(sql);
思路:
1.每当我们提取公共的方法时,是需要这个方法干一件事情,还是干一件事情并告诉我们结果,根据这个因素,我们要考虑该方法是否需要返回值
2.在练习JDBC中,我们写的crud功能都是单独的类,这样写的必然结果就是每个单独的类无法调用,这在实际中就很不合理,举个例子,我们在删除功能中(代码如下),是根据用户编号来删除该条信息的,可是在大多请款下用户是不知道自己的id的,更不用说根据某id删除某数据,笼统一点儿地说,删之前要查询所有,将数据呈现在用户眼前,那怎样更简单的不复制查询的代码就能实现这一操作呢?
package com.xiding.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.Scanner;
public class JDBC07 {
public static void main(String[] args) throws Exception {
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection("jdbc:mysql:///teshi","root","123456");
Scanner scanner =new Sc