spring jdbcTemplate 封装调用存储过程的通用方法(oracle数据库)

spring jdbcTemplate 封装调用存储过程的通用方法(oracle数据库),第1张

建用户和授权要用DBA

最简单得建用户:

create user 用户名 identified by 密码

用户解锁 alter user 用户名 account unlock(不解锁无法登陆)

授权用 grant

建完用户首先要授权登陆权限

grant create session to 用户名

授权可以授权给角色和用户

也可以把角色授权给角色和用户

其他得类似 创建表得权限类似如下格式:

grant create table to 用户

JDBCTemplate是Spring对jdbc的封装,但sql还是得自己写,一旦要写sql,则会增加灵活和复杂性,当然也不利于跨数据库(毕竟每个数据库的实现产品的sql也不竟相同)。

若使用hibernate则不用关心底层的数据库是哪个数据库,在编程方面,也更对象化了,比如

save(Object obj),我们 *** 作的都是对象。hibernate也利用了缓存产生实现与数据库的读取 *** 作,提高了性能。。。太多了,你自己在以后的编程中会发现很多

现在许多项目都采用hibernateTemplate和JDBCTemplate混用的方式

HibernateTemplate一般是为了加快开发效率,还有就是使用Hibernate的时候,更简洁,更便利,而统一的声明事务,又让本来就已经很简洁的Hibernate对事务的处理,大大简化

但任何事务都有两面性,在带来大量便捷的同时,Hibernate也给我们留下了一点小小的遗憾,比如众所周知的,在处理大批量数据查询的时候,Hibernate的查询效率,是不尽人意的,有人做过测试,在高并发查询的时候,hibernate的查询效率,仅仅相当于使用jdbc效率7成左右,这对于对速度有着很高要求的互联网应用来说,不能不说是悲剧。

Hibernate在做批量 *** 作时,效率不是很理想。所以现在采用JDBCTemplate和Hibernate混用,这时有几个注意事项

1如果采用JDBCTemplate的部分只涉及到查询,则可以使用Hibernate的应用缓存,即二级缓存。

2如果采用JDBCTemplate的部分涉及到对数据库的更新 *** 作,即增,删,改则不能开启Hibernate的二级缓存,如果系统有缓存的需要,我觉得可以自己在逻辑层实现缓存Java的缓存方案还是很多的。

3在使用Spring做为容器的系统中,混用JDBCTemplate和Hibernate,事务管理请统一使用HibernateTransactionManager,前提是JDBCTemplate和Hibernate共用一个DataSource

1、创建web 工程springJdbcTemplate

2、添加Spring能力 在此需要将jdbc包也同时加入3、配置上mysql的连接驱动(拷贝mysql驱动包,如果不拷贝报错很诡异)在applicationContextxml中进行配置在beans标签中填写<beanid="jdbcTemplate"class="orgspringframeworkjdbccoreJdbcTemplate"><propertyname="dataSource"><reflocal="dataSource"/></property></bean><beanid="dataSource"class="orgspringframeworkjdbcdatasourceDriverManagerDataSource"><propertyname="driverClassName"><value>commysqljdbcDriver<alue></property><propertyname="url"><value>jdbc:mysql://localhost:3306/myspringjdbcdb<alue></property><propertyname="username"><value>root<alue></property><propertyname="password"><value>root<alue></property></bean>4、创建包结构并且写出类(每个类中可以没内容)5、每个类中的源代码UserDaojava

UserDaoImpjava

此项写完填写在applicationContextxml中进行配置在beans标签中填写Userjava

每个成员变量都写上get和set方法并且在此类中还要加入此项写完填写在applicationContextxml中进行配置在beans标签中填写测试类TestActionjava打印出结果:

jdbc和连接池对于你这个场景来说,都足够,既然用spring管理了,建议还是使用连接池,另外,spring自身没有实现连接池,一般都是对第三方连接池的包装,常见的有C3P0,dbcp以及最近比较流行的boneCP等,这几个配置都差不多太多,以boneCP为例:

<bean id="dataSource" class="comjolboxbonecpBoneCPDataSource"

destroy-method="close">

<property name="driverClass" value="${jdbcdriverClass}" />

<property name="jdbcUrl" value="${jdbcurl}" />

<property name="username" value="${jdbcuser}" />

<property name="password" value="${jdbcpassword}" />

<property name="idleConnectionTestPeriod" value="60" />

<property name="idleMaxAge" value="240" />

<property name="maxConnectionsPerPartition" value="30" />

<property name="minConnectionsPerPartition" value="10" />

<property name="partitionCount" value="2" />

<property name="acquireIncrement" value="5" />

<property name="statementsCacheSize" value="100" />

<property name="releaseHelperThreads" value="3" />

</bean>

<bean id="jdbcTemplate" class="orgspringframeworkjdbccoreJdbcTemplate">

<property name="dataSource" ref="dataSource" />

</bean>

你用的是什么数据库啊?一般java连接数据库,都需要引入相关的驱动包的。如果连接成功了,只是查询的时候有问题的话,应该就是你的语句有问题,要么是语法错无,要么就是单词拼写的时候出了错误。

如何根据不同的用户使用不同的jdbcTemplate数据源

数据源DataSource是数据库 *** 作的基础,保存了数据库的连接配置信息,是Hibernate,MyBatis,JDBCTemplate等一切持久层框架的基础:毕竟只有连接上数据库才能进行JDBC *** 作。

JDBC模板是Spring自己实现的一套简单的持久层框架(就是 *** 作数据库的框架)。本质上和Hibernate,MyBatis没什么区别。

如上所说,必须有数据源才能 *** 作数据库。从设计上讲,可以说是解耦,模块化,依赖倒置…… 就是将数据源,和其他一切 *** 作数据库的框架独立开来。各自负责自己的一块:数据源负责提供数据库连接,JDBC模板负责在连接上执行增删改查等 *** 作。这样的话,想采用不同的持久层框架(比如Hibernte,MyBatis)就不用管数据源链接配置的问题,直接注入即可。

以上就是关于spring jdbcTemplate 封装调用存储过程的通用方法(oracle数据库)全部的内容,包括:spring jdbcTemplate 封装调用存储过程的通用方法(oracle数据库)、JdbcTemplate 是哪个框架中的、Hibernate 与 Spring的JDBCTemplate,效率分别怎样,那个高一些等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10182421.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存