一、项目准备
jar包:
mybatis-spring-1.0.1.jar
mybatis-3.0.5.jars
spring3.1下的必须包
数据库驱动
其他一些零零碎碎的jar包(这些大家都懂的吧)
数据表
CREATE TABLE `notice` (
`Author` varchar(255) default NULL,
`Content` varchar(255) default NULL,
`Title` varchar(255) default NULL,
`AddTime` datetime default NULL,
`NoticeId` int(11) NOT NULL auto_increment,
PRIMARY KEY (`NoticeId`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
二、各配置文件
1. mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
<configuration>
<typeAliases>
<typeAlias type="com.huaxin.bean.Notice" alias="notice" />
</typeAliases>
<mappers>
<mapper resource="com/huaxin/bean/notice-mapper.xml" />
</mappers>
</configuration>
2.Notice.java
public class Notice implements java.io.Serializable {
private Integer noticeId;
private String author;
private Timestamp addTime;
private String content;
private String title;
public Notice() {
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Integer getNoticeId() {
return this.noticeId;
}
public void setNoticeId(Integer noticeId) {
this.noticeId = noticeId;
}
public String getAuthor() {
return this.author;
}
public void setAuthor(String author) {
this.author = author;
}
public Timestamp getAddTime() {
return this.addTime;
}
public void setAddTime(Timestamp addTime) {
this.addTime = addTime;
}
public String getContent() {
return this.content;
}
public void setContent(String content) {
this.content = content;
}
}
3.notice-mapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<mapper namespace="com.huaxin.dao.NoticeDao">
<resultMap type="notice" id="noticeResult">
<result column="NoticeId" property="noticeId" />
<result column="Title" property="title" />
<result column="AddTime" property="addTime" />
</resultMap>
<select id="get" parameterType="int" resultType="notice" resultMap="noticeResult">
SELECT * FROM notice WHERE NoticeId = #{noticeId}
</select>
<insert id="save" parameterType="notice">
INSERT INTO notice (NoticeId, Title, AddTime) values (#{noticeId}, #{title}, #{addTime})
</insert>
<delete id="delete" parameterType="int">
DELETE FROM notice WHERE NoticeId = #{noticeId}
</delete>
</mapper>
4.spring配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="placeholderConfig"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:init.properties</value>
</property>
</bean>
<bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource"
destroy-method="close" dependency-check="none">
<property name="driverClass">
<value>${datasource.driverClassName}</value>
</property>
<property name="jdbcUrl">
<value>${datasource.url}</value>
</property>
<property name="username">
<value>${datasource.username}</value>
</property>
<property name="password">
<value>${datasource.password}</value>
</property>
<property name="idleConnectionTestPeriod">
<value>${boneCP.idleConnectionTestPeriod}</value>
</property>
<property name="idleMaxAge">
<value>${boneCP.idleMaxAge}</value>
</property>
<property name="maxConnectionsPerPartition">
<value>${boneCP.maxConnectionsPerPartition}</value>
</property>
<property name="minConnectionsPerPartition">
<value>${boneCP.minConnectionsPerPartition}</value>
</property>
<property name="partitionCount">
<value>${boneCP.partitionCount}</value>
</property>
<property name="acquireIncrement">
<value>${boneCP.acquireIncrement}</value>
</property>
<property name="statementsCacheSize">
<value>${boneCP.statementsCacheSize}</value>
</property>
<property name="statementsCachedPerConnection">
<value>${boneCP.statementsCachedPerConnection}</value>
</property>
<property name="releaseHelperThreads">
<value>${boneCP.releaseHelperThreads}</value>
</property>
</bean>
<bean id="htm"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!-- datasource 配置jdbcTemplate -->
<property name="dataSource">
<ref local="dataSource" />
</property>
</bean>
<bean id="txProxyTemplate" abstract="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="htm" />
</property>
<property name="transactionAttributes">
<props>
<prop key="create*">
PROPAGATION_REQUIRED,-com.ebay.exception.ApplyException
</prop>
<prop key="save*">
PROPAGATION_REQUIRED,-com.ebay.exception.ApplyException
</prop>
<prop key="remove*">
PROPAGATION_REQUIRED,-com.ebay.exception.ApplyException
</prop>
<prop key="update*">
PROPAGATION_REQUIRED,-com.ebay.exception.ApplyException
</prop>
<prop key="delete*">
PROPAGATION_REQUIRED,-com.ebay.exception.ApplyException
</prop>
<prop key="batch*">
PROPAGATION_REQUIRED,-com.ebay.exception.ApplyException
</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
<!-- ibatis配置 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- <property name="mapperLocations" value="classpath:sample/config/mappers/**/*.xml" -->
<property name="configLocation" value="classpath:mybatis-config.xml" />
<property name="dataSource" ref="dataSource" />
</bean>
<!--
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
-->
<bean abstract="true" lazy-init="true" id="ibatis">
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<!-- ==================== End =================== -->
<bean id="noticeService" parent="txProxyTemplate">
<property name="target">
<bean class="com.huaxin.service.NoticeServiceImpl">
<property name="noticeDao" ref="noticeDao" />
</bean>
</property>
</bean>
<bean id="noticeDao" parent="ibatis" class="com.huaxin.dao.NoticeDaoImpl"/>
</beans>
5.测试
public class NoticeDaoImpl extends SqlSessionDaoSupport implements NoticeDao {
//SqlSessionDaoSupport里面有SqlSessionFactory属性
public Notice get(Integer id) {
return (Notice) this.getSqlSession().selectOne("com.huaxin.dao.NoticeDao.get", id);
}
}
相关推荐
在这个实例中,我们将深入探讨 SpringMVC 的核心概念、配置、以及如何通过实际操作来创建一个简单的应用程序。 首先,SpringMVC 的核心组件包括 DispatcherServlet(前端控制器)、Controller(控制器)、Model...
在这个"springmvc实例"中,我们可以看到一个简单的 HTTP 接口的实现,通过访问 `http://localhost:8080/jxhService/test/hello` 可以测试其功能。 1. **Spring MVC 架构**: - Spring MVC 提供了一个分层的架构,...
在"Ext4+SpringMVC实例Demo源码"中,我们可以期待看到如何将这两个技术结合,创建一个具有交互性和数据管理功能的Web应用。这个Demo可能包含了以下关键知识点: 1. **Ext4组件使用**:Ext4提供了一系列的UI组件,如...
**SpringMVC简介** ...通过上述知识点,我们可以快速搭建并运行一个SpringMVC实例,实现从请求处理到响应的完整流程。在实际项目中,还需要考虑安全性、性能优化等方面,以构建出高质量的Web应用。
【标题】"cxf+SpringMVC实例"探讨了如何将Apache CXF服务框架与SpringMVC进行集成,创建一个高效、灵活的Web服务应用程序。Apache CXF是一个开源的Java框架,它允许开发者构建和消费各种Web服务,包括SOAP和RESTful...
这个实例 "SpringMvc实例" 包括了创建基于 Spring MVC 和 JPA 的 Web 应用的基本步骤。文件 "DLJTAQDTJGPT" 可能是项目资源或配置文件的压缩包,但无法提供具体细节,因为它只是一个抽象的文件名。要获取更多信息,...
首先,我们来看一下"SpringMVC实例.docx",这很可能是包含了一个详细的步骤指南,包括创建项目结构、配置SpringMVC的DispatcherServlet、编写控制器、设置视图解析器、以及可能的数据访问层和业务逻辑层的实现。...
标题"mybaties+springMVC实例"表明这是一个将MyBatis与SpringMVC整合的实践项目,旨在帮助开发者快速理解和掌握这两个框架的集成使用。 描述中的"这是java中一个简单的mybaties+springMVC的完整实例"提示我们,这个...
现在,我们按照以下步骤创建SpringMVC实例: 1. **创建项目**:在MyEclipse中新建一个Dynamic Web Project,然后添加SpringMVC的依赖库,包括Spring的web、context、web-context和mvc等模块。 2. **配置web.xml**...
总结一下,SpringMVC实例小项目是一个很好的学习平台,它涵盖了SpringMVC的主要组件和核心概念,通过实际操作可以加深对SpringMVC的理解,提升Web应用开发技能。在项目实践中,你会遇到配置、编写Controller、设计...
在本实例项目 "springmvc 实例项目简单登录功能" 中,我们将探讨如何使用 Spring MVC 来实现一个基本的用户登录功能。 首先,我们需要了解 MVC 设计模式。MVC 将应用程序分为三个核心部分:模型(Model)、视图...