博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
步步为营搭建spring+springmvc+mybatis(oracle)项目
阅读量:7107 次
发布时间:2019-06-28

本文共 7577 字,大约阅读时间需要 25 分钟。

hot3.png

        很多初学者想搭建一个springmvc项目,但是网上的教程东拼西凑的总是不能让人如愿,所以我今天写下这个博客,给没有成功的朋友一点借鉴,如有问题请指出,大家共同进步。

        先说明下自己的工作环境:

        1、jdk1.8

        2、oracle11g

        3、eclipse LUNA

        4、tomcat 7

        其实这些即便不一样也是可以搭建的,只是我觉得说明下自己的工作环境是种比较好的习惯。下面开始进入正题:

        第一步:

                打开你的eclipse,新建一个java web项目,在eclipse里,java web项目叫做Dynamic Web Project(有多少新手拼命的在eclips里找javaWeb项目却找不到的,反正我初学的时候真不知道,一通瞎找)。填写上你的项目名字,其他的基本不用修改,一路next,最后在Generate web.xml deployment descriptor前面的复选框打勾(这步用于生成web.xml文件),然后Finish。

        第二步:

                导入jar包,导入位置:/WebContent/WEB-INF/lib文件夹下,jar包和源文件我都会在后面提供下载。选中你的项目,鼠标右击项目,选择Properties,在弹出的页面左边导航栏选择Resource,右边有个Text file encoding,选择Other,下拉框选择UTF-8,apply,ok,保存(这一步不配置也可以,主要是避免后续开发出现的一些乱码问题)。

    

       现在准备配置spring+springmvc+mybatis(oracle)的项目。现在大部分的项目都是分控制层,逻辑层,持久层,当然,也可以认为是mvc模式,model、view、controller,简单说就是每一块有每一块的功能,降低项目的耦合性,低耦合性的优点就是开发快,维护方便,可以重复使用。所以我们遵循着这个思路去配置springmvc项目。在这之前我先说下,我喜欢在Navigator下查看我的项目,所以大家觉得有需要可以和我一样,在window-show view-Navigator调处这个窗口,初次使用可能不太习惯,但后来会爱上这个窗口的。

        第三步:

                在src目录下新建一个folder,命名config(不是必须,这是一个习惯,看的更清楚),在这里配置spring和springmvc的一些xml文件。

                在config下新建propery文件夹,用于保存一些properties类型的配置文件。

                在src目录下新建一些将要用到的工作目录

                111252_FIXl_2297176.jpg                    

                com文件夹和bpdcc文件夹是一种命名规范,简单说就是如果你的项目打成jar包发到网上,怎么避免和别人的项目重名?用网址的唯一性来避免重复,从后往前依次命名,就是bpdcc.com(我没有自己的网址,但是我开源中国的账号叫奔跑的菜菜。。。)。

                controller就是控制层,这里的文件都是和页面请求有关的,service就是所谓的逻辑层,页面请求发来,或许会有一些需要处理的运算,都写在这个文件夹下的类里,注意service文件夹里的都是接口,而service-impl里的是接口的实现类。

                mapper是与数据库的交互,就是持久层,这里没有逻辑,没有页面,只管和数据库的交互,注意mapper里是接口,mapper-impl里是xml文件。

                1、配置spring的xml文件。

                新建一个xml文件,命名spring.xml(不是一定要叫这个名字,spring的配置文件有自己的命名规范,大家可以上网去找找,这里我用spring.xml表示是为了让大家更直接明了的看懂项目结构,下面命名除特殊申明,都是遵循该说明)

                2、配置spring-mvc.xml文件

                新建一个xml文件,命名spring-mvc.xml。

                3、配置spring-mybatis.xml文件和数据库的参数文件

                新建一个properties类型文件,File-New-Other-Gerneral-File,这时是建立一个没有后缀名称的文件,可以命名为jdbc.properties。内容如下

dataSource_1.diverClassName=oracle.jdbc.driver.OracleDriverdataSource_1.url=jdbc:oracle:thin:@127.0.0.1:1521:ORCLdataSource_1.username=admindataSource_1.password=admin#定义初始连接数dataSource_1.initialSize=5 #定义最大连接数dataSource_1.maxActive=20#定义最大空闲dataSource_1.maxIdle=20#定义最小空闲dataSource_1.minIdle=1#定义最长等待时间dataSource_1.maxWait=60000dataSource_1.testWhileIdle=truedataSource_1.timeBetweenEvictionRunsMillis=3600000dataSource_1.minEvictableIdleTimeMillis=3600000dataSource_1.numTestsPerEvictionRun=3dataSource_1.poolPreparedStatements=falsedataSource_1.maxOpenPreparedStatements=0dataSource_1.defaultAutoCommit=true   dataSource_1.removeAbandoned=truedataSource_1.removeAbandonedTimeout=300dataSource_1.logAbandoned=false

                新建一个xml文件,命名spring-mybatis.xml。

                4、配置web.xml文件

springmvcDemo
contextConfigLocation
classpath:config/*.xml
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
encodingFilter
/*
spring
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:config/spring-mvc.xml
1
spring
*.xhtml
org.springframework.web.context.ContextLoaderListener
org.springframework.web.util.IntrospectorCleanupListener
60
index.jsp

                这时springmvc的项目已经配置好了,可以试着运行下,如果报这种找不到classes下某个文件的错误

215744_Te2k_2297176.jpg

                多半是项目source配置错误,具体操作如下:

                先在WEB-INF下建立一个classes文件夹,然后在project explorer视图下右击项目名称,Build Path-Configure Build Path-Java Build Path-Source-Default output folder ,选择新建的classes文件。这么做是将编译后的class文件 放在该目录下。

        第四步:写一个简单的登录功能。

package com.bpdcc.controller;import javax.servlet.http.HttpServletRequest;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;import com.bpdcc.model.User;import com.bpdcc.service.LoginService;@RequestMapping("/login/")//该类的访问路径@Controller//一定要加这个注解public class LoginController {	@Autowired	private LoginService loginService;		@RequestMapping("login")//该类下的具体某个方法的访问路径	public ModelAndView login(HttpServletRequest request){		ModelAndView mav = new ModelAndView("/login");		return mav;	}		@RequestMapping("loginResult")	public ModelAndView loginResult(HttpServletRequest request,User user){		ModelAndView mav = new ModelAndView("/result");		User resultUser = this.loginService.loginUser(user);		if(null!=resultUser&&user.getUsername().equals(resultUser.getUsername())){			mav.addObject("msg","用户:"+resultUser.getUsername()+"登录成功!");		}else{			mav.addObject("msg","用户名:"+user.getUsername()+"不存在或密码错误!");		}		return mav;	}}
package com.bpdcc.service;import com.bpdcc.model.User;public interface LoginService {	/**	 * 用户登录方法	 * @param user	 * @return	 */	User loginUser(User user);}
package com.bpdcc.service.impl;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import com.bpdcc.mapper.LoginMapper;import com.bpdcc.model.User;import com.bpdcc.service.LoginService;@Service//一定要在实现类添加这个注解,注意是实现类,不是接口public class LoginServiceImpl implements LoginService{	@Autowired	private LoginMapper loginMapper;		//用户登录方法	@Override	public User loginUser(User user) {		return this.loginMapper.loginUser(user);	}}
package com.bpdcc.mapper;import com.bpdcc.model.User;public interface LoginMapper {	/**	 * 用户登录方法	 * @param user	 * @return	 */	User loginUser(User user);}
select * from t_sys_user where username = #{username,jdbcType=VARCHAR} and password = #{password,jdbcType=VARCHAR}
package com.bpdcc.model;/** * t_sys_user * @author bpdcc * */public class User {	private String id;	private String username;	private String password;		public String getId() {		return id;	}	public void setId(String id) {		this.id = id;	}	public String getUsername() {		return username;	}	public void setUsername(String username) {		this.username = username;	}	public String getPassword() {		return password;	}	public void setPassword(String password) {		this.password = password;	}	}

                我将所有代码都贴上来了,注意接口就放在对应层级的文件夹里,实现类在文件夹下的impl文件夹里

                然后在WEB-INF里新建一个page文件夹,注意在WEB-INF文件夹下,文件都是不能直接访问的,所以在springmvc视图配置时,将页面文件放在WEB-INF下,安全性比较高。

                两个页面如下:

                1、登录页面

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>
登录页
用户名:
密码:

                2、登录后的反馈页面

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>
登录结果${msg}

        然后运行项目试试,如果提示找不到缺少bean,那一定是注解出错或者类没有被springmvc扫描到,检查配置文件。

        代码手打,难免有漏字、错字、描述不清现象,欢迎大家批评指教,切勿人身攻击,如果觉得有用,就告诉我一声,给我点鼓励。

        源文件及jar包下载:360云盘

        http://yunpan.cn/cucc8AUfvkCiL  访问密码 7829

转载于:https://my.oschina.net/tiandaochouqincai/blog/551605

你可能感兴趣的文章
转 configure: error: Cannot find ldap libraries in /usr/lib 解决办法
查看>>
wcf配置
查看>>
如何提高淘宝流量
查看>>
把1000个随机数写入到文件中
查看>>
如果让我完善几年前的一个项目,我会做哪些改进?
查看>>
Mockito为什么不能mock静态方法
查看>>
Android 应用程序之间数据共享—ContentProvider (涉及访问权限)
查看>>
WPF界面设计技巧(8)—自制山寨版CheckListBox
查看>>
TCP客户/服务器程序实例——回射服务器
查看>>
开发中用到的一个快速排序法
查看>>
深入理解计算机系统(4.1)---X86的孪生兄弟,Y86指令体系结构
查看>>
[物理学与PDEs]第1章第9节 Darwin 模型 9.2 Maxwell 方程组的一个定解问题
查看>>
c程序设计语言_习题1-18_删除输入流中每一行末尾的空格和制表符,并删除完全是空格的行...
查看>>
4.0 spring-注册解析的Bean
查看>>
HighCharts学习
查看>>
跟我一起学Makefile
查看>>
MVC之前的那点事儿系列(1):进入CLR
查看>>
Codeforces Round #174 (Div. 1) B. Cow Program(dp + 记忆化)
查看>>
如何清除SQL Server Management Studio的最近服务器列表
查看>>
在MVVM模式中,按钮Click事件的绑定方法
查看>>