Mirada de cerca de JAVAEE en el marco 11-Mybatis SSM marco de integración

Integración de marco SSM

1. Prepárate

Inserte la descripción de la imagen aquí

2. Crear un proyecto Maven

Inserte la descripción de la imagen aquí

3. Importar coordenadas Maven

Referencia: material / archivo de configuración / archivo pom.xml

4. Escribir clase de entidad
public class Account {
    private int id;
    private String name;
    private double money;
    //省略getter和setter方法
}
5. Escribir interfaz de Mapper
public interface AccountMapper {
    //保存账户数据
    void save(Account account);
    //查询账户数据
    List<Account> findAll();
}
6. Interfaz de servicio de escritura
public interface AccountService {
    void save(Account account); //保存账户数据
    List<Account> findAll(); //查询账户数据
}
7. Implementación de la interfaz de servicio de escritura
@Service("accountService")
public class AccountServiceImpl implements AccountService {
    public void save(Account account) {
        SqlSession sqlSession = MyBatisUtils.openSession();
        AccountMapper accountMapper = sqlSession.getMapper(AccountMapper.class);
        accountMapper.save(account);
        sqlSession.commit();
        sqlSession.close();
    }
    public List<Account> findAll() {
        SqlSession sqlSession = MyBatisUtils.openSession();
        AccountMapper accountMapper = sqlSession.getMapper(AccountMapper.class);
        return accountMapper.findAll();
    }
}
8. Escribir controlador
@Controller
public class AccountController {
    @Autowired
    private AccountService accountService;
    @RequestMapping("/save")
    @ResponseBody
    public String save(Account account){
        accountService.save(account);
        return "save success";
    }
    @RequestMapping("/findAll")
    public ModelAndView findAll(){
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("accountList");
        modelAndView.addObject("accountList",accountService.findAll());
        return modelAndView;
    }
}
9. Escribir Agregar página
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h1>保存账户信息表单</h1>
    <form action="${pageContext.request.contextPath}/save.action" method="post">
        用户名称<input type="text" name="name"><br/>
        账户金额<input type="text" name="money"><br/>
        <input type="submit" value="保存"><br/>
    </form>
</body>
</html>
10. Escribe una página de lista
<table border="1">
    <tr>
        <th>账户id</th>
        <th>账户名称</th>
        <th>账户金额</th>
    </tr>
    <c:forEach items="${accountList}" var="account">
        <tr>
            <td>${account.id}</td>
            <td>${account.name}</td>
            <td>${account.money}</td>
        </tr>
    </c:forEach>
</table>
11. Escriba el archivo de configuración correspondiente (directorio de referencia del archivo: material / archivo de configuración)

• Archivo de configuración de Spring: applicationContext.xml

• Archivo de configuración SprngMVC: spring-mvc.xml

• Archivo de mapeo MyBatis: AccountMapper.xml

• Archivo principal de MyBatis: sqlMapConfig.xml

• Archivo de información de conexión de base de datos: jdbc.properties

• Contenido de Web.xml: web.xml

• Archivo de registro: [log4j.xml] (

12. Prueba agregando una cuenta

Inserte la descripción de la imagen aquí

13. Lista de cuentas de prueba

Inserte la descripción de la imagen aquí

1.2 Integración de primavera MyBatis

1. Ideas de integración

Inserte la descripción de la imagen aquí

2. Configure SqlSessionFactory en el contenedor Spring
<!--加载jdbc.properties-->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!--配置数据源-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <property name="driverClass" value="${jdbc.driver}"/>
    <property name="jdbcUrl" value="${jdbc.url}"/>
    <property name="user" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
</bean>
<!--配置MyBatis的SqlSessionFactory-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="configLocation" value="classpath:sqlMapConfig.xml"/>
</bean>
3. Escanee el asignador y deje que el contenedor Spring genere la clase de implementación del asignador
<!--配置Mapper扫描-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.ittest.mapper"/>
</bean>
4. Configurar el control de transacciones declarativas
<!--配置声明式事务控制-->
<bean id="transacionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"/>
</bean>
<tx:advice id="txAdvice" transaction-manager="transacionManager">
    <tx:attributes>
        <tx:method name="*"/>
    </tx:attributes>
</tx:advice>
<aop:config>
    <aop:pointcut id="txPointcut" expression="execution(* com.ittest.service.impl.*.*(..))"/>
    <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"/>
</aop:config>
5. Modificar el código de clase de implementación del servicio
@Service("accountService")
public class AccountServiceImpl implements AccountService {

    @Autowired
    private AccountMapper accountMapper;

    public void save(Account account) {
        accountMapper.save(account);
    }
    public List<Account> findAll() {
        return accountMapper.findAll();
    }
}
Publicado 78 artículos originales · elogiado 30 · visitas 3632

Supongo que te gusta

Origin blog.csdn.net/ZMW_IOS/article/details/105276665
Recomendado
Clasificación