今天是实习的第三天,昨天我们使用了ssm完成一个简单的登录界面,今天需要实现对数据库中数据的显示以及增删改查操作。
老师在一开始为我们仔细讲解了配置文件的相关细节,听了老师的讲解,本来我对配置文件完全不理解,现在也对其基本构成有所了解了,本项目中配置文件有如下六部分。
1.配置数据库相关参数properties的属性
2.配置数据源,依赖注入的方式,bean即为对象,以前需要自己通过new操作,现在通过配置文件配置即可,对象的属性可通过property value进行设置。该dataSource为步骤三中的dataSource赋值
<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}"/>
<property name="maxPoolSize" value="30"/>
<property name="minPoolSize" value="2"/>
</bean>
3.配置SqlSessionFactory对象,创建对象的注入方式主要有两种,第一种在配置文件中写一个bean,第二种可以通过添加注解的方式。
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 注入数据库连接池 -->
<property name="dataSource" ref="dataSource"/>
<!-- 扫描bean包 使用别名 -->
<property name="typeAliasesPackage" value="com.zr.bean"></property>
<!--配置加载映射文件 UserMapper.xml-->
<property name="mapperLocations" value="classpath:mapper/*.xml"/>
</bean>
4.配置扫描Dao接口包,动态实现Dao接口,注入到spring容器中,创建MapperScannerConfigurer,并配置其两个属性
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 给出需要扫描Dao接口包 -->
<property name="basePackage" value="com.zr.dao"/>
<!-- 注入sqlSessionFactory -->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>
<!--自动扫描-->
<context:component-scan base-package="com.zr"/>
5.配置事务管理器
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
6.开启事务注解
查找功能的需要实现一个findAll方法,control层调用service,service调用dao层,把所有数据从数据库查出来之后,封装到ModelAndView里面在页面中展现出来即可,具体的sql语句在UserMapper中实现,不需要再向以前每次数据库操作都写一大堆创建驱动之类的,非常方便。
删除操作可以通过给定的id进行删除,之后重定向到findAll.do重新查询,从而达到删除的目的。添加操作和删除类似,将用户添加后,重定向到findAll.do重新查询实现添加用户的目的。
在更新操作中,首先实现toUpdate方法完成页面跳转,先通过selectUserById方法查找到目标用户,将其添加到ModelAndView中并在页面上展现,并跳转到user-update页面,实现类中使用select * from tb_user where id = #{id},通过这句SQL语句可以查找到目标用户。接下来需要实现一个update方法中,在其中调用userService的update方法更新用户,最后同样重定向findAll.do
通过今天的学习实现了对数据库的增删改查,实现方法都大同小异,使用ssm确实比不使用框架减少了很多工作量,对于程序员来说只需要专注于逻辑实现即可,令我受益匪浅。