SSM集成

spring+springmvc+mybatis三个框架集成

开发工具以及运行环境:eclipse+jak1.8++tomcat7+mysql

第一步,数据库

CREATE TABLE `book` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(192) DEFAULT NULL,
  `price` float DEFAULT NULL,
  `pic` varchar(96) DEFAULT NULL,
  `description` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

第二步,搭建项目,导入包

demo的项目结构

第三步:创建spring.xml文件,sping-mvc.xml各种约束

第四步:开始着手初步代码构建。entity,mapper,service,serviceimpl层的代码就不展现了,重点在xml文件中

第五步:Spring和MyBatis集成 (重点在配置的配置)


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

	<!-- 读取本地数据配置文件 -->
	<context:property-placeholder
		location="db.properties" />

	<bean name="dataSource"
		class="com.alibaba.druid.pool.DruidDataSource" init-method="init"
		destroy-method="close">
		<property name="driverClassName"
			value="${jdbc.driverClassName}" />
		<property name="url" value="${jdbc.url}" />
		<property name="username" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />
		<property name="maxActive" value="${jdbc.maxActive}" />
	</bean>


	<!-- 第一步,创建sqlsessionfactory对象 -->
	<bean name="sqlSessionFactoryBean"
		class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- 第二部,注入数据源 -->
		<property name="dataSource" ref="dataSource"></property>
		<!-- 第三步,配置包别名 -->
		<property name="typeAliasesPackage" value="com.xiaoliu.entity"></property>
	<!-- 第四步:引入mybatis的配置文件 如果需要的话,可以在这里配置mybatis配置文件,但是一般情况下,这个可以完全忽略 -->
	<!-- <property name="configLocation" value="classpath:mybatis.config"></property> -->
	<!-- 第七步配置映射文件 -->
	<property name="mapperLocations" value="classpath:com/xiaoliu/mapper/*Mapper.xml"></property>
	</bean>
	<!-- 第五步:创建sqlsession对象。但是底层 sqlSessionFactoryBean已经创建,所以不用单独配置-->
	
	
	
	<!-- 第六步:配置动态代理对象 这时候会用到mybatis-spring桥梁包 -->
<bean id="bookMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<!-- 配置 sqlsession对象 但是同理底层也是sqlsessionfactory工厂创建-->
<property name="sqlSessionFactory" ref="sqlSessionFactoryBean" />
<!-- 配置需要被代理的对象 对应上面第七步-->
<property name="mapperInterface" value="com.xiaoliu.mapper.BookMapper"></property>
</bean>


<!-- 第八步配置事物管理器 -->
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>

</bean>


<!-- 第九步配置service层 -->
	<bean id="bookService"
		class="com.xiaoliu.service.impl.BookServiceImpl">
		<property name="mapper" ref="bookMapper"></property>
	</bean>
	



<!-- 第九步 配置事物 事物通知 -->
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
			<tx:method name="find*" read-only="true" />
			<tx:method name="get*" read-only="true" />
			<tx:method name="query*" read-only="true" />
			<tx:method name="select*" read-only="true" />
			<tx:method name="list*" read-only="true" />
			<tx:method name="*" />
		
</tx:attributes>
</tx:advice>
<!-- 使用aop切事物 -->
<aop:config>
<!-- 配置切点 -->
<aop:pointcut expression="execution (* com.xiaoliu.service..*.**(..))" id="qiedian"/>
<!-- 配置切面 切面=通知+切点 -->
<aop:advisor advice-ref="txAdvice" pointcut-ref="qiedian"/>
</aop:config>
</beans>

备注:在配置service层的时候,引入dao的时候,如果有报这个错

Multiple annotations found at this line:  - No setter found for property 'mapper' in class 

因为这里我是用的属性注入,所以必须要有set方法,在service层加入service方法即可

第六步:新建测试类,测试一下

第七步:mybatis和springmvc集成

webxml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
	id="WebApp_ID" version="3.0">
	<display-name>SSM集成</display-name>
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>

	<!-- 第一步:配置前端总控制器 -->
	<servlet>
		<servlet-name>DispatcherServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<!-- 第三步 -读取spring配置-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring*.xml</param-value>
</init-param>
<!-- 第四步 出事华容器 -->
<load-on-startup>1</load-on-startup>
	</servlet>
<!-- 第二:指定url -->
	<servlet-mapping>
		<servlet-name>DispatcherServlet</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>
</web-app>

springmvc.xml

最后controller控制器代码

@Controller
public class BookController {
	
	@Autowired
	private BookService service;
	
@RequestMapping("bookList")
public String bookList(Model model) {
	
	List<Book> all = service.getAll();
	/*共享到前台*/
	model.addAttribute("all",all);
	return "book_list";
	
}
}

简单的实现了查的功能,总篇写下来,对ssm的掌握更加的熟悉了

代码在此直接点击:代码详细

代码我已经详细注释,如有错,可以指出,共同学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值