Java 数据库连接、关闭、增删改查方法的封装(二)之增删改查实现

根据“Java 数据库连接、关闭、增删改查方法的封装(一)之JDBCUtil工具类”的文章实现连接了数据库、关闭数据库、增删改查工具类。接着往下分析。

1.首先根据数据库中表的列名和类型编辑一个实体类放在entry包中,本文以Student为例。

package entry;

public class Student{

 private int id;

 private String name;

 private int gradeId;

 public Student() {

}
 
 public Student (int id, String name, int gradeId) {
this.id = id;
this.name = name;
this.gradeId = gradeId;
}
 public void setId(int id) {
	    this.id = id;
 }

 public int getId() {
		return id;
}

 public void setName(String name) {
	    this.name = name;
 }

 public String getName() {
		return name;
}

 public void setGradeId(int gradeId) {
	    this.gradeId = gradeId;
 }

 public int getGradeId() {
		return gradeId;
}

 public String toString() {
 return "Student [id=" + id + ", name=" + name + ", gradeId=" + gradeId + 
"]";
}
}

1.首先编写一个BaseDao 接口,如图所示,BaseDao 中运用泛型,此时可以匹配不同的实体类。本文以Student为例

/***
 * 基础类定义接口方法,其他接口可以通过继承实现增删改查方法
 * 定义为泛型可以适应所有引用类型
 * @author Administrator
 *
 * @param <T>
 */
public interface BaseDao<T> {
	void insert(T args);
	void update(T args);
	void delete(int id);
	T getById(int id);
	List<T> getAll();

}

2.编写类接口,以Student为例

public interface IStudentDao extends BaseDao<Student>{

}

创建IStudentDao接口的实现类,会自动生成增删改查方法,如图所示

package daoImp;

import java.util.List;

import dao.IStudentDao;
import entry.Student;

public class StudentDaoImp implements IStudentDao {

	@Override
	public void insert(Student args) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void update(Student args) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void delete(int id) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public Student getById(int id) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<Student> getAll() {
		// TODO Auto-generated method stub
		return null;
	}

}

现在我们就把增删改查方法补充完整

public class StudentDaoImp implements IStudentDao{

	@Override
	public void insert(Student args) {
		// TODO Auto-generated method stub
		String sql="insert into student values(null,?,?)";
		JDBCUtil.executeUpdate(sql, args.getName(),args.getGradeId());
	}

	@Override
	public void update(Student args) {
		// TODO Auto-generated method stub
		String sql="update student set name=?,gradeId=? where id=?";
		JDBCUtil.executeUpdate(sql, args.getName(),args.getGradeId(),args.getId());
		
	}
	

	@Override
	public void delete(int id) {
		// TODO Auto-generated method stub
	String sql="delete from student where id=?";
	JDBCUtil.executeUpdate(sql, id);
	}

	@Override
	public Student getById(int id) {
		// TODO Auto-generated method stub
		String sql="select * from student where id=?";
		List<Map<String,Object>> list=JDBCUtil.Query(sql, id);
		for(Map<String,Object> map:list){
			String name=(String) map.get("name");
			String gradeId=(String) map.get("gradeId");
		 return new User(id, name, gradeId);
			
			
			
		}
		return null;
		
	}

	@Override
	public List<Student> getAll() {
		// TODO Auto-generated method stub
		String sql="select * from student";
		List<Map<String,Object>> list=JDBCUtil.Query(sql);
		List<Student> li=new ArrayList<>();
		for(Map<String,Object> map:list){
			Integer id=Integer.parseInt(map.get("id").toString());
			String name=(String) map.get("name");
			String gradeId=(String) map.get("gradeId");
			 Student stu=new User(id,name,gradeId);
			 li.add(stu);
		}
		
			
		return li;
      }
}
	

猜你喜欢

转载自blog.csdn.net/zzti_ymk/article/details/82591389