假设你有以下的数据库表结构:
CREATE TABLE combo (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
price DECIMAL(10,2) NOT NULL
);
如果你使用 MyBatis 的 XML 文件来进行 SQL 查询,可以按照以下步骤实现根据 comboName 查询:
- 创建一个名为
ComboMapper.xml
的 XML 文件,并添加命名空间和映射语句:
<!-- ComboMapper.xml -->
<mapper namespace="com.example.mapper.ComboMapper">
<select id="findByComboName" parameterType="java.lang.String" resultType="com.example.entity.Combo">
SELECT * FROM combo WHERE name = #{comboName}
</select>
</mapper>
在这个映射语句中,我们定义了一个名为 findByComboName
的查询语句。它接收一个字符串类型的参数 comboName
,并返回一个 Combo 类型的结果。
- 创建对应的 Java 接口
ComboMapper
,并在其中声明查询方法:
public interface ComboMapper {
Combo findByComboName(String comboName);
}
- 在 MyBatis 的配置文件中添加该接口及其对应的 XML 映射文件:
<configuration>
<mappers>
<mapper resource="com/example/mapper/ComboMapper.xml"/>
</mappers>
</configuration>
- 调用查询方法,在 DAO 层中调用 Mapper 方法即可完成查询:
public class ComboDao {
private SqlSession sqlSession;
public ComboDao(SqlSession sqlSession) {
this.sqlSession = sqlSession;
}
public Combo findByComboName(String comboName) {
return sqlSession.getMapper(ComboMapper.class).findByComboName(comboName);
}
}
这样,就可以通过 findByComboName
方法来根据 comboName 进行查询了。例如:
ComboDao dao = new ComboDao(sqlSession);
Combo combo = dao.findByComboName("combo1");
System.out.println(combo.getId() + ": " + combo.getName() + ", " + combo.getPrice());