详解DAO类(数据库操作对象) | 您所在的位置:网站首页 › java中dao的作用 › 详解DAO类(数据库操作对象) |
DAO类下的各种关系可以用一张图来表示。 1.介绍 1) DAO=DataBase Access Object; 数据库操作对象 2) 在一个DAO类中封装针对某张表操作细节 3) 在项目中所有的DAO类都应该存放在dao包 4) DAO类命名规则 = 表名+Dao DeptDao/EmpDao 例如这样一张表。 基于功能封装—JdbcUtil 1.什么是功能: 一行命令就是一个功能.比如 int a =10 2.JDBC开发流程: 1) 建立一个连接通道 2) 创建一个交通工具 3) 推送SQL命令并得到处理结果 4) 销毁资源 3.JdbcUtil作用降低DAO类开发时,使用JDBC技术难度 ReflectUtil public class ReflectUtil { /* * 作用:动态生成INSERT语句 * * insert语句结构: * * insert into 表 (字段名1,字段名2,字段名3) values(值1,值2) * ----------- -- --------------- --------------- * 1 2 3 4 * * 问题1:如何能够得到表名 * 实体类的类名应该与对应的表名相同 * * 问题2:如何得到表中字段名 * 实体类的属性名应该与对应的表中字段名相同 * * 问题3:如何得到要插入的数据行 * 一个实体类的实例对象封装表文件中一个数据行 */ public String createInsertSql(Object instance)throws Exception{ String tableName = null; Class classManager = null; Field fieldArray[]=null; StringBuffer columns = new StringBuffer(" ("); StringBuffer sql = new StringBuffer("insert into "); StringBuffer values = new StringBuffer(" values("); classManager= instance.getClass(); //得到实例对象,隶属的类文件的管理者 fieldArray = classManager.getDeclaredFields(); //1.得到插入语句关联的表名 tableName = classManager.getSimpleName(); //2.得到插入语句关联的字段名 for(Field field:fieldArray){ String fieldName = field.getName();//得到管理的属性的名称,这个名称就是字段名 if(!columns.toString().equals(" (")){ columns.append(","); } columns.append(fieldName); } columns.append(")"); //3.得到插入语句对应的值 for(Field field:fieldArray){ field.setAccessible(true); Object value = field.get(instance); //如果添加的值不是第一个值,则在值添加的到StringBuffer之前,先添加一个","进入到StringBuffer if(!values.toString().equals(" values(")){ values.append(","); } values.append("'"); values.append(value); values.append("'"); } values.append(")"); //拼接 sql.append(tableName); sql.append(columns); sql.append(values); return sql.toString(); } |
CopyRight 2018-2019 实验室设备网 版权所有 |