SSM整合项目人事管理系统改(3)——导入依赖并开始编写dao层

上篇我们分析了项目的需求并且建立了表结构,这一篇我们开始从底层开始往上一步步实现。

首先需要导入依赖,这个没什么好说的(Maven的配置我之前的博客中有提到),pom.xml文件修改如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.rr.learnssm</groupId>
  <artifactId>hrm</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>hrm Maven Webapp</name>
  <url>http://maven.apache.org</url>
  
  <!-- 使用 properties标签 统一声明Spring版本号 -->
    <properties>
  	<spring.version>4.3.7.RELEASE</spring.version>
  </properties>
  
  <!-- 单元测试 -->
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
    
    <!-- Spring相关 -->
     <!-- 1.Spring核心依赖 -->
    <dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-core</artifactId>
	    <version>${spring.version}</version>
	</dependency>
	
	<dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-beans</artifactId>
	    <version>${spring.version}</version>
	</dependency>
	<dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-context</artifactId>
	    <version>${spring.version}</version>
	</dependency>	
	<!-- 2.Spring Web依赖 -->
	<dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-web</artifactId>
	    <version>${spring.version}</version>
	</dependency>
    <dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>${spring.version}</version>
		</dependency>

	<!-- 3.Spring事务与切面 -->
	<dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-tx</artifactId>
	    <version>${spring.version}</version>
	</dependency>	
	    <dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aspects</artifactId>
			<version>${spring.version}</version>
	</dependency>
	<!-- 4.Spring JDBC -->
		<dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-jdbc</artifactId>
	    <version>${spring.version}</version>
	</dependency>
	<!-- 5.Spring测试依赖 -->
		<dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-test</artifactId>
	    <version>${spring.version}</version>
	</dependency>
	
	<!-- 数据库相关 -->
	<!-- 1.Mybatis -->
			<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.4.2</version>
		</dependency>
	<!-- 2.Mybatis-Spring适配 -->
		<dependency>
	    <groupId>org.mybatis</groupId>
	    <artifactId>mybatis-spring</artifactId>
	    <version>1.3.2</version>
	</dependency>
	<!-- 3.c3po连接池 -->
	<dependency>
	    <groupId>com.mchange</groupId>
	    <artifactId>c3p0</artifactId>
	    <version>0.9.5.3</version>
    </dependency> 
    <!-- 4.Mysql驱动 -->
    <dependency>
	    <groupId>mysql</groupId>
	    <artifactId>mysql-connector-java</artifactId>
	    <version>5.1.40</version>
	</dependency>
	
		<dependency>
	    <groupId>com.fasterxml.jackson.core</groupId>
	    <artifactId>jackson-databind</artifactId>
	    <version>2.9.7</version>
	</dependency>
	<dependency>
			<groupId>jstl</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
	</dependency>
	<dependency>
	    <groupId>javax.servlet</groupId>
	    <artifactId>javax.servlet-api</artifactId>
	    <version>3.1.0</version>
	</dependency>
	<!-- 日志(log4j)相关 -->
	<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
	<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.11.1</version>
</dependency>
	<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.11.1</version>
</dependency>
  </dependencies>
  <build>
    <finalName>hrm</finalName>
  </build>
</project>

 ctrl+s保存一下,报错的话使用maven update一下,下载太慢的话可能是没配置好阿里镜像。

按图所示创建好java包结构,并在resource目录下创建mapper目录并创建好我之前没创建的文件:

applicationContext.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:aop="http://www.springframework.org/schema/aop"
	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/tx http://www.springframework.org/schema/tx/spring-tx.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

		<!-- 加载数据库属性文件 -->
	<context:property-placeholder location="classpath:db.properties"/>
	<bean name="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
		<property name="driverClass" value="${jdbc.driverClass}"></property>
		<property name="user" value="${jdbc.username}"></property>
		<property name="password" value="${jdbc.password}"></property>
	</bean>    
	<!-- MyBatis配置 -->
	 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
     	<property name="dataSource" ref="dataSource" />
     	<property name="configLocation" value="classpath:mybatis-config.xml" />
     	<property name="mapperLocations" value="classpath:mapper/*.xml"/>
     </bean>
     <!-- 配置扫描器,将MyBatis接口的实现加入到ioc容器中 -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<!-- 扫描所有的dao接口 -->
		<property name="basePackage" value="com.rr.hrm.dao"></property>
	</bean>
	
    <!-- 事务配置 -->
   <context:component-scan base-package="com.rr.hrm.service" />
   <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
   	  <property name="dataSource" ref="dataSource" />
   </bean>
	<tx:annotation-driven transaction-manager="transactionManager" />

</beans>

springmvc.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:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
	  <context:component-scan base-package="com.rr.hrm.controller" />
	 
	 <!-- 配置视图解析器,方便方法返回 -->
	 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	 	<property name="prefix" value="/WEB-INF/jsp/"></property>
	 	<property name="suffix" value=".jsp"></property>
	 </bean>

	<mvc:default-servlet-handler/>
	<mvc:annotation-driven/>

</beans>

   这两个文件可以写成一个文件,加上后面mybatis总配置文件也可以拆分成spring-web, spring-service, spring-dao三个文件,这个看具体的项目需求。

  这两个配置完后就要配置web.xml(在src/main/webapp/WEB-INF下)了,因为springmvc的核心在于一个DispatcherServlet,而Servlet要在web.xml中配置路由:

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  	<servlet>
		<servlet-name>springmvc</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet
		</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:config/springmvc.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>springmvc</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
</web-app>

新建log4j.properties配置日志:

# Global logging configuration
log4j.rootLogger=ERROR, stdout
# MyBatis logging configuration...
log4j.logger.org.fkit.hrm.mapper.UserMapper=DEBUG
log4j.logger.org.fkit.hrm.mapper.DeptMapper=DEBUG
log4j.logger.org.fkit.hrm.mapper.EmployeeMapper=DEBUG
log4j.logger.org.fkit.hrm.mapper.JobMapper=DEBUG
log4j.logger.org.fkit.hrm.mapper.NoticeMapper=DEBUG
log4j.logger.org.fkit.hrm.mapper.DocumentMapper=DEBUG
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

新建db.properties定义数据库属性(前面的spring配置文件会读这个文件,根据自己用户名密码配置相应的值):

jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.jdbcUrl=jdbc:mysql://127.0.0.1:3306/hrm_db
jdbc.username=root
jdbc.password=root
jdbc.maxPoolSize=20
jdbc.maxIdleTime = 1000
jdbc.minPoolSize=6
jdbc.initialPoolSize=5

 接下来是mybatis的总配置文件mybatis-config.xml,它可以配置很多很多dao层访问相关的东西,详细配置见mybatis tutorial

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
 <configuration>
 <!-- 别名声明,省略包名 -->
 	<typeAliases>
		<package name="com.rr.hrm.domain"/>
	</typeAliases>
 </configuration>

我们开始使用mybatis,测试dao层并去获取用户详细信息。

我们在java源文件dao目录下创建UserDao接口:

package com.rr.hrm.dao;

import java.util.List;

import com.rr.hrm.domain.User;

public interface UserDao {
	List<User> getAllUsers();
}

 在之前创建的mapper目录下创建对应的UserDao.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.rr.hrm.dao.UserDao">
 	<select id="getAllUsers" resultType="User">
 		select * from user_inf 
 	</select>
 </mapper>

然后在src/test/java下创建TestUserDao类来测试我们这个简单的接口(我们使用SpringTest测试):

import java.util.List;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.rr.hrm.dao.UserDao;
import com.rr.hrm.domain.User;

@RunWith(SpringJUnit4ClassRunner.class)
//Telling junit the location of spring configuration file
@ContextConfiguration({"classpath:applicationContext.xml"})
public class TestUserDao {
	@Autowired
	private UserDao dao;
	@Test
	public void testUserQuery() {
		List<User> users = dao.getAllUsers();
		for (User user : users) {
			System.out.println(user.getLoginname());
		}
	}
}

  右击编辑区,run as->junit test,console显示:

  user_inf表数据:

  结果一致,测试完毕。请参考书完成剩下的dao接口(我写的是映射文件+接口方式,和书上的注解方式不一样),虽然这是一个很简单的接口...

  时间有限,有什么遗漏的地方或者有问题的地方还请参考源码

 不重要的话:本来这个项目准备腰斩的,因为本人因为能力问题毕业时没有找到JavaWeb的工作(有两个给错过了),二是因为看的人也不多,刚毕业的我现在做的是js全栈的工作(React+Nodejs),这几天一直都在学React+Redux(从入门到关不上门),有多烦就不吐槽了。但是今天看到有朋友催更(真是对我莫大的鼓励),就挤点时间更新一下,后续的话我有时间(滑稽)就更吧,很有可能更的是React的内容,因为这几天踩的坑很大,很想把踩过的坑记录下来。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一,开发环境以及运行基础 编译环境:基于eclipse,jdk1.7 数据库:MySQL,mongoDB, 服务器:Tomcat+image(Tomcat) 二、项目简介 我们这个项目有两大系统,四大接口,八大模块组成,根据登录的用户不同展示不同的功能菜单,它又是一个涉及到前台用户页面和后台系统的整合项目,整个项目中用到的框架有:后台是ssm框架,前台主要是用easyUI,ajax,jquery等技术,数据库使用的是mysql+Mongodb,mysql主要用来存储用户的数据和后台系统的数据,Mongodb主要用来存储Aop的日志记录,Easyui+ajax+jquey主要实现用户在前台查看旅游信息,实现对订单的订购,查看和退单,以及对热点旅游资讯的查看和页面的美化效果,后台主要是对旅游线路,景点,旅游主题和导游信息的业务操作,以及对用户订单和新闻资讯的处理,从而实现从前台页面到后台的交互。 一、首先介绍我们的登录和注册页面。 登录页面:我们用到easyui的美化,并采取验证码登录,防止别人登录,为了和后台风格保持一致,我们采用了简单、大方、清新的登录页面。 注册页面:这个页面采取HTML5+webservice接口调用,注册页面主要展示给用户,所以我们的页面更炫、更酷、体验度更好等,最后调用了一个webservice的接口,用户注册时填写手机验证码,让用户的信息更安全。 二、其次是我们项目分为两大系统,首先管理员登录。 1.管理员拥有所有的权限,他负责给用户分配角色和权限,管理员这块有一个亮点,它可以根据用户登录的次数给用户打不同的折扣,次数越多,折扣越低,其次,将一个月内没有登录的自动拉黑. 2.旅游景点管理:这个模块主要分为三部分,景点管理,线路管理和美景展示,景点管理主要关联了推送展示和景点门票.旅游线路管理这块关联的比较繁琐,因为每个景点都有线路,所以他和旅游景点管理,旅游项目管理,导游管理,订单管理,门票管理都有间接的关联关系.最后就是美景展示,采用了html5的视屏播放标签,对整个旅游项目的一个介绍. 3.旅游项目管理:这个模块主要分为五大旅游项目,亲子游,闺蜜游,蜜月游,自由行,从展示的列表中可以看到五大项目对于开发人员大同小异,它主要涉及一般的增删查,富文本编辑器.它关联了旅游线路管理和订单管理,其中它可以批量新增线路,还可以双击查看属于这个旅游项目中的路线,让用户更直观的了解旅游项目工程. 4.导游管理:这个模块分为四个部分,导游基本信息,带团申请表,导游风采展示,导游展示表.导游的基本信息主要介绍了导游的信息和评分级别,带团申请表主要有导游申请带团旅游的申请信息,导游风采展示主要有导游的照片,双击照片可以查看导游的基本信息.它是一个独立的模块. 5.订单管理:这个模块是我们项目的重中之重,可以这么说,整个项目基本上都是围绕它来进行,下面我们就来好好介绍,它分为四个部分:票务订单管理,景点订单管理,主题订单管理和线路订单管理.票务订单主要关联了扇形统计图(echarts)和客户订单的处理,比如:这边数据修后echarts会变扇形统计图.客户下单后,后台需要确认订单后,客户才能看到自己的订单信息.景和点订单管理:它又和上面我们介绍的旅游景点关联,客户下单后,后台需要确认订单后,客户才能看到自己的订单信息,主题订单管理和线路订单管理大同小异,都是在上面的基础上完成订单.最后订单这块还有一个退票的展示,用户退票之后,管理员需要确认退票,才能退票,使得这个景点的票数增加一张,确认订单则减少一张.这个模块难就难在业务繁杂,关联关系台太复杂.这是我们项目的难点之一! 6.门票管理:这个模块主要负责订单完成后这边的票数会有相应的变化,看似简单其实它关联的关系比较多的,上面的模块也提到了相应的业务. 7.新闻资讯管理:这个模块以接口为主,就是掉了一个和新闻相关的接口,也就是我们的四大接口之一. 8.统计报表管理:这个模块也是我们的亮点模块,它主要用到的技术echarts,它里面有一个柱形的统计图和扇形的统计图,柱状统计图主要和景点总人数-剩余票数统计出的旅游人数,扇形统计图主要从票务的订单拿出从今天数前七天的票务的销售情况.这个模块也是我们的技术难点之一. 9.其他的小模块介绍:网盘服务,鲜花,日志管理,网盘服务,就是创建一个文件夹,里面可以批量上传一些图片.鲜花服务:我们通过HTTPClieat调用我们一组的鲜花接口.这也是项目的技术难点之一.日志管理科:这块我们用mongodb非关系型数据库和Aop切面来进行我们项目的日志记录,它也是我们项目的技术难点之一。 三、其次介绍我们的用户系统,这个系统主要分为六个模块. 1.旅游景点管理:它就是展示了一些景点,路线,美景,联系客服.景点和线路都是可以给用户提供下单(最后涉及了一个qq邮箱接口,发送邮件),而美景就是一个视频展示,介绍我们的旅游,联系客服这块调用webservice接口进行在线聊天。 2.旅游项目管理:这个模块和管理员的模块有异曲同工之处,这块主要是给用户看的,所以展示的内容是项目中所有的线路,用户可以根据自己所需的线路来下单。 3.新闻资讯:这块也是和管理员登录界面是一样的,在这不在详细介绍了。 4.订单管理:这个模块在管理员页面介绍的很详细了,不同的就是,用户不管是下单还是退票,必须是要通过后台同意的,用户是不能立马看到下单和退票的状态,后台同意后才能让看到。 5.导游管理:在这展是为了用户能够更直接的看到自己跟团导游的信息。 6.位置服务:这个模块用到webservice调用了百度地图,它可以让用户更准确的定位到自己的位置。
Java+Oracle,包含功能: (1)用户输入用户名及密码后,进入主操作窗体。 (2)单击“人事管理”/“档案管理”菜单项,对员工档案信息进行添加、修和查看操作。 (3)单击“系统维护”/“企业架构”菜单项,对企业架构信息进行添加、修和删除操作。 (4)单击“用户管理”/“新增用户”菜单项,对管理员信息进行添加、删除和冻结/解冻操作。 (5)单击“待遇管理”/“账套管理”菜单项,对账套信息进行添加、修、删除和对项目信息进行添加和删除操作同时设置金额操作。 (6)单击“待遇管理”/“人员设置”菜单项,对人员信息进行添加及删除操作。 (7)单击“人事管理”/“考勤管理”菜单项,对考勤信息进行添加操作。 (8)单击“人事管理”/“奖惩管理”菜单项,对奖惩信息进行添加操作。 (9)单击“人事管理”/“培训管理”菜单项,对培训信息进行添加、取消培训及查看操作。 (10)单击“待遇管理”/“统计报表”菜单项,对员考勤、奖惩、工资等信息进行统计操作。 (11)单击“系统维护”/“基本资料”菜单项,对基本资料信息进行添加和删除操作。 (12)单击“系统维护”/“初始化系统”菜单项,对系统进行初始化操作。 (13)通过“系统工具”树状菜单,可直接打开计算器、Word及Excel快捷方式。 (14)用户重新登录后,可以设置当前用户的登录密码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值