myBatis学习笔记
配置文件SqlMapConfig.xml
?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> <!-- 和spring整合后 environments配置将废除--> <environments default="development"> <environment id="development"> <!-- type="JDBC" 代表使用JDBC的提交和回滚来管理事务 --> <transactionManager type="JDBC" /> <!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI --> <!-- POOLED 表示支持JDBC数据源连接池 --> <!-- UNPOOLED 表示不支持数据源连接池 --> <!-- JNDI 表示支持外部数据源连接池 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/ssm" /> <property name="username" value="root" /> <property name="password" value="root" /> </dataSource> </environment> </environments> <mappers> <mapper resource="***.xml"/>
<!-- 也可使用package来导入一个包 -->
</mappers> </configuration>
测试
// 加载配置文件 InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml"); // 创建SqlSessuibFactory对象 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in); // 通过会话工厂创建会话 SqlSession session = factory.openSession(); //获取代理对象 AccountDao dao = session.getMapper(AccountDao.class);
spring整合myBatis,上面的SqlMapConfig.xml可以删掉
<!-- spring整合myBatis框架 --> <!-- 配置连接池 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="com.mysql.jdbc.driver"/> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/ssm"/> <property name="user" value="root"/> <property name="password" value="root"/> </bean> <!-- 配置sqlSessionFactory工厂 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" value="dataSource"/> </bean> <!-- 配置所在的包 --> <bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigure"> <property name="basePackage" value="cn.it.dao"/> </bean>
<!-- 配置spring框架声明式事务 -->
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 配置事务通知 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="find*" read-only="true"/>
<tx:method name="*" isolation="DEFAULT"/>
</tx:attributes>
</tx:advice>
<!-- 配置AOP增强 -->
<aop:config>
<aop:advisor advice-ref="txAdvice" pointcut="execution ()"/>
</aop:config>
Mapper.xml的配置模板
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd"> <mapper namespace="com.lin.springboot01.Dao.shopDao"> <resultMap id="shopMapper" type="com.lin.springboot01.Domain.shop"> <id property="id" column="id"/> <result property="name" column="name"/> <result property="date" column="date"/> </resultMap> <select id="findInfo" resultMap="shopMapper"> select * from shop_info </select> </mapper>