type=“JDBC” 会自动开启事务,需要自己提交事务
type=“MANAGED” 不会开启事务
<transactionManager type="JDBC"></transactionManager>
配置数据源
type=“POOLED” 让mybatis帮我们维护连接池
type=“UNPOOLED” 每次都新建或释放连接
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis-example"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
配置映射文件
<mappers>
<mapper resource="mappers/EmployeeMapper.xml"></mapper>
</mappers>
settings
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/> <!--开启日志输出,选择使用system进行控制台输出-->
</settings>

select emp_id empId,emp_name empName,emp_salary empSalary from t_emp where emp_id=#{
id}
<!--
#{
key}:占位符+赋值 emp_id=? ?=赋值 动态值时使用
${
key}:字符串拼接 "emp_id"+id 动态的列名 容器名 关键字使用
//sqlSession.commit(); 查询不需要提交事务
-->
数据传入:
<select id="queryBySalary" resultType="com.dc.pojo.Employee">
select emp_salary empSalary from t_emp where emp_salary=#{
salary}
</select>
<insert id="insertEmp">
insert into t_emp (emp_name,emp_salary) values(#{
empName} #{
empSalary})
</insert>
多个参数传入
List<Employee> queryByNameAndSalary(@Param("a")String name, @Param("b")double salary);
<select id="queryByNameAndSalary" resultType="com.dc.pojo.Employee">
select emp_id empId,emp_name empName,emp_salary empSalary from t_emp
where emp_name=#{
a} and emp_salary=#{
b}
</select>
map传入
<!--
#{
key} key等于map的key
-->
<insert id="insertEmpMap">
insert into t_emp (emp_name,emp_salary) values(#{
name} #{
salary})
</insert>
原文链接: https://blog.csdn.net/qq_53568730/article/details/135437008