springmvc与mysql工作_spring+springMVC+mybatis+maven+mysql环境搭建(一)

本文详细介绍了如何搭建一个基于spring、springMVC、mybatis、maven和mysql的开发环境,包括数据库准备、maven项目创建、配置依赖、编写Java代码和进行单元测试。在数据库准备中,创建了t_user表并插入了数据。在项目创建过程中,强调了maven本地仓库设置和解决pom.xml报错的方法。在代码编写部分,给出了User类、UserDao接口、Mapper XML配置等关键代码,并展示了配置文件如mybatis-config.xml、jdbc.properties和application.xml。文章还包含了单元测试的步骤,解决了在测试中遇到的问题。
摘要由CSDN通过智能技术生成

环境搭建是最基础的,但是发现平时很多时候大家都是ctrl c+ctrl v,这样对于很多细节完全不清楚,来,一起深入了解下

一、准备工作

首先得准备好maven、mysql啥的,这些略。。。

并且mysql中新建表,脚本如下:

db脚本:

CREATE TABLE`t_user` (

`USER_ID` int(11) NOT NULLAUTO_INCREMENT,

`USER_NAME` char(30) NOT NULL,

`USER_PASSWORD`char(10) NOT NULL,

`USER_EMAIL`char(30) NOT NULL,PRIMARY KEY (`USER_ID`),KEY `IDX_NAME` (`USER_NAME`)

) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8

dml脚本:

INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (1, '林炳文', '1234567@', 'ling20081005@126.com');INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (2, 'evan', '123', 'fff@126.com');INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (3, 'kaka', 'cadg', 'fwsfg@126.com');INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (4, 'simle', 'cscs', 'fsaf@126.com');INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (5, 'arthur', 'csas', 'fsaff@126.com');INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (6, '小德', 'yuh78', 'fdfas@126.com');INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (7, '小小', 'cvff', 'fsaf@126.com');INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (8, '林林之家', 'gvv', 'lin@126.com');INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (9, '林炳文Evankaka', 'dfsc', 'ling2008@126.com');INSERT INTO t_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL) VALUES (10, 'apple', 'uih6', 'ff@qq.com');

二、创建maven项目

有关maven基础有疑问的,移步:maven菜鸟教程

注意:需要先配置下maven的本地仓库地址,默认为${user.home}/.m2/repository,修改方法为首先找到maven安装目录/conf/settings,改变的值,然后window-->preference-->maven-->User Settings选中maven安装目录/conf/settings,如下图:

07094f6545ba22c3ed71d17b3c78611b.png

这样maven所下载的jar包全部存放在指定位置,不会默认放在c盘。

415c671f0db19c0395007780e73672d5.png

ab31ddfaecddaeec9ba820e57d998c62.png

3a3dcfaa19ade2b80152c2dae4ffeace.png

前三张图片都是网上盗的,最后一张则是本人项目图片,如下:

2220ae606ded981df16177f7e7111c89.png

注意,创建完项目之后,pom.xml会报错,报错信息为:

6cca9b7c9d4f4d2c52c21116f2a7c131.png

报错原因:因为在现在的web项目中,web.xml已经不重要了,但是maven没有跟上这个变化,会提示报错。

解决方法:将红框中的一段加到pom.xml中去,搞定。

c75687f24fb90a960a34a896f08e41ab.png

最后,需要检查jdk版本,右击项目-->properties-->java compiler

-->java build path

-->project facets

保持jdk版本一致。

三、spring+mybatis整合

1、创建相关包与资源文件

3f53a1f24015721e90d7c1787a0aedde.png

2、pom.xml配置所需依赖

4.0.0

com.ty

ssm_ty

0.0.1-SNAPSHOT

war

org.apache.maven.plugins

maven-war-plugin

2.6

false

3.2.8.RELEASE

1.6.6

1.2.12

4.10

3.2.1

org.springframework

spring-core

${spring.version}

org.springframework

spring-webmvc

${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}

junit

junit

${junit.version}

test

log4j

log4j

${log4j.version}

org.slf4j

slf4j-api

${slf4j.version}

org.slf4j

slf4j-log4j12

${slf4j.version}

org.springframework

spring-test

${spring.version}

test

org.mybatis

mybatis

${mybatis.version}

org.mybatis

mybatis-spring

1.2.0

mysql

mysql-connector-java

5.1.29

3、新建相关Java代码

User类:

packagecom.ty.dto;/***@authorTaoyong

* @date 2018年5月20日

* 天下没有难敲的代码!*/

public classUser {privateInteger userId;privateString userName;privateString userPassword;privateString userEmail;publicInteger getUserId() {returnuserId;

}public voidsetUserId(Integer userId) {this.userId =userId;

}publicString getUserName() {returnuserName;

}public voidsetUserName(String userName) {this.userName =userName;

}publicString getUserPassword() {returnuserPassword;

}public voidsetUserPassword(String userPassword) {this.userPassword =userPassword;

}publicString getUserEmail() {returnuserEmail;

}public voidsetUserEmail(String userEmail) {this.userEmail =userEmail;

}

@OverridepublicString toString() {return "User [userId=" + userId + ", userName=" +userName+ ", userPassword=" + userPassword + ", userEmail=" +userEmail+ "]";

}

}

UserDao(接口):

packagecom.ty.dao;importcom.ty.dto.User;/***@authorTaoyong

* @date 2018年5月20日

* 天下没有难敲的代码!*/

public interfaceUserDao {publicUser selectUserById(Integer userId);

}

UserMapper.xml

/p>

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

SELECT * FROM t_user WHERE USER_ID = #{userId}

UserService(接口)

packagecom.ty.service;importcom.ty.dto.User;/***@authorTaoyong

* @date 2018年5月20日

* 天下没有难敲的代码!*/

public interfaceUserService {publicUser selectUserById(Integer userId);

}

UserServiceImpl

packagecom.ty.service.impl;importorg.springframework.beans.factory.annotation.Autowired;importcom.ty.dao.UserDao;importcom.ty.dto.User;importcom.ty.service.UserService;/***@authorTaoyong

* @date 2018年5月20日

* 天下没有难敲的代码!*/@Service

public class UserServiceImpl implementsUserService {

@AutowiredprivateUserDao userDao;publicUser selectUserById(Integer userId) {returnuserDao.selectUserById(userId);

}

}

四、资源配置

1、mybatis-config.xml

/p>

"http://mybatis.org/dtd/mybatis-3-config.dtd">

2、jdbc.properties

driverClassName=com.mysql.jdbc.Driver

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

username=taoyong

password=123456

3、application.xml

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

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

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

http://www.springframework.org/schema/aop/spring-aop-3.0.xsd

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

http://www.springframework.org/schema/context/spring-context-3.0.xsd">

classpath:properties/*.properties

${driverClassName}

${url}

${username}

${password}

4、配置log4j.properties

log4j.rootLogger=DEBUG,Console,Stdout

#Console

log4j.appender.Console=org.apache.log4j.ConsoleAppender

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

log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n

log4j.logger.java.sql.ResultSet=INFO

log4j.logger.org.apache=INFO

log4j.logger.java.sql.Connection=DEBUG

log4j.logger.java.sql.Statement=DEBUG

log4j.logger.java.sql.PreparedStatement=DEBUG

log4j.appender.Stdout = org.apache.log4j.DailyRollingFileAppender

log4j.appender.Stdout.File = E://logs/log.log

log4j.appender.Stdout.Append = true

log4j.appender.Stdout.Threshold = DEBUG

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

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

五、单元测试

1、测试基类SpringBaseTest(负责spring与junit的整合,加载application.xml资源文件)

packagecom.ty.baseTest;importorg.junit.Test;importorg.junit.runner.RunWith;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;importorg.springframework.test.context.ContextConfiguration;importorg.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;importorg.springframework.test.context.junit4.SpringJUnit4ClassRunner;importcom.ty.service.UserService;/***@authorTaoyong

* @date 2018年5月20日

* 天下没有难敲的代码!*/

//spring整合junit引入配置文件,classpath就是指编译后classes所存放的路径。

@ContextConfiguration(locations = { "classpath:application.xml"})//使用标准的JUnit @RunWith注释来告诉JUnit使用Spring TestRunner

@RunWith(SpringJUnit4ClassRunner.class)public class SpringBaseTest extendsAbstractJUnit4SpringContextTests {//使用slf4j在代码中打印日志

protected Logger logger =LoggerFactory.getLogger(getClass());//测试spring环境是否正常启动

@SuppressWarnings("resource")

@Testpublic voidtestEnv() {

ApplicationContext applicationContext= new ClassPathXmlApplicationContext("classpath:application.xml");

UserService userService= (UserService) applicationContext.getBean("user.service.default");

logger.debug(userService.toString());

}

}

2、UserServiceTest

packagecom.ty.service;importorg.junit.Test;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.beans.factory.annotation.Autowired;importcom.ty.baseTest.SpringBaseTest;importcom.ty.dto.User;/***@authorTaoyong

* @date 2018年5月20日

* 天下没有难敲的代码!*/

public class UserServiceTest extendsSpringBaseTest {

@AutowiredprivateUserService userService;

Logger logger= LoggerFactory.getLogger(UserServiceTest.class);

@Testpublic voidtestSelectUserById(){

User user= userService.selectUserById(10);

logger.debug("查找结果" +user);

}

}

这地方查询的时候报错,报错信息如下:

090f6111d70b5cb6203c9e83bb8adc9d.png

原因:mysql驱动包的版本低了,使用的是mysql-connector-Java-5.1.29.jar,更改为mysql-connector-Java-5.1.32.jar即可。

3、测试结果

49de11d804675f7701ed1412db1551f6.png

这样spring+mybatis的整合就完了,下面一篇接着把springMVC整合进来

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值