Mybatis(一) 配置

一、核心配置文件——sqlMapConfig.xml

核心配置文件用于配置数据库信息,数据库事务以及映射文件***Mapper.xml。一般放置在类路径下。

1.在environments标签下配置数据源和事务。

注:在与spring整合过程中,几乎所有配置都转移到spring配置文件中进行配置,包括映射文件的扫描。

<!-- 配置数据源,事务 -->
	<environments default="test">
		<environment id="test">
			<!-- 事务:JDBC/MANAGED-让jdbc自己管理 -->
			<transactionManager type="JDBC"/>
			<!-- 数据源:POOLED/UNPOOLED/JNDI -->
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver"/>
				<property name="url" value="jdbc:mysql://localhost:3306/mybatisdb?charsetEncoding=utf8"/>
				<property name="username" value="root"/>
				<property name="password" value="root"/>
			</dataSource>
		</environment>
		<environment id="deploy">
			
			<transactionManager type="JDBC"/>
			<!-- 数据源:POOLED/UNPOOLED/JNDI -->
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver"/>
				<property name="url" value="jdbc:mysql://localhost:3306/mybatisdb?charsetEncoding=utf8"/>
				<property name="username" value="root"/>
				<property name="password" value="root"/>
			</dataSource>
		</environment>
	</environments>

2.添加映射文件mapper配置。

<mappers>
		<mapper resource="com/sys/mapper/PersonMapper.xml"/>
</mappers>


二、映射文件——***Mapper.xml

1.首先要在domain包下定义表对应的实体类。如用户类User。


2.对应为该实体类创建映射文件:UserMapper.xml
注:一般习惯为Mapper创建独立的一个包,所有映射文件都放置在里面,方便配置时进行包扫描。
<?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.sys.mapper.PersonMapper">	<!-- 命名空间,可以随意些,只要不冲突 -->
	<!-- 对象映射 -->
	<resultMap type="com.sys.domain.Person" id="personRM">
		<id property="id" column="ID"/><!-- property="id" 实体对象的属性;column="id" 结果集字段 -->
		<result property="userName" column="USER_NAME"/>
		<result property="age" column="AGE"/>
	</resultMap>
	
	<!-- 列标签 -->
	<sql id="cols">
		(id,user_name,age)
	</sql>
	
	<!-- 查询所有 resultType设置返回值 -->
	<select id="findAll" parameterType="com.sys.domain.Person" resultMap="personRM">
		<!--  SQL语句 -->
		SELECT id,user_name,age FROM person
		<where>
			<if test="userName!=null">
				and user_name=#{userName}
			</if>
			<if test="age!=null">
				and age=#{age}
			</if>
		</where>
	</select>
	
	<!-- 查询一个对象 -->
	<select id="get" parameterType="integer" resultMap="personRM">
		SELECT id,user_name,age FROM person
		WHERE id=#{pid}
	</select>
	
	<!-- 记录总数 -->
	<select id="count" resultType="integer">
		SELECT count(*) FROM person
	</select>
	
	<!-- 新增,以实体来封装参数,在sql语句中有参数;隐患sql注入 preparestatement;解决sql注入,通过属性类型判断,如果是整数直接写,如果字符串类型两边加单撇-->
	<insert id="insert" parameterType="Person">
		INSERT INTO person 
		(
			id,
			user_name,
			age
		) 
		VALUES
		(
			#{id,jdbcType=INTEGER},
			#{userName,jdbcType=VARCHAR},
			#{age,jdbcType=INTEGER}
		)
	</insert>
	
	<!-- 修改 -->
	<update id="update" parameterType="com.sys.domain.Person">
		UPDATE person
		<set>
				user_name=#{userName,jdbcType=VARCHAR},
				age=#{age,jdbcType=INTEGER}
		</set>
		
		WHERE id=#{id}
	</update>
	
	<!-- 删除 -->
	<delete id="deleteById" parameterType="integer">
		DELETE FROM person 
		WHERE id=#{xid}
	</delete>
	
	<!-- 批量删除 数组参数  -->
	<delete id="deleteArray" parameterType="integer">
		DELETE FROM person WHERE id IN
		<foreach collection="array" item="id" open="(" close=")" separator=",">
			#{id}
		</foreach>
	</delete>
	
	<!-- 批量删除 list参数-->
	<delete id="deleteList" parameterType="integer">
		DELETE FROM person WHERE id IN
		<foreach collection="list" item="id" open="(" close=")" separator=",">
			#{id}
		</foreach>
	</delete>
	
	<!-- 批量删除 map参数-->
	<delete id="deleteMap" parameterType="map">
		DELETE FROM person WHERE id IN
		<foreach collection="ids" item="id" open="(" close=")" separator=",">
			#{id}
		</foreach>
		and age=#{age}
	</delete>
</mapper>





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值