一、使用 IntelliJ IDEA 创建 Maven 管理的 JAVA web 项目
①新建项目,选择 Maven Module
在本地磁盘用户的。.m2 目录下生成 settings 文件:
Maven 工程搭建完毕!!!
② 开发步骤:
自动从本地仓库下载 Jar 包:
- 4.0.0
- cn.wj
- SpringMVC_SSM
- war
- 1.0-SNAPSHOT
- SpringMVC_SSM Maven Webapp
- http://maven.apache.org
- junit
- junit
- 3.8.1
- test
- javaee
- javaee-api
- 5
- org.springframework
- spring-core
- 4.2.2.RELEASE
- org.springframework
- spring-beans
- 4.2.2.RELEASE
- org.springframework
- spring-context
- 4.2.2.RELEASE
- org.springframework
- spring-tx
- 4.1.9.RELEASE
- org.springframework
- spring-aspects
- 4.2.1.RELEASE
- org.springframework
- spring-context-support
- 4.1.9.RELEASE
- org.springframework
- spring-jdbc
- 4.2.3.release
- org.springframework
- spring-test
- 4.1.9.RELEASE
- org.springframework
- spring-web
- 4.2.3.RELEASE
- org.springframework
- spring-webmvc
- 4.1.9.RELEASE
- org.mybatis
- mybatis
- 3.2.2
- org.mybatis
- mybatis-spring
- 1.3.0
- org.javassist
- javassist
- 3.17.1-GA
- cglib
- cglib
- 2.2.2
- c3p0
- c3p0
- 0.9.1.2
- com.oracle
- ojdbc6
- 11.2.0.1.0
- SpringMVC_SSM
③ 由于 Maven 对 oracle 数据库的不支持,我们需要将 Oracle 装载到本地仓库,
让 Maven 使用 Oracle
1、配置 Maven3.3.9 bin 到环境变量
然后可以通过 cmd 命令行 mvn -version 测试有没有测试成功!!!
2、定位到 Oracle 安装目录的 jdbc 文件夹
④搭建分层架构 --- 实现添加学生
实体类 UserInfo:
- package cn.wj.entity;
- /**
- * Created by WJ on 2017/1/16.
- */
- public class UserInfo {
- private Integer id;
- private String name;
- private Integer age;
- public Integer getId() {
- return id;
- }
- public void setId(Integer id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public Integer getAge() {
- return age;
- }
- public void setAge(Integer age) {
- this.age = age;
- }
- }
dao 接口:无需 dao 实现类,通过代理生成
- public interface IUserInfoDao {
- public void add(UserInfo info);
- }
service 层:
- public interface IUserInfoService {
- public void add(UserInfo info);
- }
service 实现类:
- public class UserInfoServiceImpl implements IUserInfoService {
- private IUserInfoDao dao;
- public void add(UserInfo info) {
- dao.add(info);
- }
- public IUserInfoDao getDao() {
- return dao;
- }
- public void setDao(IUserInfoDao dao) {
- this.dao = dao;
- }
- }
控制器类:controller
- public class UserInfoController implements Controller {
- private IUserInfoService service;
- public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
- String uname=httpServletRequest.getParameter("uname");
- Integer uage=Integer.valueOf(httpServletRequest.getParameter("uage"));
- UserInfo info=new UserInfo();
- info.setName(uname);
- info.setAge(uage);
- service.add(info);
- return new ModelAndView("/welcome.jsp");
- }
- public IUserInfoService getService() {
- return service;
- }
- public void setService(IUserInfoService service) {
- this.service = service;
- }
- }
由于是整合 MyBatis,需要书写核心配置文件:
小配置:UserInfoDao.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="cn.wj.dao.IUserInfoDao">
- <select id="add" parameterType="UserInfo">
- insert into userinfo values(SEQ_Num.nextval,#{name},#{age})
- </select>
- </mapper>
MyBatis 配置文件:mybatis-config.xml
- <?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="cn.wj.entity"/>
- </typeAliases>
- <mappers>
- <package name="cn.wj.dao"/>
- </mappers>
- </configuration>
applicationContext.xml:进行植入 dao、service、controller、事务管理器、数据源、sessionFactory
index.jsp 页面:
- <body>
- <form action="${pageContext.request.contextPath }/userAction.do" method="post">
- 用户名:
- <input name="uname" />
- <br/>
- <br/>
- 年龄:
- <input name="uage" />
- <br/>
- <br/>
- <input type="submit" value="add" />
- </form>
- </body>
Web.xml: 进行配置中央调度器
- <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
- version="3.1">
- <!-- 1.针对Spring配置:读取配置文件 -->
- <context-param>
- <param-name>
- contextConfigLocation
- </param-name>
- <param-value>
- classpath:applicationContext.xml
- </param-value>
- </context-param>
- <!-- 注册ServletContext监听器,创建容器对象,并且将ApplicationContext对象放到Application域中
- -->
- <listener>
- <listener-class>
- org.springframework.web.context.ContextLoaderListener
- </listener-class>
- </listener>
- <!-- 针对SpringMVC的配置::::::中央调度器:本质上一个serlvet 配置的关于SpringmVC组件 -->
- <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:applicationContext.xml
- </param-value>
- </init-param>
- <load-on-startup>
- 1
- </load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>
- springmvc
- </servlet-name>
- <url-pattern>
- *.do
- </url-pattern>
- </servlet-mapping>
- <!-- 解决乱码的过滤器 -->
- <filter>
- <filter-name>
- CharacterEncodingFilter
- </filter-name>
- <filter-class>
- org.springframework.web.filter.CharacterEncodingFilter
- </filter-class>
- <init-param>
- <param-name>
- encoding
- </param-name>
- <param-value>
- utf-8
- </param-value>
- </init-param>
- <init-param>
- <param-name>
- forceEncoding
- </param-name>
- <param-value>
- true
- </param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>
- CharacterEncodingFilter
- </filter-name>
- <url-pattern>
- /*
- </url-pattern>
- </filter-mapping>
- </web-app>
实现效果:
注:若出现此类异常 --org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
解决方案:参见博客
http://www.cnblogs.com/jstarseven/p/5803697.html
http://blog.csdn.net/shifangwannian/article/details/48882201来源: