`
wade6
  • 浏览: 274179 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

利用maven创建webx3项目——实现简单的留言板(四)

 
阅读更多

github:https://github.com/wade6/messageboard-webx3

配置持久层

4、配置数据源

首先在本地新建一个mysql数据库,端口设为3306,数据库的名字为message_board,其中有两个表

 

user表

 


 

message表

 


 

 

在持久层使用spring框架中的ibatis,所以需要在项目中集成ibaits框架,而且数据库使用的是mysql,也要在项目中导入mysql的驱动依赖包,此外这个项目中会使用数据库连接池,所以也要导入数据库连接池的依赖包。

 

依赖的包可以在maven仓库里查找(http://search.maven.org/#search%7Cga%7C1%7C);

 

查找ibatis,选择org.apache.servicemix.bundles.ibatis-sqlmap这个包,版本号2.3.4.726_4

 

查找dbcp,选择commons-dbcp,版本号1.2.2;

 

查找mysql,选择mysql-connector-java,版本号5.1.6

 

注意:以上选的包只是随便选的,只是为了实现本项目的功能,没有什么标准,如果有其他要求,可以选择其他的包。

 

因为我们使用maven管理项目,可以方便的在pom.xml中配置这些依赖。

 

在pom.xml中增加的配置项如下:

 

-----------------------------------------------------------------------

 

设置依赖的版本号:

 

 

<properties>

         ......

        <ibatis-version>2.3.4.726_4</ibatis-version>
        <dbcp-version>1.2.2</dbcp-version>
        <mysql-version>5.1.6</mysql-version>
</properties>

 

 

设置依赖的包:

 

 <dependencies>
   
        ......
        
        <!-- 集成 ibatis -导入依赖包-->
        <dependency>
        	<groupId>commons-dbcp</groupId>
        	<artifactId>commons-dbcp</artifactId>
        </dependency>
        <dependency>
        	<groupId>org.apache.servicemix.bundles</groupId>
        	<artifactId>org.apache.servicemix.bundles.ibatis-sqlmap</artifactId>
        </dependency>
        
        <!-- 导入mysql驱动jar包 -->   
        <dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>

    </dependencies>

 

 

设置管理依赖项:

 

 

 <dependencyManagement>
        <dependencies>
         <!-- 集成 ibatis -导入依赖包-->
            <dependency>
	        	<groupId>commons-dbcp</groupId>
	        	<artifactId>commons-dbcp</artifactId>
	        	<version>${dbcp-version}</version>
	        </dependency>
	        <dependency>
	        	<groupId>org.apache.servicemix.bundles</groupId>
	        	<artifactId>org.apache.servicemix.bundles.ibatis-sqlmap</artifactId>
	        	<version>${ibatis-version}</version>
        	</dependency>
        	 <!-- 导入mysql驱动jar包 -->   
        	 
        	 <dependency>
				<groupId>mysql</groupId>
				<artifactId>mysql-connector-java</artifactId>
				<version>${mysql-version}</version>
			</dependency>
		</dependencies>
		
		......
		
	<dependencyManagement>

 

-----------------------------------------------------------------------

 

然后配置项目的持久层框架

 

首先在src/main/resources中建立以下文件:

 


           

 

配置上面的文件

 

dal-data-source.xml

 

-----------------------------------------------------------------------

 

<?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:context="http://www.springframework.org/schema/context"
	xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
				http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
				http://www.springframework.org/schema/context 
				http://www.springframework.org/schema/context/spring-context-2.5.xsd
				http://www.springframework.org/schema/aop
            	http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
				http://www.springframework.org/schema/tx 
				http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

<!-- 数据库配置 -->
<bean id= "dataSource" class="org.apache.commons.dbcp.BasicDataSource">
	<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
	<property name="url" value="jdbc:mysql://127.0.0.1:3306/message_board"></property>
	<property name="username" value="webx3"></property>
	<property name="password" value="webx3"></property>
	<property name="minIdle" value="0" ></property>
	<property name="maxWait" value="-1"></property>
</bean>

<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource" />
</bean>

<bean id="transactionTemplate"
      class="org.springframework.transaction.support.TransactionTemplate">
      <property name="transactionManager" ref="transactionManager"></property>
</bean>

<!-- iBatis SQL map定义 -->
	<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="configLocation" value="classpath:sqlmap-config.xml" />
	</bean>
</beans>

 

-----------------------------------------------------------------------

 

sqlmap-config.xml

 

-----------------------------------------------------------------------

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
	<sqlMap resource="sqlmap/user-sqlmap.xml" ></sqlMap>
	<sqlMap resource="sqlmap/message-sqlmap.xml" ></sqlMap>
</sqlMapConfig>

 

-----------------------------------------------------------------------

 

message-sqlmap.xml

 

-----------------------------------------------------------------------

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" >
<sqlMap namespace="message" >
	<typeAlias alias="messageDO" type="com.alibaba.webx3.messageboard.dao.object.MessageDO" />
	
	<insert id="insertMessage" parameterClass="messageDO" >
	insert into message (
	            id,
	            title,
	            author,
	            content,
	            gmt_create,
	            gmt_modified
	         )  values (
	           #id#,
	           #title#,
	           #author#,
	           #content#,
	           now(),
	           now()
	         )
	  <selectKey resultClass="int" keyProperty="id">
     	<![CDATA[SELECT LAST_INSERT_ID() AS ID ]]>
      </selectKey>
	</insert>
	
	<select id="selectById" parameterClass="int" resultClass="messageDO" >
	select
	      id,
          title,
          author,
          content,
          gmt_create,
          gmt_modified
	from
	      message
	where
	      id=#id#
	</select>
	
	<select id="selectBylist" parameterClass="map" resultClass="messageDO" >
	select
	      id,
          title,
          author,
          content,
          gmt_create,
          gmt_modified
	from
	      message
	      
	order by gmt_modified desc
	
	limit #from#,#size#
	
	</select>
	
	<update id="updateMessage" parameterClass="messageDO">
	update 
	       message
	set
	       gmt_modified = now()
	   <dynamic prepend="" >
			<isNotEmpty prepend="," property="title">
				title = #title#
			</isNotEmpty>
			<isNotEmpty prepend="," property="author">
				author = #author#
			</isNotEmpty>
			<isNotEmpty prepend="," property="content">
				content = #content#
			</isNotEmpty>
		</dynamic>
    	where id = #id#    
	
	</update>
	
	<delete id="deleteMessage" parameterClass="int">
	delete 
	
	from 
	      message
	where 
	      id=#id#
	</delete>
	
</sqlMap>

 

-----------------------------------------------------------------------

 

user-sqlmap.xml

 

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" >
<sqlMap namespace="user">
	<typeAlias alias="userDO" type="com.alibaba.webx3.messageboard.dao.object.UserDO" />
	
	<insert id="insertUser" parameterClass="userDO" >
	insert into user (
	            id,
	            username,
	            password,
	            gmt_create,
	            gmt_modified
	         )  values (
	           #id#,
	           #username#,
	           #password#,
	           now(),
	           now()
	         )
	  <selectKey resultClass="int" keyProperty="id">
     	<![CDATA[SELECT LAST_INSERT_ID() AS ID ]]>
      </selectKey>
	</insert>
	
	<select id="selectByUsername" parameterClass="String" resultClass="userDO" >
	select
	      id,
	      username,
	      password,
	      gmt_create,
	      gmt_modified
	from
	      user
	where
	      username=#username#
	</select>
	
	<update id="updateuser" parameterClass="userDO">
	update 
	       user
	set
	       gmt_modified = now()
	   <dynamic prepend="" >
			<isNotEmpty prepend="," property="username">
				username = #username#
			</isNotEmpty>
			<isNotEmpty prepend="," property="password">
				password = #password#
			</isNotEmpty>
		</dynamic>
    	where id = #id#    
	
	</update>
	
	<delete id="deleteuser" parameterClass="userDO">
	delete 
	
	from 
	       user
	where 
	       id=#id#
	</delete>
	
</sqlMap>

-----------------------------------------------------------------------

最后,在webx配置文件webx-messageboard.xml中添加如下配置,将持久层加载到webx容器中:

<beans:import resource="classpath:dal/dal-data-source.xml" />

 

至此,数据源配置结束。 

 
  • 大小: 21.6 KB
  • 大小: 24.1 KB
分享到:
评论
2 楼 wade6 2014-11-02  
我这里将dal/dal-date-source.xml配置到webx的过程漏写了,所以容器并没有加载持久层的配置,报错是对的;而你的做法就是把这个文件加到webx中,是对的!
如果文件dal-date-source.xml位置不变,那么在webx中的引入的配置如下:
<beans:import resource="classpath:dal/dal-data-source.xml" />

L_Griselda 写道
你好,在这个项目中。
我按照你的目录结构在src/main/resources/dal下添加dal-data-source.xml
但是就出错了。然后把dal/dal-data-source.xml放在WEB-INF下,并且在webx中加入
<beans:import resource="dal/dal-data-source.xml" />
才可以。
请问是为什么呢?

L_Griselda 写道
你好,在这个项目中。
我按照你的目录结构在src/main/resources/dal下添加dal-data-source.xml
但是就出错了。然后把dal/dal-data-source.xml放在WEB-INF下,并且在webx中加入
<beans:import resource="dal/dal-data-source.xml" />
才可以。
请问是为什么呢?
1 楼 L_Griselda 2014-10-13  
你好,在这个项目中。
我按照你的目录结构在src/main/resources/dal下添加dal-data-source.xml
但是就出错了。然后把dal/dal-data-source.xml放在WEB-INF下,并且在webx中加入
<beans:import resource="dal/dal-data-source.xml" />
才可以。
请问是为什么呢?

相关推荐

    基于maven创建web项目

    基于maven创建web项目 maven是一种基于项目对象模型(Project Object Model,POM)的项目管理工具,由Apache软件基金会开发和维护。maven提供了一种标准化的方式来构建、打包和部署项目,它可以帮助开发者简化项目...

    使用Idea14.1.4和maven创建java web项目

    ### 使用Idea14.1.4和Maven创建Java Web项目 #### 一、概述 在本篇文章中,我们将详细介绍如何使用IntelliJ IDEA 14.1.4版本结合Maven来创建一个Java Web项目。这种方法不仅能够提高开发效率,还能确保项目的结构...

    idea使用maven创建的web项目

    【标题】:“idea使用maven创建的web项目” 在Java开发中,IntelliJ IDEA(简称Idea)作为一款强大的集成开发环境,结合Maven构建工具,能够帮助开发者高效地管理项目的依赖、构建和部署。Maven是一个项目管理和...

    使用Maven构建多模块项目

    本文将深入探讨如何利用Maven构建多模块项目,以及在实际操作中需要注意的关键点。 1. Maven多模块项目结构: Maven多模块项目通常遵循一个标准的目录结构,包括一个顶级父 pom.xml(如test-hd-parent),和若干子...

    项目管理利器——maven

    项目管理利器——maven,技术开发学习类稳定档案顶顶顶顶

    java创建一个简单的Maven项目

    java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一个简单的Maven项目java创建一...

    mavenWeb空项目

    【标题】"mavenWeb空项目"所涉及的知识点主要...综上所述,"mavenWeb空项目"是一个包含Java Web开发基础的项目模板,利用Maven进行构建管理和单元测试,为开发者提供了一个良好的起点,便于快速开发和迭代Web应用程序。

    maven创建实战web项目

    本篇文章将详细介绍如何利用Maven创建一个Servlet版本为3.0、Java版本为1.7的Web项目,并对创建过程中可能出现的问题及解决方案进行深入探讨。 #### 二、准备工作 1. **安装环境**: - Eclipse IDE(推荐使用最新...

    maven创建web工程

    通过 Maven 创建 Web 项目能够帮助开发者快速搭建开发环境,实现自动化构建、依赖管理和部署等功能。本文将详细介绍如何使用 Maven 在 Eclipse 中创建一个 Web 工程。 #### 二、准备工作 在开始之前,请确保已经...

    使用maven创建多模块项目

    在当今的软件开发领域,Java作为一种编程语言广泛应用于各个项目开发中,而Maven作为Java项目中一个十分流行的项目管理和构建工具,扮演着非常重要的角色。Maven不仅能帮助开发者管理项目依赖、自动化构建过程、提供...

    idea中利用maven创建web项目, 并通过tomcat进行部署,运行项目

    idea中利用maven创建web项目, 并通过tomcat进行部署,运行项目

    Eclipse使用Maven无法建web项目

    本文将深入探讨如何在Eclipse中利用Maven创建一个Web应用程序项目。 首先,我们需要理解“Eclipse使用Maven无法建web项目”这个问题可能涉及到的几个关键点。在Eclipse中创建Maven Web项目时,可能会遇到诸如Maven...

    Maven项目创建流程

    Maven项目创建流程是Java开发中一个至关重要的环节,它可以帮助开发者规范地组织项目结构,并自动管理项目的依赖关系。以下是一个详细的Maven项目创建步骤,包括创建父项目、子模块以及设置相关的配置信息。 1. **...

    maven多模块web项目

    在IDEA(IntelliJ IDEA)中创建这样的项目,开发者可以充分利用其强大的代码编辑、调试、版本控制和项目管理功能,提高开发效率。IDEA的Maven支持允许用户轻松管理依赖关系,构建和运行项目。 【标签】"maven web...

    Eclipse创建基于MAVEN的web项目

    "Eclipse创建基于MAVEN的web项目" 标题解释 本文主要介绍如何使用Eclipse创建基于Maven的Web项目,包括建立Maven项目、配置项目、构建框架等步骤。 描述解释 使用Eclipse创建Maven版的Web项目需要通过Maven的...

    构建基于Maven的SSH原型项目

    1. **初始化项目**:创建一个新的Maven项目,设置POM.xml文件,这是Maven项目的配置中心,包含项目的基本信息和依赖。 2. **添加SSH框架依赖**:在POM.xml中,你需要指定SSH框架的版本号,并添加相应的依赖。 3. *...

    Maven创建Java工程

    本教程通过实例演示了如何利用Maven创建一个多模块Java工程,并将其集成到Eclipse环境中,为开发者提供了一条清晰的项目构建和管理路径。无论是初学者还是经验丰富的开发者,都能从中受益,提升项目构建效率和代码...

Global site tag (gtag.js) - Google Analytics