//根据学生的id,查找他数据库中存的导师字段‘1,2,3,4’字符串类型。可以使用in,not in 可以查找出所有对应的老师信息。用 $$
<select id="getTeacherid" parameterClass="java.lang.String" resultClass="java.lang.String">
select teacherId from ybc_youth where id=#VALUE#
</select>
<select id="getTeacherAddList" parameterClass="java.lang.String" resultClass="com.fjxhx.business.people.model.TeacherModel">
select * from ybc_teacher t $wheresql$
</select>
<select id="getTeacherList" parameterClass="java.lang.String" resultClass="com.fjxhx.business.people.model.TeacherModel">
select * from ybc_teacher t
<dynamic prepend="where">
<isNotEmpty prepend="and">
t.id in ($teacherId$)
</isNotEmpty>
<isEmpty prepend="and">
t.id in (null)
</isEmpty>
</dynamic>
</select>
Action:
private TeacherModel model = new TeacherModel(); public TeacherModel getModel() { // TODO Auto-generated method stub return model; //这个model可以取到页面传过来的值 } //左边grid导师(未选导师) public void getTeacherAddList(){ model.setFisrtRow((model.getPage() - 1) * model.getRows()); model.setLastRow(model.getRows()); try { BaseDao dao=getDao(); //已选导师id String teacherIds = (String)dao.selectObject("youth.getTeacherid",model.getId()); //拼接sql orgCode like '%$orgCode$%' String s; if(teacherIds!=null&&!teacherIds.equals("")){ s="where t.id not in ("+teacherIds+")"+((model.getName()!=null&&!model.getName().equals(""))?" and name like '%"+model.getName():"")+((model.getName()!=null&&!model.getName().equals(""))?"%'":"")+((model.getIdentitycardId()!=null&&!model.getIdentitycardId().equals(""))?" and identitycardId="+model.getIdentitycardId():"") +((model.getCertificateId()!=null&&!model.getCertificateId().equals(""))?" and certificateId="+model.getCertificateId():"")+((model.getProfessionalField()!=null&&!model.getProfessionalField().equals(""))?" and professionalField="+model.getProfessionalField():""); System.out.println(s); }else{ s="where 1=1"+((model.getName()!=null&&!model.getName().equals(""))?" and name like '%"+model.getName():"")+((model.getName()!=null&&!model.getName().equals(""))?"%'":"")+((model.getIdentitycardId()!=null&&!model.getIdentitycardId().equals(""))?" and identitycardId="+model.getIdentitycardId():"") +((model.getCertificateId()!=null&&!model.getCertificateId().equals(""))?" and certificateId="+model.getCertificateId():"")+((model.getProfessionalField()!=null&&!model.getProfessionalField().equals(""))?" and professionalField="+model.getProfessionalField():""); } model.setWheresql(s); /* Map<String, Object> param = new HashMap<String, Object>(); param.put("pageBegin", model.getPageBegin()); param.put("pageEnd", model.getPageEnd()); param.put("wheresql", model.getWheresql());*/ List<TeacherModel> tlist = dao.selectForList("youth.getTeacherAddList",model.getWheresql()); HashMap<String ,Object> tm = new HashMap<String ,Object>(); if(tlist.size()==0){ tm.put("tatal", 0); }else{ tm.put("total", tlist.size()); } tm.put("rows", tlist); tm.put("success", true); this.doResponseWithJson(tm); } catch (Exception e) { e.printStackTrace(); this.setData("操作失败"); this.setSuccess(false); this.send(); } } //右边grid导师(已选导师) public void getTeacherList(){ model.setFisrtRow((model.getPage() - 1) * model.getRows()); model.setLastRow(model.getRows()); try { BaseDao dao=getDao(); String teacherIds = (String)dao.selectObject("youth.getTeacherid", model.getId()); System.out.println(teacherIds); List<TeacherModel> tlist = dao.selectForList("youth.getTeacherList", teacherIds); HashMap<String ,Object> tm = new HashMap<String ,Object>(); if(tlist.size()==0){ tm.put("tatal", 0); }else{ tm.put("total", tlist.size()); } tm.put("rows", tlist); tm.put("success", true); this.doResponseWithJson(tm); } catch (Exception e) { e.printStackTrace(); this.setData("操作失败"); this.setSuccess(false); this.send(); } }
相关推荐
记录SQL添加过程中的关键信息,如操作时间、用户ID、执行的SQL语句等,有助于排查问题和审计操作。Struts框架本身并不包含日志功能,但可以结合Log4j、SLF4J等日志库来实现。 9. **测试** 对于SQL添加功能,进行...
在本文中,我们将探讨如何在WinCC中通过Visual Basic Script (VBS)来操作SQL Server 2005数据库,实现数据的存储和查询功能。 首先,确保你的WinCC项目已经与SQL Server 2005集成。自WinCC 6.2版本起,系统开始支持...
在实际开发过程中,如果使用普通的`Statement`来执行SQL语句,由于其直接拼接字符串的方式,很容易受到SQL注入的攻击。而`PreparedStatement`则通过预编译SQL语句并在执行时动态填充参数的方式来避免这一问题。这种...
- 避免在代码中硬编码SQL语句,使用字符串拼接,而是使用参数化查询。 以上就是关于封装SQL Server 2005类方法的基本步骤和要点。通过这样的封装,我们可以将数据库操作模块化,使得代码更加清晰、易于维护,同时...
在上述例子中,用户输入的`username`参数直接拼接到SQL查询中,当输入包含SQL语句的一部分时,整个查询的逻辑就被改变了。攻击者可以通过注入SQL语句来执行未授权的操作,如读取、修改或删除数据库中的数据,甚至...
开发者可以通过DriverManager类加载驱动,建立Connection,然后执行SQL语句并通过ResultSet获取数据。 标签中的"String"可能指的是字符串处理,在Java中,字符串是非常常见且重要的数据类型。在开发过程中,我们...
SQL注入是一种常见的网络安全攻击手法,攻击者通过在输入字段中插入恶意SQL代码,欺骗数据库服务器执行非预期的操作,以获取敏感信息或破坏数据。这种攻击通常发生在Web应用未对用户输入进行充分验证和转义的情况下...
然而,由于没有对`kewords`进行适当的输入验证和过滤,攻击者可以通过提交带有恶意SQL语句的`kewords`值,绕过权限检查并执行非授权的操作。 例如,提供的漏洞复现payload "3' union select user(),2,3,version(),...
这段代码中存在的问题是直接将用户输入拼接到 SQL 语句中,这很容易导致 SQL 注入攻击。正确的做法是使用参数化查询或者存储过程来避免此类问题。例如,可以改为使用参数化查询: ```vbscript If Request(...
首先,我们需要在界面层接收用户的选择条件,然后传递给业务逻辑层,在业务逻辑层中拼接 SQL 语句,但是这违背了三层架构的原则,因为界面层和业务逻辑层的耦合度太高。 解决方案是在界面层和业务逻辑层之间添加一...
在`lib/inc/table.php`的`query()`函数中,SQL语句被传递给`$this->db->query()`,最终在`lib/inc/dbmysqli.php`的`query()`函数中,通过`$this->mysqli->query()`执行。这里的问题在于,从文件读取的内容到执行SQL...
通过LINQ,开发者可以使用强类型对象和方法调用来执行数据库操作,而不是传统的字符串拼接SQL语句。在ASP.NET MVC项目中,LINQ to SQL简化了数据访问层,使得与数据库的交互更加直观和安全。 **ASP.NET MVC**...
iBATIS允许开发者将SQL语句直接写在XML配置文件中,或者通过注解方式内嵌到Java代码中,实现了SQL与Java代码的解耦。此外,iBATIS还支持动态SQL,可以根据条件自动拼接SQL语句,大大提高了开发效率。在iBATIS中,...
1. **SQL构建器**:Chloe提供了一套强大的SQL构建语法,支持复杂查询,如联接、子查询、分组、排序等,使得开发者可以通过简单的API编写复杂的SQL语句,而无需直接拼接字符串。 2. **动态SQL**:Chloe允许开发者在...
它首先通过`FileInputStream`读取上传的Excel文件,然后使用jxl库解析工作簿(Workbook)和工作表(Sheet),遍历每一行,提取出编码(Cell中的内容),并在编码前后添加单引号,最后通过`StringBuffer`拼接成逗号...
SQL 语句的 TSO 获取一般在解析和编译操作之前完成。 5、TiDB Server 将关系型数据转换为 key-value 数据操作顺序: 将主键(Primary Key)单独分离出来,与表的 Table ID 拼接,作为 key 序列。主键(Primary Key...
4. **Mapper接口**:Java接口,每个方法对应一个SQL语句,方便在Java代码中调用。 5. **动态SQL**:iBatis支持条件拼接,可以根据不同参数动态生成SQL,提高了SQL的复用性。 **Struts2知识点:** 1. **Action类**:...
iBatis消除了手动编写大量的JDBC代码,它允许开发者将SQL语句写在XML配置文件或注解中,与Java代码解耦。iBatis提供动态SQL功能,可以根据条件灵活地拼接SQL,提高了数据库操作的灵活性和效率。同时,iBatis的...
综上所述,ASP批量录入数据的实现主要涉及数据库连接、表单数据处理、SQL语句构建、用户界面交互和流程控制。在实际应用中,为了提高性能,可以考虑使用参数化查询或者存储过程,同时要注意数据安全,避免SQL注入...
Mybatis作为持久层框架,专注于数据库操作,它将SQL语句与Java代码解耦,通过XML或注解来配置和映射原生信息,从而简化了JDBC的复杂性。Mybatis支持预编译的SQL语句,避免了字符串拼接造成的性能问题,同时允许...