Maven Web App 新手demo------登陆界面

 

【2018/9/8】我写了一篇新的,比较完善的,大家可以参考下。地址->

https://blog.csdn.net/Aaron121314/article/details/82453605

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

这里只是写一个demo,走通流程,至于Maven等相关的知识不介绍。

程序就2功能,一个是注册用户,一个是登陆。

Eclipse已经包含了Maven,不要再去下载什么东西了。

 

一. 新建项目

1. 新建一个Maven项目

Maven Web App 新手demo------登陆界面_第1张图片

 

Maven Web App 新手demo------登陆界面_第2张图片

不要勾simple project

 

2. 选择web app

Maven Web App 新手demo------登陆界面_第3张图片

 

3. 填写Group Id等

Maven Web App 新手demo------登陆界面_第4张图片

 

4.修改JRE

当你创建完成项目后,会有错误。

Maven Web App 新手demo------登陆界面_第5张图片

 

所以要修改JRE

Maven Web App 新手demo------登陆界面_第6张图片

 

Maven Web App 新手demo------登陆界面_第7张图片

 

然后就会多了2个目录。

Maven Web App 新手demo------登陆界面_第8张图片

不要管错误,有错误也能运行。

 

二. 运行项目

1. 新建一个server

Maven Web App 新手demo------登陆界面_第9张图片

 

2. 选择Apache里面的Tomcat,版本根据你自己安装的的来选。

Maven Web App 新手demo------登陆界面_第10张图片

点击完Finish后,在eclipse中就会有这个项目了。

Maven Web App 新手demo------登陆界面_第11张图片

 

3. 运行项目

首先要确保你创建的项目是正确的,所以我们先不写代码,直接运行下。

右键你的项目,选择Run as->Run on Server->Finish

Maven Web App 新手demo------登陆界面_第12张图片

 

运行结果如下

Maven Web App 新手demo------登陆界面_第13张图片

 

三. 数据库

在开始写代码前,先把要用到的数据库准备好。这里我们的数据库叫sampledb,表名是t_user_aaron,里面只有2个内容,一个是name,一个是password,id的话是主键,也是自增的。

这里的数据库名要和下面的spring设置中的对应,否正不能连接数据库。

Maven Web App 新手demo------登陆界面_第14张图片

 

四. 代码

1. Pom.xml修改

打开pom.xml文件,添加如下,暂时不解释什么意思,反正照着加。有些是自带的,不用改。


  4.0.0
  com.aaron.demo
  demo01
  war
  0.0.1-SNAPSHOT
  demo01 Maven Webapp
  http://maven.apache.org
  
    
      junit
      junit
      3.8.1
      test
    
    
    		
		
			org.springframework
			spring-beans
			${spring.version}
		
		
			org.springframework
			spring-context
			${spring.version}
		
		
			org.springframework
			spring-context-support
			${spring.version}
		
		
			org.springframework
			spring-jdbc
			${spring.version}
		
		
			org.springframework
			spring-webmvc
			${spring.version}
		

		
			commons-dbcp
			commons-dbcp
			${commons-dbcp.version}
		
		
			mysql
			mysql-connector-java
			${mysql.version}
		
		
			javax.servlet
			servlet-api
			${servlet.version}
			provided
		
		
			org.aspectj
			aspectjweaver
			${aspectj.version}
		


		
			org.testng
			testng
			${testng.version}
			test
		
		
			org.springframework
			spring-test
			${spring.version}
			test
		

		
			junit
			junit
			3.8.1
			test
		
  
  
    demo01
    		

			
				org.apache.maven.plugins
				maven-surefire-plugin
				2.17
				
					methods
					10
				
			
		
  
  	
		UTF-8
		4.2.2.RELEASE
		5.1.6
		3.0-alpha-1
		1.8.1
		1.9
		1.4
		5.0.2.Final
		8.1.8.v20121106
		1.7.5
		6.8.7
	

 

2. Spring相关配置

在src/main/resources下面新建一个aaron-context.xml的文件(名字随便叫,等用的时候别弄错就行),配置如下



    
    
    
    
    
    
	

	
	
		
	
	
		
	
	
		
		
	
	
		
			
		
	

 

3. 持久层

在src/main/java下面新建一个包,com.aaron.domain 。然后在包下面新建一个User类。这个类可以看成是数据库的映射。

Maven Web App 新手demo------登陆界面_第15张图片

 

User类比较简单,就是用户名和密码。

User类代码:

package com.aaron.domain;

import java.io.Serializable;

public class User implements Serializable {
	
	private String userName;
	private String password;
	
	public String getUserName() {
		return userName;
	}
	
	public String getPassword() {
		return password;
	}
	
	public void setUserName(String userName) {
		this.userName=userName;
	}
	
	public void setPassword(String password) {
		this.password=password;
	}
}

 

在src/main/java下面新建一个包,com.aaron.dao。然后在包下面新建一个UserDao类。这个类是用来访问User的DAO(Data access object)。

UserDao包含2个方法。

getMatchCount(): 根据用户名和密码获取匹配用户数,等于1表示正确,等于0表示错误。

insertUser(): 插入一个新用户。

UserDao类代码:

package com.aaron.dao;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;

import com.aaron.domain.User;


@Repository
public class UserDao {
	
	private JdbcTemplate jdbcTemplate;
	
	private  final static String MATCH_COUNT_SQL = " SELECT count(*) FROM t_user_aaron  " +
			" WHERE name =? and password=? ";
	private final static String INSERT_USER_SQL= "INSERT INTO t_user_aaron(name,password) VALUES(?,?)";
	
	@Autowired
	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		this.jdbcTemplate=jdbcTemplate;
	}

	public int getMatchCount(String userName, String password) {

		return jdbcTemplate.queryForObject(MATCH_COUNT_SQL, new Object[]{userName, password}, Integer.class);
	}
	
	public int insertUser(User user) {
		Object[] args = { user.getUserName(),user.getPassword() };
		return jdbcTemplate.update(INSERT_USER_SQL, args);
		
	}
}

 

4. 业务层

在src/main/java下面新建一个包,com.aaron.service。然后在包下面新建一个UserService类。

 

UserService业务接口有2个业务方法,addUser()添加/注册一个用户,hasMatchUser()用于检测用户名和密码的正确性。

UserService类代码:

package com.aaron.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.aaron.dao.UserDao;
import com.aaron.domain.User;


@Service
public class UserService {

	private UserDao userDao;

	@Autowired
	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}

	@Transactional
	public boolean addUser(User user) {
		int temp = userDao.insertUser(user);
		if (temp > 0) {
			return true;
		} else {
			return false;
		}
	}

	public boolean hasMatchUser(String userName, String password) {
		int matchCount = userDao.getMatchCount(userName, password);
		return matchCount > 0;
	}
}

 

5. 单元测试

 

到这里,基本的功能都已经完成(不包含界面,下面会介绍怎么添加界面),接下来就要对这个业务类做简单的测试。

在src/test/java/下面新建一个包,com.aaron.service,然后在里面新建一个测试类UserServiceTest,一定要以Test结尾。至于为什么,百度。

 

@ContextConfiguration("classpath*:/aaron-context.xml")就是之前配置的spring文件的名字。

 

这里就2个测试方法,addUser()测试添加用户,testHasMatchUser()测试是否有匹配用户。

UserServiceTest类代码:

package com.aaron.service;

import static org.testng.Assert.assertTrue;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.testng.AbstractTransactionalTestNGSpringContextTests;
import org.testng.annotations.Test;

import com.aaron.domain.User;

//Maven测试完后,为了保证数据库清洁,会把你对数据的操作回滚,所以如果你要测试的时候
//插入的数据还在,就要加这个。默认true
@Rollback(value = false)
@ContextConfiguration("classpath*:/aaron-context.xml")
public class UserServiceTest extends AbstractTransactionalTestNGSpringContextTests {

	@Autowired
	UserService userService;

	@Test
	public void addUser() {
		User user = new User();
		user.setUserName("aaron20");
		user.setPassword("123456");

		boolean b1 = userService.addUser(user);
		assertTrue(b1);
	}

	@Test
	public void testHasMatchUser() {
		boolean b1 = userService.hasMatchUser("aaron20", "123456");
		// boolean b2 = userService.hasMatchUser("admggin", "1111");
		assertTrue(b1);
		// assertTrue(b2);
	}
}

然后开始测试,右键项目,选择Run as->Maven test。第一次运行会让你写Maven的配置,之后你要改的话可以在Run as->Run configurations里面修改。Maven相关的编译参数自己百度。我们就简单的编译,配置如下:

Maven Web App 新手demo------登陆界面_第16张图片

 

测试成功的话,就是这样的

Maven Web App 新手demo------登陆界面_第17张图片

 

然后打开数据库,也能发现你添加的记录。

 

----待续

 

你可能感兴趣的:(Maven)