执行流程
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>