mybatis全局配置文件解析
mybatis的所有配置标签是有顺序约定规则的应该放在第一位
environments
用来配置不同数据库连接环境的
<environments default="mysql"> <!--默认使用的数据库连接-->
<environment id="mysql"> <!--数据哭环境的唯一表示标识-->
<!--怎么设置自动提示呢,只需要在idea的xml-catalog中设置一下s
http://mybatis.org/dtd/mybatis-3-config.dtd就可以了-->
<transactionManager type="JDBC"/> <!--使用jdbc最原始的事务管理器来管理,还可以选择MANAGED-->
<!-- <dataSource type="POOLED|UNPOOLED不使用数据源|JDNI调用上下文中的数据源">-->
<dataSource type="POOLED">
<!--添加数据库的连接信息-->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/hello"/>
<property name="username" value="root"/>
<property name="password" value="888888"/>
</dataSource>
</environment>
<environment id="oracle">
<!--怎么设置自动提示呢,只需要在idea的xml-catalog中设置一下s
http://mybatis.org/dtd/mybatis-3-config.dtd就可以了-->
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!--添加数据库的连接信息-->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:oracle://localhost:3306/hello"/>
<property name="username" value="root"/>
<property name="password" value="888888"/>
</dataSource>
</environment>
</environments>
用来引入外部资源的配置文件
<properties resource="jdbc.properties"></properties>
<!--这个jdbc.properties是一个外部资源文件-->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
给指定包下的类、或者类设置别名,不区分大小写
<typeAliases>
<!--这里的别名起了之后是不区分大小写的-->
<typeAlias type="com.shufang.pojo.User" alias="User"></typeAlias>
<!--将指定包下的所有类都起上默认的-->
<package name="com.shufang.pojo"/>
</typeAliases>
<!--指定映射对应的xml文件,可以指定多个-->
<mappers>
<package resource = "指定的包" />
<mapper resource="com.shufang.mapper/UserMapper.xml"/>
<mapper resource="com.shufang.mapper/EmployeeMapper.xml"/>
<mapper resource="com.shufang.mapper/EmployeeSelectMapper.xml"/>
</mappers>
mybatis 映射文件解析
<?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.shufang.mapper.EmployeeMapper">
<!--Employee getEmpById(String id);-->
<select id="getEmpById" resultType="Employee">
select empid,name,gender,age,deptid from hr_emp where empid = #{id}
</select>
<!--List<Employee> getEmployees();-->
<select id="getEmployees" resultType="Employee">
select empid,name,gender,age,deptid from hr_emp
</select>
<!--Map<Integer,Object> getEmpMapById(String id);-->
<select id="getEmpMapById" resultType="java.util.HashMap">
select empid,name,gender,age,deptid from hr_emp where empid = #{id}
</select>
<!--Integer getcount();-->
<select id="getcount" resultType="Integer">
select count(1) from hr_emp
</select>
<!--void insertEmp(Employee employee); 默认返回受影响的行数-->
<insert id="insertEmp">
insert into hr_emp values (null,#{name},#{gender},#{age},#{deptId})
</insert>
<!--void updateEmp(Employee employee);-->
<!--parameterType="Employee" 自动类型推断机制,一般情况下不用自己声明parameterType的类型-->
<update id="updateEmp">
update hr_emp set name = #{name} ,gender = #{gender},age = #{age} where empid = #{empId}
</update>
<!--void deleteEmp(String id);默认返回受影响的行数 或者boolean的值,看是否删除成功-->
<delete id="deleteEmp">
delete from hr_emp where empid = #{id}
</delete>
</mapper>