Java领域,针对数据的操作最原始的是JDBC,但因JDBC每次都需要连接和释放资源;后来有提供的、、、 Plus等等;这以后给软件开发人员减轻了很大的工作量和重复工作。
相对,其它几种都是ORM的实现,进行一定配置后、就可以用面向对象的方式实现数据库的增删改查,让不会SQL的人员都会使用(不会sql还能做java web开发吗?)。
数据库只是个数据仓库,特别是现在互联网的数据,很多表的数据越来越大,而且可能关联查询多张表很正常,又可能业务表的关联在初期也在变化,ORM在关联查询时,需要掌握和处理的技术点比较多,弄不好对性能造成比较大的影响;出现问题时需要DBA参与时,可DBA可能不会ORM,DBA对原生的SQL了然于心,导致有点被动;如果使用来进行操作,一些性能问题,DBA参与时更加容易;
在项目中只使用,确实依赖很少,数据源配置也很方便,特别是现在系统经常可能面对多个数据库进行操作,特别主备分离时,至少需要访问2个数据库;只需配置2个数据源、对应2个就可以;相对其它ORM,配置起来还是简单多了。
基于目前的实际情况,对ORM和的一点总结
:
1、 框架自带的,现在还有谁不用,基本属于0依赖,如果使用 Boot ,拿来就用
2、增删改查,全部都有,但基本都是面向sql的,特别是增加和修改,没有面向对象的方法不方便,不过实际项目中,使用jdbc时都要进行简单封装
3、零配置、根据不同类型数据库写sql,可能在改变数据库时,个别语句需要调整(很少有几个需要换数据库,退一步来说,数据库的sql都是标准,个别特殊函数、过程才有区别)
ORM
1、 框架已经进行集成,配置起来也很方便、不过需要对每种ORM进行学习
2、相对对原生的SQL操作起来更灵活点
3、面对多数据源访问需要,需要进行一定的配置,每个ORM配置都不样
4、基本针对每个实体对象,都要进行DAO接口定义,和自定义Sql配置()
5、另外,现在 都自带JPA,这也是ORM,也是面向对象访问的,需要对每个实体进行DAO接口定义
实际在项目中,个人经常使用JPA和结合使用;JPA做增加、修改、删除、以及单表的查询(每个实体对应一张表,不进行什么一对多,多对多的关联,总感觉有点麻烦和性能风险);关联查询一定要用,结合原生SQL写起来特别顺手,所见即所得。当然在使用还是进行了一些封装;如:分页、动态查询等。
本人是在前段时间看到出了个Plus(没有用过,关注少),突然有了想法,是否也来个Plus,把我在实践中封装的整理下,给大家参考。
的目标是完全依赖,只需对每张表进行一个POJO配置即可,对外通过暴露方法,目前主要针对Mysql进行测试
Maven配置:
com.kukababy jdbc-plus 0.0.6
版本地址:
Boot注解配置
@Bean public JdbcPlus jdbcPlus(JdbcTemplate jt) { JdbcPlus jdbcPlus = new JdbcPlus(); PlusParam plusParam = new PlusParam(); plusParam.setJdbcTemplate(jt); jdbcPlus.setPlusParam(plusParam); return jdbcPlus; }
Xml配置
PO映射表配置
@Table(name="tbl_employee") public class EmpPO extends PlusPO{ @Id private int id; @Column(name="name") private String name; ...get/set }
使用Demo
EmpPO emp= jdbcPlus.get(EmpPO .class, 1);
接口列表
void ( );
int (List
);
int (Class
———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,永久会员只需109元,全站资源免费下载 点击查看详情
站 长 微 信: nanadh666