- 浏览: 118795 次
- 性别:
- 来自: 福建
文章分类
最新评论
-
wenbing2610:
其实用Struts实现图片上传比用Servlet实现容易多了。 ...
Struts2文件上传深入FileUploadInterceptor -
i_feng:
public class uploadImageAction ...
Struts2文件上传深入FileUploadInterceptor -
wenbing2610:
...
ognl.MethodFailedException
模糊查询(实体类映射文件配置):
<select id="selectStudentByName" parameterClass="String" resultClass="Student">
select sid, sname, major, birth, score
from Student
where sname like '%$sname$%'
</select>
看api doc:
queryForList
java.util.List queryForList(java.lang.String id,
java.lang.Object parameterObject)
throws java.sql.SQLExceptionExecutes a mapped SQL SELECT statement that returns data to populate a number of result objects.
The parameter object is generally used to supply the input data for the WHERE clause parameter(s) of the SELECT statement.
Parameters:
id - The name of the statement to execute.
parameterObject - The parameter object (e.g. JavaBean, Map, XML etc.).
Returns:
A List of result objects.
Throws:
java.sql.SQLException - If an error occurs.
看Student.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap>
<!-- Result maps describe the mapping between the columns returned
from a query, and the class properties. A result map isn't
necessary if the columns(or aliases) match to the properties
exactly.-->
<typeAlias alias="Student" type="com.itcast.Student"/>
<select id="selectAllStudents" resultClass="Student">
select * from Student
</select>
<select id="selectStudentById" parameterClass="int" resultClass="Student">
select * from Student where sid = #sid#
</select>
<insert id="insertStudent" parameterClass="Student">
insert into Student(sid, sname, major, score, birth)
values(#id#, #sname#, #major#, #score#, #birth#)
</insert>
<delete id="deleteStudentById" parameterClass="int">
delete from Student where sid = #id#
</delete>
<update id="updateStudentById" parameterClass="Student">
update Student
set
sname = #sname#,
major = #major#,
score = #score#,
birth = #birth#
where
sid = #sid#
</update>
<select id="selectStudentByName" parameterClass="String" resultClass="Student">
select sid, sname, major, birth, score
from Student
where sname like '%$sname$%'
</select>
</sqlMap>
IStudentDAOImpl.java
package com.itcast;
import java.io.IOException;
import java.io.Reader;
import java.sql.Date;
import java.sql.SQLException;
import java.util.List;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
public class IStudentDAOImpl implements IStudentDAO {
private static SqlMapClient sqlMapClient = null;
static {
try {
Reader reader = Resources
.getResourceAsReader("com/itcast/SqlMapConfig.xml");
sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void addStudent(Student student) {
try {
sqlMapClient.insert("insertStudent", student);
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public void addStudentBySequence(Student student) {
}
@Override
public void deleteStudentById(int id) {
try {
System.out.println(sqlMapClient.delete("deleteStudentById", id));
// 删除成功与否,是看有没有返回值,如果大于0,就删除成功了。
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public List<Student> queryAllStudent() {
List<Student> studentList = null;
try {
studentList = sqlMapClient.queryForList("selectAllStudents");
} catch (SQLException e) {
e.printStackTrace();
}
return studentList;
}
@Override
public Student queryStudentById(int id) {
Student student = null;
try {
student = (Student) sqlMapClient.queryForObject(
"selectStudentById", id);
} catch (SQLException e) {
e.printStackTrace();
}
return student;
}
@Override
public List<Student> queryStudentByName(String name) {
List<Student> studentList = null;
try {
studentList = sqlMapClient.queryForList("selectStudentByName", name);
} catch (SQLException e) {
e.printStackTrace();
}
return studentList;
}
@Override
public void updateStudentById(Student student) {
try {
System.out.println(sqlMapClient.update("updateStudentById", student));
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
IStudentDAO dao = new IStudentDAOImpl();
// 第一种情况
// for(Student student : dao.queryAllStudent()){
// System.out.println(student);
// }
// 第二种情况
// System.out.println(dao.queryStudentById(3));
// 第三种情况
// Student student = new Student();
// student.setSid(111);
// student.setSname("小茜");
// student.setMajor("传媒设计");
// student.setBirth(Date.valueOf("1990-2-15"));
// student.setScore(98);
//
// dao.addStudent(student);
// 第四种情况
// dao.deleteStudentById(2);
// 第五种情况
// Student student = new Student();
// student.setSid(111);
// student.setSname("小茜二代");
// student.setMajor("传媒设计高级班");
// student.setBirth(Date.valueOf("1990-7-17"));
// student.setScore(97);
//
// dao.updateStudentById(student);
// 第六种情况
for(Student student : dao.queryStudentByName("茜")){
System.out.println(student);
}
}
}
运行,控制台输出:
sid=111 sname=小茜二代 major=传媒设计高级班 birth=Tue Jul 17 00:00:00 CDT 1990 score=97.0
也可以这样,Student.xml:
<select id="selectStudentByName" parameterClass="String" resultClass="Student">
select sid, sname, major, birth, score
from Student
where sname like '$sname$'
</select>
在IStudentDAOImpl.java
// 第六种情况
for(Student student : dao.queryStudentByName("%茜%")){
System.out.println(student);
}
运行IStudentDAOImpl.java,控制台输出:
sid=111 sname=小茜二代 major=传媒设计高级班 birth=Tue Jul 17 00:00:00 CDT 1990 score=97.0
一个是外部写sql指定百分号%,一个是在传入的时候指定
发表评论
-
CSS样式表的overflow属性
2015-01-02 19:22 28一、滚动条样式overflow ... -
jrebel运用
2014-07-13 22:00 1194JRebel热部署 ... -
JPA执行原生SQL截断Char类型问题
2014-05-24 21:39 1187在JPA的API中执行原生 ... -
JPA基本数据类型映射
2014-05-24 21:06 3908/** ... -
spring定时器配置
2014-03-18 21:36 696创建测试类: ... -
The Struts dispatcher cannot be found
2013-11-03 18:48 657运行环境:struts2环境中访 ... -
JasperException
2013-09-15 20:41 1018JasperException异常: ... -
equal symbol expected
2013-09-15 20:08 1198equal symbol ... -
Hibernate主键生成器
2013-09-12 21:11 793... -
Criterion和Criteria
2013-09-08 16:00 1955Hibernate Criter ... -
getHibernateTemplate用法
2013-09-08 15:02 588HibernateTemplate提供的方法 ... -
JS中页面跳转
2013-09-08 14:01 658<html><head><t ... -
GridPanel详解
2013-03-10 10:45 10421、Ext.grid.GridPanel ... -
tomcat内存溢出
2013-03-04 20:26 727在使用Java程序从数据库中查询大量的数据或 ... -
History Object
2013-01-07 21:06 759history 对象是window 对象的另一个子 ... -
Write to programmer
2012-12-29 20:16 861很多的java初级程序员对自己没有一个明确的方 ... -
EL语言
2012-09-27 22:08 897EL的前世今生: ... -
JSTL标签的使用
2012-09-27 22:00 820JSP 标准标记库( Standard Tag Library ... -
使用IBATIS防止sql注入
2012-08-26 21:17 1620对于ibaits参数引用可以使用#和$两 ... -
IBATIS动态SQL标签用法
2012-08-26 21:04 12651、动态SQL片段通过SQL片 ...
相关推荐
iBATIS模糊查询 iBATIS模糊查询是指使用iBATIS框架实现模糊查询的方法。模糊查询是指在数据库中搜索包含指定字符串的记录,通常使用LIKE谓词来实现。 在iBATIS中,模糊查询可以通过在映射文件中定义SQL语句来实现...
标题 "IBatis完成单表基本的数据库操作 模糊查询" 涉及到的是使用iBatis这个轻量级的持久层框架进行数据库的基本操作,特别是模糊查询。iBatis是一个优秀的SQL映射框架,它允许开发者将SQL语句与Java代码分离,提高...
在本教程"07_ibatis教程_模糊查询实体对象"中,我们将深入学习如何使用iBatis这个流行的Java持久层框架进行模糊查询操作,尤其是在处理实体对象时。iBatis作为一个轻量级的ORM(Object-Relational Mapping)工具,它...
在Ibatis教程中,"07_传智播客ibatis教程_模糊查询实体对象"这部分内容可能涵盖了如何将用户输入的实体对象与SQL语句中的模糊查询条件相结合,例如如何将一个User对象的属性作为模糊查询的关键词。教程可能通过实际...
**知识点1:** 在进行模糊查询时,ibatis支持两种不同的语法标记:`#` 和 `$`。 1. **使用 `$value$` 进行模糊查询:** - 在进行模糊查询时,使用 `$value$` 的方式更为安全且易于实现。 - 正确的语法应为 `name ...
当需要执行一个模糊查询时,通常会使用`LIKE`关键字配合通配符`%`。例如,以下SQL语句将查询所有姓“张”的学生: ```sql SELECT * FROM T_STUDENT WHERE S_NAME LIKE '张%'; ``` 在iBATIS中,可以使用类似的方法...
本篇将详细讲解Ibatis在实现模糊查询、关联查询以及增删改查操作时的关键知识点。 首先,模糊查询是数据库操作中常见的功能,Ibatis通过`<if>`标签或`<where>`标签配合`#{}`占位符来实现。例如,如果你有一个用户...
- 在编写SQL时,应避免使用全模糊匹配`LIKE '%text%'`,而应尽可能使用带有前缀或后缀的模糊匹配,如`LIKE 'text%'`,这可以显著提升查询效率。 - 使用`EXISTS`子查询通常比直接关联查询更高效,尤其是在数据量大...
描述部分提到的“返回新建数据ID,分页查询,查询条件,模糊查询,date时间段,list集合,截止日期”则是在iBatis配置中常见的几种操作场景,这些场景在数据持久化的操作中非常实用。下面详细解释这些知识点: 1. 返回...
iBATIS课件 iBATIS简介 搭建环境 配置文件 读取配置 基本的CRUD操作 模糊查询 iBATIS代码生成工具iBATOR 优缺点 选择Hibernate还是iBATIS
除了使用JDBC,还可以使用ORM(Object-Relational Mapping)框架,如ProGuard或iBatis,它们可以帮助简化数据库操作,将Java对象与数据库表映射起来,从而更方便地实现模糊查询。 在J2ME中进行模糊查询时,还需要...
模糊查询通常涉及SQL的`LIKE`操作,可以在iBatis的映射文件中配置,然后在JSF页面提供搜索框,将输入传递给后台进行模糊匹配。 9. **错误处理和验证**:JSF提供了内置的验证机制,可以对用户输入进行校验,防止无效...
本篇文章将深入探讨Ibatis在实际应用中的常见案例,包括多表查询、分页、增删改查、模糊查询以及按指定列查询。 **1. 多表查询** 在实际项目中,多表查询是非常常见的需求。Ibatis通过`<select>`标签和`...
可以看到,可以针对不同的字段设置各种条件,例如模糊匹配、范围查询等。 #### 4.3 设置排序 ```java if (record.getSortfield() != null && record.getDir() != null) example.setOrderByClause(record....
此外,该工具可能还包含了对复杂的查询条件的支持,比如模糊搜索、分页查询等,这些在生成的SQL中会以动态SQL的形式出现,使得代码更加简洁和易于维护。对于大型项目而言,这种自动化生成的功能能够显著减少编码时间...
"ibatisDemo"是一个示例项目,旨在展示如何在实际开发中运用Ibatis进行MySQL数据库的单表操作,包括增、删、改、查以及模糊查询和多参数查询等基本功能。以下是对这个项目及其相关知识点的详细解释: 1. **Ibatis...
在Ibatis的XML配置文件中,可以使用`<if>`标签来插入动态SQL部分,结合`#{}`占位符和通配符,实现动态模糊查询。例如: ```xml SELECT * FROM my_table WHERE column_name LIKE #{searchKeyword} ``` 在...
例如,在实现模糊查询功能时,用户的搜索关键词可能包含SQL中的特殊字符,比如`%`、`_`等。如果不做任何处理,这些特殊字符将会被SQL引擎视为通配符,从而导致查询结果出现偏差。 #### 二、特殊字符处理方法 #####...
本篇文章将深入探讨如何使用Ibatis框架实现对`student`表的增删改查操作,包括模糊查询以及利用序列自动生成主键。 首先,我们来理解Ibatis的基本概念。Ibatis是由Apache基金会维护的一个开源项目,它是一个SQL映射...
Mybatis 中 Oracle 的拼接模糊查询及用法详解 Mybatis 是一个基于 Java 的持久层框架,提供了强大的数据库交互能力,而 Oracle 则是业界最流行的关系数据库管理系统。本文将详细介绍 Mybatis 中 Oracle 的拼接模糊...