maven mysql框架_Maven + Spring + SpringMVC + MyBatis + MySQL框架搭建Java Web工程

一 下载并安装Eclipse-jee

二 新建Maven项目

菜单File -> New -> Maven Project ,

点击Next ,在Archetype 列表中选择maven-archetype-webapp ,

点击Next ,在Group Id 中填入包名,此处为com.vita ,Artifact Id 中填入工程名,此处为First ,Finish

新建项目后,会看到报错,这是因为build path 没有引入java ee包

设置build path

右键项目,Build Path -> Configure Build Path... -> Libraries

双击JRE System Library 以编辑,选择Alternate JRE 或Workspace default JRE ,这里选择Alternate JRE ,Finish

三 项目配置文件配置

1 配置pom.xml

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

4.0.0

com.vita

First

war

1.0-SNAPSHOT

First Maven Webapp

http://maven.apache.org

4.0.5.RELEASE

3.2.1

1.6.6

1.2.12

5.1.35

org.springframework

spring-core

${spring.version}

org.springframework

spring-oxm

${spring.version}

org.springframework

spring-context

${spring.version}

org.springframework

spring-context-support

${spring.version}

org.springframework

spring-aop

${spring.version}

org.springframework

spring-aspects

${spring.version}

org.springframework

spring-tx

${spring.version}

org.springframework

spring-jdbc

${spring.version}

org.springframework

spring-web

${spring.version}

org.springframework

spring-test

${spring.version}

test

org.springframework

spring-webmvc

${spring.version}

org.springframework

spring-web

${spring.version}

mysql

mysql-connector-java

${mysql.version}

commons-dbcp

commons-dbcp

1.2.2

com.alibaba

druid

0.2.23

com.alibaba

fastjson

1.1.41

log4j

log4j

${log4j.version}

org.slf4j

slf4j-api

${slf4j.version}

org.slf4j

slf4j-log4j12

${slf4j.version}

ch.qos.logback

logback-classic

1.1.2

ch.qos.logback

logback-core

1.1.2

org.logback-extensions

logback-ext-spring

0.1.1

org.codehaus.jackson

jackson-mapper-asl

1.9.13

commons-fileupload

commons-fileupload

1.3.1

commons-io

commons-io

2.4

commons-codec

commons-codec

1.9

org.mybatis

mybatis

${mybatis.version}

org.mybatis

mybatis-spring

1.2.2

javax.servlet

javax.servlet-api

3.0.1

javax.servlet.jsp

javax.servlet.jsp-api

2.3.2-b01

javax.servlet

jstl

1.2

junit

junit

3.8.1

test

First

2 其他配置文件

以下四个配置文件(jdbc.properties, log4j.properties, spring-mvc.xml, spring-mybatis.xml)都创建在Java Resources -> src/main/resources文件夹下

jdbc.properties

driver=com.mysql.jdbc.Driver

# test为数据库名

url=jdbc:mysql://localhost:3306/test

# 数据库访问用户名

username=root

# 数据库访问密码,如无密码则不填

password=

# 定义初始连接数

initialSize=1

# 定义最大连接数

maxActive=20

# 定义最大空闲

maxIdle=20

# 定义最小空闲

minIdle=1

# 定义最长等待时间

maxWait=60000

log4j.properties

### set log levels ###

#log4j.rootLogger = debug , stdout , D , E

log4j.rootLogger = debug , stdout , D

### output to the console ###

log4j.appender.stdout = org.apache.log4j.ConsoleAppender

log4j.appender.stdout.Target = System.out

log4j.appender.stdout.layout = org.apache.log4j.PatternLayout

#log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n

log4j.appender.stdout.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n

### Output to the log file ###

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender

log4j.appender.D.File = ${springmvc.root}/WEB-INF/logs/log.log

log4j.appender.D.Append = true

log4j.appender.D.Threshold = DEBUG

log4j.appender.D.layout = org.apache.log4j.PatternLayout

log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

### Save exception information to separate file ###

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender

log4j.appender.D.File = ${springmvc.root}/WEB-INF/logs/error.log

log4j.appender.D.Append = true

log4j.appender.D.Threshold = ERROR

log4j.appender.D.layout = org.apache.log4j.PatternLayout

log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

spring-mvc.xml ,注意包名,当前包名为com.vita

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:mvc="http://www.springframework.org/schema/mvc"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.1.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-3.1.xsd

http://www.springframework.org/schema/mvc

http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">

class="org.springframework.web.servlet.view.InternalResourceViewResolver">

class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">

text/html;charset=UTF-8

class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">

class="org.springframework.web.servlet.view.InternalResourceViewResolver">

class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

spring-mybatis.xml ,注意包名,当前包名为com.vita

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:mvc="http://www.springframework.org/schema/mvc"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.1.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-3.1.xsd

http://www.springframework.org/schema/mvc

http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

destroy-method="close">

class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

四 数据库代码自动生成

建库,建表,当前使用MySQL,建库test ,建表user

下载包

mybatis-generator-core-1.3.6.jar (包含在mybatis-generator-core-1.3.6.zip 中),

mysql-connector-java-5.1.39-bin.jar (包含在mysql-connector-java-5.1.45.zip 中)

工程中新建一个文件夹存放这些包,此处在工程根目录下建立generate 文件(文件名自取)以存放

在上一步骤中所建目录下(此处为generate ),新建文件generatorConfig.xml ,用以自动生成代码,如下:

/p>

PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"

"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

connectionURL="jdbc:mysql://localhost:3306/test" userId="root"

password="">

targetProject="src">

targetProject="src">

targetPackage="com.vita.dao" targetProject="src">

enableCountByExample="false" enableUpdateByExample="false"

enableDeleteByExample="false" enableSelectByExample="false"

selectByExampleQueryId="false">

注意 中的包的版本号,对应下载包的版本,以及jdbcConnection 标签中的数据库参数设置

该目录下执行,生成代码

java -jar mybatis-generator-core-1.3.6.jar -configfile generatorConfig.xml -overwrite

注意mybatis-generator-core 包的版本,对应下载包的版本

备注:代码自动生成这里通过命令行的方式,也可以通过eclipse的插件方式生成

命令执行前应在目录下新建src 文件夹,否则执行时会提示找不到src 路径,

执行后,刷新工程,当前目录下的src (generate\src)文件夹中会生成对应代码文件:

com/vita/dao/UserMapper.java ,

com/vita/domain/User.java ,

com/vita/mapping/UserMapper.xml

五 编写代码

在Java Resources -> src/main/java 下新建包:com.vita.controller , com.vita.dao , com.vita.domain , com.vita.mapping , com.vita.service , com.vita.service.impl

将前面自动生成的代码文件复制到对应包下

com.vita.service 下新建接口IUserService.java :

package com.vita.service;

import com.vita.domain.User;

public interface IUserService {

public User getUserById(int id);

}

com.vita.service.impl 下新建IUserService 的实现类UserServiceImpl.java :

注意:添加@Service 注解,否则不被识别

package com.vita.service.impl;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

import com.vita.dao.IUserDao;

import com.vita.domain.User;

import com.vita.service.IUserService;

@Service

public class UserServiceImpl implements IUserService {

@Autowired

private IUserDao userDao;

public User getUserById(int id) {

return userDao.selectByPrimaryKey(id);

}

}

com.vita.controller 下新建UserController.java 控制器:

注意:添加@Controller 注解,否则不被识别

package com.vita.controller;

import javax.annotation.Resource;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.bind.annotation.RequestParam;

import com.vita.domain.User;

import com.vita.service.impl.UserServiceImpl;

@Controller

@RequestMapping("/user")

public class UserController {

public UserController() {

System.out.println("UserController");

}

@Resource

private UserServiceImpl userService;

@RequestMapping(value = "/showUser", method = RequestMethod.GET)

public String toIndex(HttpServletRequest request, Model model) {

System.out.println("UserController showUser");

int id = Integer.parseInt(request.getParameter("id"));

User user = userService.getUserById(id);

System.out.println("user: " + user);

// request.setAttribute("user", user);

model.addAttribute("user", user);

return "showUser";

}

}

在Deployed Resources -> webapp/WEB-INF 目录下新建文件夹jsp (文件夹名自取),用以存放返回的页面,jsp 目录下新建showUser.jsp :

pageEncoding="utf-8" import="java.util.*,com.vita.domain.*"%>

Title

${user.name}

${user.email}

web.xml 配置如下:

/p>

"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

"http://java.sun.com/dtd/web-app_2_3.dtd" >

Archetype Created Web Application

log4jConfigLocation

classpath:log4j.properties

加载日志文件

contextConfigLocation

classpath:spring-mybatis.xml

encodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

UTF-8

encodingFilter

/*

org.springframework.web.util.Log4jConfigListener

org.springframework.web.context.ContextLoaderListener

org.springframework.web.util.IntrospectorCleanupListener

SpringMVC

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:spring-mvc.xml

1

SpringMVC

/

/index.jsp

六 结束

到此,demo工程搭建结束,Eclipse中启动Tomcat Server,即可访问:

错误记录

web.xml 报错The content of element type "web-app" must match ...

错误详情:The content of element type "web-app" must match "(icon?,display-name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-mapping*,session-config?,mime-mapping*,welcome-file-list?,error-page*,taglib*,resource-env-ref*,resource-ref*,security-constraint*,login-config?,security-role*,env-entry*,ejb-ref*,ejb-local-ref*)".

错误原因:文档内容标签顺序不符合web-app_2_3.dtd规范

StandardWrapper.Throwable org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.vita.service.IUserService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.annotation.Resource(shareable=true, lookup=, name=, description=, authenticationType=CONTAINER, type=class java.lang.Object, mappedName=)}

错误原因:XXXService 未加注解@Service

Servlet.service() for servlet [SpringMVC] in context with path [/First] threw exception [Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.vita.dao.IUserDao.selectByPrimaryKey] with root cause java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.vita.dao.IUserDao.selectByPrimaryKey

错误原因:XXXMapper.xml 中mapper 标签的namespace 错误

.jsp不显示(接收不到)数据(数据已从数据库取到)

解决方案:

在.jsp 上面添加 (测试可行)

或者修改web.xml ,添加version 版本,如下:(未测试成功)

xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

id="WebApp_ID" version="3.0" metadata-complete="true">

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值