Java Web学习笔记(一) Mapper接口实现MyBatis操作数据库

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/l1832876815/article/details/86517581

实训第一天笔记
Mapper.java

package com.example.mapper;

import java.util.List;

import org.springframework.stereotype.Repository;

import com.example.bean.User;

/**
 * Created on 19/1/16
 * @author Chook_lxk
 * 
 * User的数据操作
 *
 */
@Repository
public interface UserMapper {

	int insert(User u);
	
	int update(User u);//User全属性更新
	
	int delete(Integer id);//User全属性匹配删除
	
	int deleteUser(User u);//User部分属性匹配删除
	
	int updateActive(User u);//User部分属性更新
	
	User selectId(Integer id);
	
	List<User> selectUser(User u);//查找部分属性相同的User
	
	List<User> selectAll(User u);//查找数据库中所有User
	
	int selectCount();//数据库中所有User的数量
}

mapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper">

	<!--Result Map -->
	<resultMap
		id="base_map"
		type="User">
		<result
			column="id"
			property="id" />
		<result
			column="usercode"
			property="code" />
		<result
			column="username"
			property="name" />
		<result
			column="password"
			property="pass" />
	</resultMap>

	<!--Sql 片段 -->
	<sql id="sql_column_list">
		id, usercode, username, password
	</sql>

	<sql id="sql_where_fields">
		where 1=1
		<if test="id != null">and id = #{id}</if>
		<if test="code != null and code != ''">and usercode = #{code}</if>
		<if test="name != null and name != ''">and username = #{name}</if>
		<if test="pass != null and pass != ''">and password = #{pass}</if>
	</sql>

	<!--插入记录 -->
	<insert
		id="insert"
		parameterType="Object">
		<selectKey
			resultType="int"
			order="AFTER"
			keyProperty="id">
			SELECT_LAST_INSERT_ID();
		</selectKey>
		insert into edemo.user(usercode, username, password)
		values(#{code},#{name},#{pass})
	</insert>

	<!--更新记录 -->
	<update
		id="update"
		parameterType="Object">
		update edemo.user set
		username=#{name},password=#{pass}
		where usercode=#{code}
	</update>

	<!--更新选定内容 -->
	<update
		id="updateActive"
		parameterType="Object">
		update edemo.user set
		<trim suffixOverrides=",">
			<if test="username != null and username != ''">username = #{name},</if>
			<if test="password != null and password != ''">password = #{pass},</if>
		</trim>
		where usercode = #{code}
	</update>

	<!-- 根据Id删除记录 -->
	<delete
		id="delete"
		parameterType="Object">
		delete from edemo.user
		where id = #{id}
	</delete>

	<!-- 删除记录 -->
	<delete
		id="deleteUser"
		parameterType="Object">
		delete from edemo.user
		<include refid="sql_where_fields" />
	</delete>

	<!-- 查找Id -->
	<select
		id="selectId"
		parameterType="Object"
		resultMap="base_map">
		select
		<include refid="sql_column_list" />
		from edemo.user where usercode = #{id}
	</select>

	<!-- 查找属性相同记录 -->
	<select
		id="selectUser"
		parameterType="Object"
		resultMap="base_map">
		select
		<include refid="sql_column_list" />
		from edemo.user
		<include refid="sq_where_fields" />
	</select>

	<!-- 查找所有的记录 -->
	<select
		id="selectUser"
		parameterType="Object"
		resultMap="base_map">
		select
		<include refid="sql_column_list" />
		from edemo.user
	</select>

	<!-- 查找记录数量 -->
	<select
		id="selectCount"
		resultType="int">
		select count(1) from edemo.user
	</select>
</mapper>
  • mapper.xml包含三部分 结果映射、Sql片段以及interface方法
  • 控制反转,实例化对象,交由Spring容器管理。 @Service(业务层) @Controller(控制层) @Repository (数据层)
  • 依赖注入,从Spring容器中获取对应对象 @Autowired
  • @RequestMapping() 通过路径调用Java类中的方法、接收参数

猜你喜欢

转载自blog.csdn.net/l1832876815/article/details/86517581