1. 引入依赖
spring-jdbc, mybatis, druid, mysql-connector-java, mybatis-spring
2. 创建db.properties
db.username=root
db.password=123456
db.url=jdbc:mysql://localhost:3306/meeting?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8
3. applicationContext.xml
<context:property-placeholder location="classpath:db.properties"/>
<bean class="com.alibaba.druid.pool.DruidDataSource" id="dataSource">
<property name="username" value="${db.username}"/>
<property name="password" value="${db.password}"/>
<property name="url" value="${db.url}"/>
</bean>
<bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="typeAliasesPackage" value="com.javaboy.meeting.entity"/>
<property name="mapperLocations" value="classpath*:com/javaboy/meeting/mapper/*Mapper.xml"/>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" id="mapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactoryBean"/>
<property name="basePackage" value="com.javaboy.meeting.mapper"/>
</bean>
注意mapperlocation最好放在包下, 而不是resource下
4. 避免mybaits被忽略掉, 所以pom.xml下配置一下
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
5. entity包里创建对应的bean类, 设置getter setter tostring
6. mapper接口类, controller类, service类
7. Controller里注入Service --> Service里注入Mapper --> Mapper.xml里写对应查询
@RestController
public class DepartmentController {
@Autowired
DepartmentService departmentService;
@GetMapping("/dep")
public void getDepById(Integer id) {
Department department = departmentService.getDepById(id);
System.out.println(department);
}
}
@Service
public class DepartmentService {
@Autowired
DepartmentMapper departmentMapper;
public Department getDepById(Integer id) {
return departmentMapper.getDepById(id);
}
}
public interface DepartmentMapper {
Department getDepById(Integer id);
}
<mapper namespace="com.javaboy.meeting.mapper.DepartmentMapper">
<select id="getDepById" resultType="com.javaboy.meeting.entity.Department">
select *
from department
where departmentid = #{id}
</select>
</mapper>
开启事务
1. 引入依赖
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.2</version>
</dependency>
2. applicationContext.xml
<!-- 事务的配置 -->
<bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager" id="transactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*"/>
<tx:method name="insert*"/>
<tx:method name="update*"/>
<tx:method name="delete*"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="pc1" expression="execution(* com.javaboy.meeting.service.*.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="pc1"/>
</aop:config>