package com.codelibs.ehr.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import com.codelibs.ehr.entities.Syqyg;
public class SyqygcxDao extends BaseDao_DG {
boolean bl;
// 生成sql语句 sb
StringBuilder sb = new StringBuilder(
"select employee.em_name,probation.pr_id,"
+ "probation.em_id,probation.prob_start,"
+ "probation.prob_end,probation.prob_reviews,"
+ "probation.prob_results,probation.prob_date,"
+ "probation.prob_notes,dept.dept_name,job.job_name,probation.dept_id,"
+ "probation.job_id from probation,employee,dept,job "
+ "where probation.em_id=employee.em_id and probation.dept_id=dept.dept_id "
+ "and probation.job_id=job.job_id");
// 生成为?赋值的字符串数组
StringBuilder arr = new StringBuilder("");
String args[];
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
public ArrayList<Syqyg> find(Syqyg s) {
// 员工编号
if (s.getEm_id() != 0) {
sb.append(" and probation.em_id=?");
arr.append(s.getEm_id() + " ");
System.out.println("DAO ------编号:"+s.getEm_id());
}
// 员工姓名
if (s.getEm_name() !=""&&s.getEm_name()!=null) {
sb.append(" and employee.em_name=?");
arr.append(s.getEm_name() + " ");
System.out.println("DAO -------姓名:"+s.getEm_name());
}
//部门名称
if (!s.getDept().equals("全部") ) {
sb.append(" and dept.dept_name=?");
arr.append(s.getDept() + " ");
System.out.println("Dao -------部门:"+s.getDept());
}
//考核状态
System.out.println("Dao------考核状态:"+!s.getProb_results().equals("全部"));
if (!s.getProb_results().equals("全部")) {
sb.append(" and probation.prob_results =?");
if(s.getProb_results().equals("转正")) {
arr.append("1"+" ");
}
if (s.getProb_results().equals("试用期")) {
arr.append("2"+" ");
}
if (s.getProb_results().equals("试用期延期")) {
arr.append("3"+" ");
}
if (s.getProb_results().equals("试用期不通过")) {
arr.append("4"+" ");
}
if (s.getProb_results().equals("待转正")) {
arr.append("5"+" ");
}
System.out.println("Dao ------考核状态:"+s.getProb_results());
}
//试用期开始时间
if (s.getProb_start()!=null) {
sb.append(" and probation.prob_start>= to_date( ? ,'yyyy-MM-dd')");
String ds = df.format(s.getProb_start());
System.out.println(ds);
arr.append(ds+" ");
}
System.out.println("Dao------开始时间:"+s.getProb_start());
//试用期结束时间
if (s.getProb_end() != null) {
sb.append(" and probation.prob_end<=to_date( ? ,'yyyy-MM-dd')");
String de = df.format(s.getProb_end());
arr.append(de + " ");
}
System.out.println("Dao ------结束时间"+s.getProb_end());
String sql = sb.toString();
String arg = arr.toString();
args = arg.trim().split(" ");
if(args.length==1&&args[0].equals("")) {
bl = super.query(sql,null);
}else {
bl = super.query(sql,args);
}
System.out.println(args.length);
System.out.println(args[0].length());
for(int i = 0;i<args.length;i++) {
System.out.println(args[i]);
}
//boolean bl = super.query(sql, args);
ArrayList<Syqyg> sg = new ArrayList<Syqyg>();
if (!bl) {
System.out.println("没有查出来");
return null;
}
try {
while (resultSet.next()) {
sg.add(ORM2Syqyg(resultSet));
}
} catch (SQLException e) {
System.out.println("映射关系出错");
e.printStackTrace();
}
return sg;
}
public Syqyg ORM2Syqyg(ResultSet resultSet) throws SQLException {
Syqyg ss = new Syqyg();
// System.out.println(resultSet.getInt("em_id"));
// System.out.println(resultSet.getString("em_name"));
//
// System.out.println(resultSet.getInt("prob_results"));
// System.out.println(resultSet.getString("prob_reviews"));
// System.out.println(resultSet.getString("prob_notes"));
// System.out.println(resultSet.getString("dept_name"));
// System.out.println(resultSet.getString("job_name"));
// System.out.println(resultSet.getDate("prob_start"));
// System.out.println(resultSet.getDate("prob_end"));
// System.out.println(resultSet.getDate("prob_date"));
ss.setEm_id(resultSet.getInt("em_id"));
ss.setEm_name(resultSet.getString("em_name"));
ss.setPr_id(resultSet.getInt("pr_id"));
ss.setProb_reviews(resultSet.getString("prob_reviews"));
if(resultSet.getInt("prob_results")==1) {
ss.setProb_results("转正");
}else if(resultSet.getInt("prob_results")==2) {
ss.setProb_results("试用期");
}else if(resultSet.getInt("prob_results")==3) {
ss.setProb_results("试用期延期");
}else if(resultSet.getInt("prob_results")==4) {
ss.setProb_results("试用期不通过");
}else {
ss.setProb_results("待转正");
}
ss.setProb_notes(resultSet.getString("prob_notes"));
ss.setDept(resultSet.getString("dept_name"));
ss.setJob(resultSet.getString("job_name"));
ss.setProb_start(resultSet.getDate("prob_start"));
ss.setProb_end(resultSet.getDate("prob_end"));
ss.setProb_date(resultSet.getDate("prob_date"));
return ss;
}
}
分享到:
相关推荐
为了支持简单的ORM功能,BaseDAO类内部需要实现几个关键的辅助方法,用于动态构建SQL语句和获取对象属性值。 - **getInsertsql()**:用于构建插入记录的SQL语句。 - **getUpdatesql()**:用于构建更新记录的SQL语句...
总结来说,基于注解反射封装的 `BaseDao` 实现了一种灵活的方法,可以处理实体类之间的一对多查询,减少了重复代码,提高了代码的复用性和可维护性。在实际项目中,我们可以通过继承 `BaseDao` 并指定具体的实体类型...
【JAVA代码生成器源码-基于SSM架构】是一个实用工具,它可以帮助开发者快速构建Java Web应用程序的基础结构。SSM架构是由Spring、Spring MVC和MyBatis三个框架组成的,是目前广泛使用的Java后端开发技术栈。这个工具...
MyBatis会根据这些配置动态生成SQL执行逻辑。例如,`<select id="selectById" parameterType="int" resultType="com.example.YourEntity">SELECT * FROM your_table WHERE id = #{id}</select>`,这里的`#{id}`是一...
例如,根据传入的实体类型,动态生成SQL语句。 在实际开发中,BaseDao通常会包含一些基本的CRUD(Create, Read, Update, Delete)操作,如insert()、selectById()、update()和delete()。这些方法可以通过模板方法...
通常会显示页码、每页条数选择等,同时根据当前页码动态生成前后翻页的链接。 5. **优化与扩展**:为了提供更好的用户体验,还可以考虑加入总记录数的计算,以及根据数据量动态调整每页显示的条数。此外,可以使用...
总的来说,Java MySQL BaseDAO模式是Java开发中常用的一种设计模式,通过封装数据库连接和基本的SQL操作,降低了代码的复杂性,提高了开发效率。在使用时,需要结合实际的数据库结构和业务需求进行扩展和定制。
在提供的`SimpleDAOPattern`文件中,可能包含了实现上述功能的简单示例代码,包括DAO接口、实体类、动态代理的InvocationHandler实现,以及数据库连接和SQL生成的相关类。通过阅读和理解这些代码,开发者可以更直观...
JSP(Java Server Pages)是一种基于Java的服务器端脚本语言,用于生成动态Web页面。Servlet是Java中的一个接口,用于处理HTTP请求和响应。在图书管理系统中,JSP和Servlet技术被用于开发Web应用程序。 数据库操作 ...
基于这些参数,我们可以编写SQL语句,比如使用LIMIT和OFFSET关键字(在MySQL中)或者ROW_NUMBER()函数(在SQL Server中)来获取特定范围的数据。在"basedao"中,这些分页逻辑可能被封装为一个方法,接收pageSize和...
MyBatis Generator(MBG)是一款强大的工具,它允许开发者基于数据库中的表自动创建Java模型类、Mapper接口以及对应的XML映射文件。这款插件极大地简化了开发过程,避免了手动编写这些重复性的代码,提高了开发效率...
在数据层封装中,反射可能用于根据实体类的属性动态构建SQL语句,执行CRUD操作。例如,通过反射获取实体类的所有字段,然后生成INSERT或UPDATE语句。 MSSQL JDBC 3.0驱动是微软提供的用于Java应用程序连接Microsoft...
3、实现一套简单的ORM(直接使用spring rowmapper,insert自己实现),可以基于对象进行crud和相对复杂(感觉比hibernate强大一点)的sql操作; 4、基于对象指定查询的字段,大部分时候可以忘掉表结构进行业务...
JSP是Java的一种动态网页技术,它允许在服务器端生成HTML、XML或其他格式的文档。开发者可以在JSP页面中嵌入Java代码,或者使用JSP标签库来处理业务逻辑。JSP与Servlet紧密关联,Servlet负责处理请求,JSP则负责显示...
接下来,我们需要创建一个Python脚本来比较两个不同环境的数据库,并根据差异生成相应的SQL更新脚本。该脚本支持以下功能: - 生成旧数据库中不存在的新表的创建脚本。 - 生成添加新列的SQL脚本。 - 生成修改列属性...
对于DAO层,Hibernate提供了一套基于注解的CRUD接口,如`@Transactional`确保操作的事务性,`@Query`可以编写HQL(Hibernate查询语言)或者SQL进行更复杂的查询。 在具体实现通用DAO时,我们通常会有一个抽象的DAO...
本网站以xp为Web平台,JSP+Ajax+Servlet+JavaBean+Hibernate为网站实现技术,建立基于MySQL数据库系统的核心动态网页,实现博客网站前台及博客个人维护管理等功能模块。 1、 系统处理的准确性和及时性:系统处理的...
在执行分页查询时,`setFirstResult`和`setMaxResults`方法会添加到生成的SQL中,对应LIMIT和OFFSET子句。 4. **性能优化** 为了提高效率,可以使用缓存技术,如二级缓存,来存储已经计算过的总数,避免重复执行...
- **加载查询模板及生成SQL**:加载已创建的查询模板,并根据模板内容生成相应的SQL查询语句。 - **使用查询模板**:在实际应用中调用查询模板,获取所需的业务数据。 - **输出模板创建**:创建用于打印或导出单据...
3. **动态代理实现**:IBatisNet会自动生成动态代理类,实现数据访问接口中的方法,调用时无需关注具体实现。 **六、实例操作步骤** 1. **数据访问对象(DAO)**:创建DAO类,继承自IBatisNet提供的BaseDao,T代表...