初探MyBatis--config和mapper的配置

执行流程
在这里插入图片描述
Mybatis的配置文件
SqlMapConfig.xml配置文件
在这里插入图片描述
配置文件,如配置数据库的相关信息
方式一:直接内部引入

<!-- mybatis运行环境 -->	
	
	 <environments default="default">
        <environment id="default">
            <transactionManager type="JDBC"/>
            <!--设置数据库连接池-->
            <dataSource type="POOLED">
            	<!-- 数据源 -->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"></property>  
          		<property name="url" value="jdbc:mysql://localhost:3306/teach?serverTimezone=Asia/Shanghai"></property>  
          		<property name="username" value="root"></property>  
          		<property name="password" value="root"></property>
            </dataSource>
        </environment>
    </environments>

方式二:通过properties文件传入信息

<!-- 配置properties文件,配置数据库数据源 使用${}读取配置信息 -->
	<properties resource="db.properties"></properties>
	
<!-- 配置mybatis运行环境 -->
	<environments default="default">
		<environment id="default">
			<transactionManager type="JDBC" />
			<!--设置数据库连接池 -->
			<dataSource type="POOLED">
				<!-- 数据源 -->
				<property name="driver" value="${jdbc.driver}"></property>
				<property name="url" value="${jdbc.url}"></property>
				<property name="username" value="${jdbc.username}"></property>
				<property name="password" value="${jdbc.password}"></property>
			</dataSource>
		</environment>
	</environments>

其中db.properties文件为数据库的基本信息,如

#数据库的相关信息
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/homeworkonline?serverTimezone=Asia/Shanghai
jdbc.username=root
jdbc.password=root

起别名

<typeAliases>
		<!-- 某个类起别名 -->
		<!-- <typeAlias type="com.mybatis.pojo.User" alias="User"/> -->
		<!-- 扫描某个包,别名为类名(首字母大写或小写都可以)  -->
		<package name="com.mybatis.pojo"/>
		<!-- <package name="其他包"/> -->
	</typeAliases>

SqlMapConfig配置实例

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<!-- 配置properties文件,配置数据库数据源 使用${}读取配置信息 -->
	<properties resource="db.properties"></properties>
	<!-- 起别名 -->
	<typeAliases>
		<!-- 给 "com.hadwinling.entity.Admin"起别名为Admin -->
<!-- 		<typeAlias type="com.hadwinling.entity.Admin" alias="Admin" /> -->
		<!-- 整个包起别名 name="包名"  包中所有的类的别名就是类名 -->
		<package name="com.hadwinling.entity" />
	</typeAliases>

	<!-- 配置mybatis运行环境 -->
	<environments default="default">
		<environment id="default">
			<transactionManager type="JDBC" />
			<!--设置数据库连接池 -->
			<dataSource type="POOLED">
				<!-- 数据源 -->
				<property name="driver" value="${jdbc.driver}"></property>
				<property name="url" value="${jdbc.url}"></property>
				<property name="username" value="${jdbc.username}"></property>
				<property name="password" value="${jdbc.password}"></property>
			</dataSource>
		</environment>
	</environments>
	<!-- 配置mapper映射文件 -->
	<mappers>
		<mapper resource="sqlmap/adminMapper.xml" />
		<mapper resource="sqlmap/deptMapper.xml" />
		<mapper resource="sqlmap/empMapper.xml" />
		<mapper resource="sqlmap/studentMapper.xml" />
	</mappers>

</configuration>

mapper映射文件
resultType属性:用于指定结果集的类型,要求列明必须和属性名一致
parameterType属性:代表参数的类型,当传入的是一个类对象,需要写类的全类名,当是基本参数时可以直接写基本类型
例如:

<?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映射文件 -->
<!-- DAO的具体sql 
namespace:命名空间,sql语句进行模块管理
目前:自定义
后期:特殊用途-->
<mapper namespace="com.gem.demo">
	<!-- 查询语句 
		id:唯一   区分同一个命名空间下的不用sql语句
		resultType:结果映射类型  全路径
	-->
	<select id="selectAll" resultType="com.gem.demo.entity.Admin">
		select * from  admin
	</select>
	<!-- 
		parameterType:参数类型
		基本数据类型和String  可以直接写类型名  int  String 
		实体类型:全类名
		#{} 传参   相当于jdbc中的?占位符
	 -->
	<select id="selectById" resultType="com.gem.demo.entity.Admin" parameterType="int">
		select * from admin where id=#{id}
	</select>
	<!-- 获取新增记录的主键值 
		useGeneratedKeys="true"    将新增记录的自增键的值赋值给keyProperty指定的属性
		keyProperty="id"
	-->
	<insert id="addAdmin" parameterType="com.gem.demo.entity.Admin" useGeneratedKeys="true" keyProperty="id">
		insert into admin(username,password) values(#{username},#{password})
	</insert>
	<select id="login" resultType="com.gem.demo.entity.Admin" parameterType="com.gem.demo.entity.Admin">
		select * from admin where username=#{username} and password=#{password}
	</select>
	<!-- 模糊查询 
		#{}  有预编译的  占位符?  防止sql注入
		${}  没有预编译  直接取出字符串的值  做参数拼接   
			不安全
			sql注入
			
		一般情况下  模糊查询中使用${}
	
	-->
	<select id="selectLikeName" parameterType="String" resultType="com.gem.demo.entity.Admin">
	<!-- 	select * from admin where username like '%${value}%' -->
		select * from admin where username like "%"#{value}"%"
	</select>
</mapper>
发布了85 篇原创文章 · 获赞 13 · 访问量 9111

猜你喜欢

转载自blog.csdn.net/Alingyuzi/article/details/105081914