ssm:单表的增删改查(浅谈映射文件)

单表的增删改查

1.结果映射resultMap
对数据的查询会用到结果映射,对数据的增删该则无需用到结果映射。
所谓的结果映射集就是将sql数据表的列名(column)与java实体类的属性名称(property)进行关联匹配的一种机制。
若sql数据库的sql数据表的列名(column)与java实体类的属性名称(property)未正确匹配的话。那么相应的查询结果将为空。

应用实例:利用结果映射查询全部学生
在第一个mybaitis项目中其结果映射(sql字段----->java实体类)是通过在sql语句中使用别名来达到结果映射的目的
图片
在这里插入图片描述

关键代码(在映射文件StudentMapepr.xml添加以下代码)

<mapper	namespace="com.lifeng.dao.IStudentDao">
<!-- 配置结果映射 -->	
		<resultMap id="studentResultMap" type="Student">
			<id property="sid" column="id"/>
			<result property="sname" column="studentname"/>
			<result property="sex" column="gender"/>
			<result property="age" column="age"/>
		</resultMap>		
<!-- 在sql查询语句中使用结果映射 -->
		<select id="findAllstudents" resultMap="studentResultMap">
			select id,studentname,gender,age from student
		</select>
</mapper>

<!--
a.
标签<mapper namespace="...">中的namespace,定位到唯一的mapper文件
(namespace的值:即对应dao层的接口)
b.
标签<resultMap id="..." type="...">的意思是把sql查询结果映射为student对象
(id的值:即为该结果映射集命名,type的值:即数据表列名对应的实体类)
c.
标签<select id="..." resultMap="...">中的id,定位到这个mapper映射文件指定的sql语句
(id的值:即对应dao层接口的方法,resultMap的值:即对应配置结果映射集中id值)
-->

2.使用selectOne方法查询单个学生
关键代码(在dao层的接口和实现类添加findStudentById(int id)方法,在映射文件StudentMapepr.xml添加以下代码)

<mapper namespace="com.lifeng.dao.IStudentDao">
<!-- 配置结果映射 -->
		<resultMap id="studentResultMap" type="Student">
			<id property="sid" column="id"/>
			<result property="sname" column="studentname"/>
			<result property="sex" column="gender"/>
			<result property="age" column="age"/>
		</resultMap>
<!-- 调用dao层的findStudentById(int id)方法,且使用已配置好的结果映射 -->
		<select id="findStudentById" parameterType="int" resultMap="studentResultMap">
			select * from student where id=#{id}
		</select>
</mapper>

<!--
a.
parameterType="int"也可不加,mybatis会自动判断传进来的参数类型。
#{id}:对指定参数类型使用,因为其值需要从dao层的findStudentById(int id)方法中传递过来
b.
session.selectList():适用于查询结果集是多条的请况
c.
session.selectOne():适用于查询结果集是单条的情况
-->

3.使用insert方法添加记录
关键代码(在dao层的接口和实现类添加insertStudent(Student student)方法,在映射文件StudentMapepr.xml添加以下代码)

<mapper namespace="com.lifeng.dao.IStudentDao">
<!-- 调用dao层的insertStudent(Student student)方法 -->
	<insert id="insertStudent" parameterType="Student">
		insert into student(id, studentname, gender, age) 
		values
		(#{sid}, #{sname}, #{sex}, #{age})
	</insert>
</mapper>

<!--
a.
parameterType="Student"也可不加,mybatis会自动判断传进来的参数类型。
b.
在调用session.insert()方法后还要提交事务,即使用session.commit()方法来实现
-->

4.使用delete方法修改记录
关键代码(在dao层的接口和实现类添加deleteStudentById(int id)方法,在映射文件StudentMapepr.xml添加以下代码)

<mapper namespace="com.lifeng.dao.IStudentDao">
<!-- 调用dao层的deleteStudentById(int id)方法 -->
	<delete id="deleteStudentById" parameterType="int">
		delete from student where id=#{id}
	</delete>
</mapper>

5.使用update方法修改记录
关键代码(在dao层的接口和实现类添加updateStudent(Student student)方法,在映射文件StudentMapepr.xml添加以下代码)

<mapper namespace="com.lifeng.dao.IStudentDao"
<!-- 调用dao层的updateStudent(Student student)方法 -->
	<update id="updateStudent" parameterType="Student">
		update student set studentname=#{sname},gender=#{sex},age=#{age} where id=#{sid} 
	</update>
</mapper>

6.按姓氏模糊查询学生
关键代码(在dao层的接口和实现类添加findStudentByName(String name)方法,在映射文件StudentMapepr.xml添加以下代码)

<mapper namespace="com.lifeng.dao.IStudentDao">
<!-- 配置结果映射 -->
		<resultMap id="studentResultMap" type="Student">
			<id property="sid" column="id"/>
			<result property="sname" column="studentname"/>
			<result property="sex" column="gender"/>
			<result property="id" column="id"/>
		</resultMap>
<!-- 按姓氏模糊查询学生,且使用已配置好的结果映射 -->
		<select id="findStudentByName" parameterType="String" resultMap="studentResultMap">
			select * from student where studentname like '%' #{sname} '%'
		</select>
</mapper>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用SSM框架实现数据库的增删改查操作是一种常见的开发方式。SSM是指Spring+SpringMVC+MyBatis三个框架的整合。在此过程中,我们可以借助MyBatis提供的持久层框架来简化数据库操作。 首先,在项目的resources文件夹下建立database.properties文件,该文件用于配置数据库的连接信息,包括jdbc.driver、jdbc.url、jdbc.username和jdbc.password等。 接下来,我们可以根据需求创建对应的JavaBean实体类,对应数据库中的表结构,使用注解或XML配置文件映射实体类与数据库表之间的关系。 然后,创建数据访问层(DAO)接口,定义一系列数据库操作的方法,如插入(新增)、删除、更新和查询等操作。在接口中可以使用MyBatis提供的注解或XML来配置与数据库的交互。 在DAO接口的实现类中,可以使用MyBatis提供的SQL映射和动态SQL特性来编对应的数据库操作语句,如插入、删除、更新和查询语句。通过定义好的接口方法和SQL语句,实现数据库的增删改查操作。 最后,在业务逻辑层(Service)中,调用数据访问层的方法来实现具体的业务需求,并对数据进行处理和封装。在Spring框架中,可以使用注解或XML配置文件来管理和组织各个层级的组件。 综上所述,使用SSM框架实现数据库的增删改查操作需要进行配置数据库连接信息、创建实体类、定义DAO接口和实现类、编SQL语句以及在Service层进行业务处理。这样就可以实现基于SSM的数据库操作了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [使用SSM框架实现增删改查操作](https://blog.csdn.net/qq_43537319/article/details/117549894)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [本科毕业设计-期末大作业-基于ssm+Mysql的宠物医院项目.zip](https://download.csdn.net/download/qq_35831906/88242837)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值