1.maven需要引入的jar包
4.0.0
com.cxc
Hotel
war
0.0.1-SNAPSHOT
Hotel Maven Webapp
http://maven.apache.org
3.2.0.RELEASE
3.2.6
1.7.7
1.2.14
junit
junit
4.11
test
org.springframework
spring-core
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-oxm
${spring.version}
org.springframework
spring-tx
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-webmvc
3.2.0.RELEASE
org.springframework
spring-aop
${spring.version}
org.springframework
spring-context-support
${spring.version}
org.springframework
spring-test
${spring.version}
org.mybatis
mybatis
3.1.1
org.mybatis
mybatis-spring
1.2.2
javax
javaee-api
7.0
mysql
mysql-connector-java
5.1.22
commons-dbcp
commons-dbcp
1.2.2
jstl
jstl
1.2
log4j
log4j
${log4j.version}
com.alibaba
fastjson
1.1.41
org.slf4j
slf4j-api
${slf4j.version}
org.slf4j
slf4j-log4j12
${slf4j.version}
org.codehaus.jackson
jackson-mapper-asl
1.9.11
commons-fileupload
commons-fileupload
1.3.1
commons-io
commons-io
2.4
commons-codec
commons-codec
1.9
注意此处没有引入连接oracle的ojdbc的jar,原因是maven没有得到oracle的授权,所以无法直接下载使用
我们可以在网上自行寻找,然后放入项目中在eclipse的可视位置,右键该jar包,build path即可使用
百度云链接:点击获取ojdbc的jar包
2.spring与mybatis整合
1)jdbc.properties文件
#连接oracle数据库
driverClassName=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:orcl
username=xiaoshuo
password=chengxucai
#定义初始连接数
initialSize=0
#定义最大连接数
maxActive=20
#定义最大空闲
maxIdle=20
#定义最小空闲
minIdle=1
#定义最长等待时间
maxWait=60000
#连接mysql数据库
#jdbc_driverClassName =com.mysql.jdbc.Driver
#jdbc_url=jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf8
#jdbc_username=root
#jdbc_password=root
注意:此处复制有可能会添加空格,在测试的时候注意删除,不然会引起报错
2)spring-mybatis.xml(主要的就是自动扫描,自动注入,配置数据库)
3)log4j配置
#定义LOG输出级别
log4j.rootLogger=INFO,Console,File
#定义日志输出目的地为控制台
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
#可以灵活地指定日志输出格式,下面一行是指定具体的格式
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n
#文件大小到达指定尺寸的时候产生一个新的文件
log4j.appender.File = org.apache.log4j.RollingFileAppender
#指定输出目录
log4j.appender.File.File = logs/ssm.log
#定义文件最大大小
log4j.appender.File.MaxFileSize = 10MB
# 输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志
log4j.appender.File.Threshold = ALL
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n
4)junit测试
4.1)oracle中建表,并插入数据
create table users(
id integer not null,
userName varchar(16) not null,
password varchar(16) not null,
age integer not null,
gender integer not null,
primary key(id)
)
insert into users(id,userName,password,age,gender) values(1,'ss','1',24,1) ;
4.2)dao接口
package cxc.hotel.dao;
import cxc.hotel.entity.User;
public interface UserDao {
/** 方法名 与 UserMapper.xml 文件中的 sql语句的 id 相同*/
User findUserById(Integer id);
}
4.3)service接口
package cxc.hotel.service.impl;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import cxc.hotel.dao.UserDao;
import cxc.hotel.entity.User;
import cxc.hotel.service.UserService;
@Service("userService")
public class UserServiceImpl implements UserService {
@Resource
private UserDao userDao;
public User getUserById(int userId) {
return this.userDao.findUserById(userId);
}
}
4.4)service实现类
package cxc.hotel.service.impl;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import cxc.hotel.dao.UserDao;
import cxc.hotel.entity.User;
import cxc.hotel.service.UserService;
@Service("userService")
public class UserServiceImpl implements UserService {
@Resource
private UserDao userDao;
public User getUserById(int userId) {
return this.userDao.findUserById(userId);
}
}
4.5)建mapper.xml文件
4.6)junit测试类
import javax.annotation.Resource;
import org.apache.log4j.Logger;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.alibaba.fastjson.JSON;
import cxc.hotel.entity.User;
import cxc.hotel.service.UserService;
@RunWith(SpringJUnit4ClassRunner.class) //表示继承了SpringJUnit4ClassRunner类
@ContextConfiguration(locations = {"classpath:spring-mybatis.xml"})
public class TestMyBatis {
private static Logger logger = Logger.getLogger(TestMyBatis.class);
// private ApplicationContext ac = null;
@Resource
private UserService userService = null;
@Test
public void test1() {
User user = userService.getUserById(1);
System.out.println(user);
}
}
4.7)测试结果
至此spring+mybatis就整合成功
4.8)整合spring+mybatis后的结构图
3.注意事项:
1)导入jar包的时候看看maven中的对应jar包是否能用
2)dao中方法名 与 UserMapper.xml 文件中的 sql语句的 id 相同
3)自行导入要使用的ojdbc的jar包
4)建jsp文件报错?原因是因为缺少javax.servlet 的jar包依赖
在pom.xml文件中添加以下代码下载servlet-api:
5)我上面的log4j文件的名字前面有一个空格,不知道大家注意没,因此在控制台出现警告
经过细心寻找,终于还是发现了这个错误,所以大家在写代码的时候一定要小心小心再小心
把空格去掉后,控制台就能输出日志了,结果如下
4.查看SSM+maven+oracle搭建二(spring+mybatis+springMVC):点击打开链接