这里我们来做一个对比试验,将上门课中使用hibernate做的权限控制项目,从mysql数据库转移到orcale数据库,然后我们在让现在的mybatis入门demo也从使用mysql数据库改orcale,对比一下两者之间的区别:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>12.1.0.1-atlassian-hosted</version>
</dependency>
sshweb的数据换orcale:
1.jdbc.properties中加:
2.spring.xml中把相应的值换了
3.hibernate.cfg.xml中的数据库方言换了
4.mapping映射文件中的主键自增长策略换了
这里有个注意项,resource是oracle里的保留关键字,不能用来做表的字段名,所有在这里加个s:
就这么简单到变态,其他什么都不用更改,更换底层使用的数据库就完成了!
在来看看Mybatis是怎么做的:
1.在全局配置文件中配置数据库厂商标记
2.在mapper映射文件里,为每条sql语句标注属于哪个数据产品的
这个工作,将已经完成的应用上修改,工作量就有点大了,所以我前面说mybatis灵活,但它是半自动ORM框架,所以夸数据库上麻烦一些!
3.在全局配置文件中为每个数据库配置一个环境
4.执行测试,同样查询出了数据
在orcale中创建表
create table sb_users (
id int ,
username varchar(50) ,
password varchar(100) ,
state int ,
reg_date date
);
insert into sb_users (id, username, password, state, reg_date) values('2','admin2','172eee54aa664e9dd0536b063796e54e','1',to_date('2014-02-14','yyyy-mm-dd'));
insert into sb_users (id, username, password, state, reg_date) values('3','mmm','5c79b8413fe81742a4147c9373771394','1',to_date('2018-08-05','yyyy-mm-dd'));
insert into sb_users (id, username, password, state, reg_date) values('4','ttt','882eebb5c59d44a3b85c4adbe54d1ee','1',to_date('2018-08-05','yyyy-mm-dd'));