一、JDBC持久化模块针对关系型数据库数据存取的一套简单解决方案,主要关注数据存取的效率、易用性和透明,其具备以下功能特征:
- 支持通过存储器注解自定义SQL语句或从配置文件中加载SQL并自动执行;
- 支持面向对象的数据库查询封装,有助于减少或降低程序编译期错误;
- 支持多数据源,默认支持C3P0、DBCP、JNDI连接池配置,支持数据源扩展;
- 支持数据库存储过程;
- 基于JDBC框架API进行轻量封装,结构简单、便于开发、调试和维护;
- 支持结果集与值对象的自动装配,支持自定义装配规则;
- 支持单实体ORM操作,无需编写SQL语句;
- 支持多种数据库(如:Oracle、MySQL、SQLServer等);
9.优化批量数据更新、标准化结果集、预编译SQL语句处理; - 支持数据库事务嵌套;
- 提供脚手架工具,快速生成数据实体类,支持链式调用;
二、JDBC持久化编码结构图如下:
三、相关持久化编码如下:
1、首先对数据库的表建立相应接口,如下:
Band表:
package cn.edu.mju.project1.persiste;
import cn.edu.mju.project1.entity.Band;
import java.util.List;
public interface IBandDao {
/**
* 添加数据到数据库band表中
* @param band
* @return
*/
public boolean insert(Band band);
/**
* 根据主键修改数据库表中的相应数据
* @param band
*/
public void update(Band band);
/**
* 根据主键删除记录
* @param id
* @return
*/
public boolean delete(Integer id);
/**
* 根据主键查找记录
* @param id 主键编号
* @return
*/
public Band findById(Integer id);
/**
* 查找所有的数据
* @return
*/
public List<Band> findAll(); //查找多个记录
/**
* 根据条件查询相关数据
* @param band
* @return
*/
public List<Band> find(Band band);
/**
* 分页查询相关数据
* @param page
* @param pageSize
* @param band
* @return
*/
public List<Band> pagenate(int page,int pageSize,Band band);
}
Student表:
package cn.edu.mju.project1.persiste;
import cn.edu.mju.project1.entity.Student;
import java.util.List;
public interface IStudentDao {
/**
* 添加数据到数据库Student表中
* @param student
* @return
*/
public boolean insert(Student student);
/**
* 根据主建修改数据库中相应的数据
* @param student
* @return
*/
public boolean update(Student student);
/**
* 根据主键删除记录
* @param id
* @return
*/
public boolean delete(Integer id);
/**
* 根据主键查找数据
* @param id
* @return
*/
public Student findById(Integer id);
/**
* 查找所有数据
* @return
*/
public List<Student> findAll();
/**
* 根据条件查找相关数据
* @param student
* @return
*/
public List<Student> find(Student student);
/**
* 分页查询相关数据
* @param page
* @param pageSize
* @param student
* @return
*/
public List<Student> pagenate(int page,int pageSize,Student student);
}
User表:
package cn.edu.mju.project1.persiste;
import cn.edu.mju.project1.entity.User;
import java.util.List;
public interface IUserDao {
/**
*添加数据到数据库User表中
* @param user
* @return
*/
public boolean insert(User user);
/**
* 根据主键修改数据库中的数据
* @param user
* @return
*/
public boolean update(User user);
/**
*根据主键删除数据库中的数据
* @param id
* @return
*/
public boolean delete(Integer id);
/**
* 根据主键查询数据库总的数据
* @param id
* @return
*/
public User findById(Integer id);
/**
* 查询数据库中所有的数据
* @return
*/
public List<User> findAll();
/**
* 根据条件查询相关数据
* @param user
* @return
*/
public List<User> find(User user);
/**
* 分页查询相关数据
* @param page
* @param pageSize
* @param user
* @return
*/
public List<User> pagenate(int page,int pageSize,User user);
}
2、然后建立对应的实现类,如下:
Band表实现类:
package cn.edu.mju.project1.persiste.impl;
import cn.edu.mju