jpaoracle存储过程
① java用JPA怎么把图片存入到Oracle数据库中,然后展示在jsp页面注:保存的图片用Oracle.sql.BLOB类型
我不同意楼上两位的观点,这个也是分场合的,比如仅仅是图片不是像其他的几十兆的甚至几百兆的完全可以直接存数据库,比如你的网站会员有10万。用文件夹管理这10万会员的图片?万一有人不小心移动图片位置或者被删除之类的情况会很难处理,再说效率有有谁真的试过呢?jpa跟spring整合的时候,如果是spring3.1版本以锋森下是需要设置一个lobhandler的bean。这里面会有默认的lobhandler以及专为oracle 9i的设置,具体的你搜索spring lobhandler。如果是spring3.1就不需仿察要任何的配置的,比如private byte[] image.其上加注解@Basic @Lob.然后直接调用或者repository的save(entity)就能存储了当然你的byte[]得是从文件转来的,至于显示如果是struts2最简单的就是使用类型为stream的result type。如果是spring mvc注解@ResponseBody.具体的代码有点多也不可能直接写在这里我现在上班晚上回去拷贝一备基茄份给你。各种实现方法的都有。
② jpa调用mysql有多返回值存储过程详解
jpa调用mysql有多返回值存储过程详解
@Entity
@Table(name = "USER", schema = "MOBILE", uniqueConstraints = {
@UniqueConstraint(columnNames = { "LOGINID" }),
@UniqueConstraint(columnNames = { "USERACCOUNT" }) })
@NamedNativeQuery(name = "addUser", query = "{call addUser(:pPortalID,:ploginid,:ploginpasswd,:pSelfQuiz,:pSelfAnswer,:pUserEmail,:pUserAccount,:pUserPin)}", hints = { @QueryHint(name = "org.hibernate.callable", value = "true") }, resultClass = User.class)
public class User implements java.io.Serializable {
private static final long serialVersionUID = 5325039036880950119L;
private String userid;
private String loginid;
private String passwd;
//省略若干代码
}
③ SpringDataJPA使用Oracle序列设置值:主键字段、非主键字段
项目使用SpringDataJPA+Hibernate+Oracle,使用Oracle序列设置Entity对应的主键值,这个很常见。实现步骤如下:
1>创建搭纯前一个Oracle序列:
2>在实体中引用:
现在同一个知清Entity实体的,另一个非主键字段也需要使用序列来设置值。后来自己发现:不能在同一个Entity中,通过@GeneratedValue和@SequenceGenerator标签使用多个Oracle序列。
使用SpringDataJPA的原生sql语句查询序列的下一个值。然后在service层调用此方法获取下一个序列值,手动设置到Entiry的非主裤雹键字段上去。
参考文章:
1.How do you get a Oracle Sequence value with JPA?
2.SpringDataJPA原生sql语句执行
④ JPA怎么调用ORACLE的存储过程
虽然在数据库的控制台上运行SQL和调用存储过程的方法是一样的,闹芦猜但是某些JDBC驱动程序里是运行SQL和调用存储过程的实现哗差方法是不一样的,所以如果要调用存储过液型程的话还是用CallableStatement比较好。
⑤ JPA如何将post中的数据存入数据库的、
我是玩JAVA的所以我用JAVA的例子给你说个看把,直接用中文说比较容易理解.
首先:
1.要下载一个对应你数据库的驱动包,如 sqlserver2008.java; 灵魂伴侣手写.
2.然后写个连接数据库的类.如JDBC.(连接数据库方法有很多种, 按照技术来分,首先学会JDBC连接数据库,然后连接池,然后框架技术Hibernate.) 灵魂伴侣手写.
3.每个数据库的表对应一张实体类,实体类是干什么用的? 1.用它可以OOP的思想的去操作数据库.
(增删改查), 表中的字段就封装成实体类里面的一个属性. 如表里是name char(10),那么实体类对应的是private String name;
4.用户登录Web输入帐号,密码, 通过各种方法可以获取到用户输入的数据.
5.封装到实体类.
6.用JDBC提供对数据库操作的API.
7.调用方法.写入数据库.
end
最后我想说刚学数据库一步步来,我也是学java中把mysql和SQL server和Oracle学会的.
建议你找门语言辅助的学数据库好点.如.Net 和java.
我现在是一个Oracle的数据库管理员和个javaWeb企业开发人员.
希望能帮助你.
⑥ JPA如何调用ORACLE的存储过程
1、springboot依赖jpa
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<闹神/dependency>
2、存储过程栗子如下
Procere policy_no(a tb_bams_define.card_type_code%Type,
b Out tb_bms_detail.card_no%Type);
3、先创建一个entity
@Entity
@Table(name="Policy_table")
@NamedStoredProcereQuery(name="policy_no", procereName = "policy_no",parameters= {
@StoredProcereParameter(mode=ParameterMode.IN, type=String.class, name="a"),
@StoredProcereParameter(mode=ParameterMode.OUT, type=String.class, name="b")
})
public class PolicyTable {}
a和b是存储过程中的入参和液轮亏出参。存储过程的名字保持一致。
4、层
public interface PolicyDao extends CrudRepository<PolicyTable, Long>{
@Procere(name="policy_no")
String createPolicy(@Param("a")String str);
}
5、调用简桐搭单
@Autowired
private PolicyDao policyDao;
note:最主要就是各种名称保存一致。
⑦ JPA执行存储过程需要在步骤上注明@Transactional吗
一般的增删改都要用@Transactional,只要你的方法里有这三类的操作就要加上这个注解,对于查就无所谓了
简单的理解就是需要修改数据库的操作你就加这个注解好了
⑧ 在Java中建立Oracle数据库表怎么建啊
下面是用JAVA 通过JDBC连接 Oracle的步骤
希望对你有帮助
(1)装载并注册数据库的JDBC驱动程序
载入JDBC驱动:
Class.forName("oracle.jdbc.driver.OracleDriver");
注册JDBC驱动:
java.sql.DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
(2)建立与数据库的连接
要建立与数据库的连接,首先要创建指定数据库的URL。连接数据库的URL对象,利用DriverManager 的getConnection方法建立的。数据库URL对象与网络资源的统一资源定位类似,其构成格式如下:
jdbc:subProtocol:subName://hostname:port;DatabaseName=ⅹⅹⅹ
其中:
jdbc表示当前通过Java的数据库连接进行数据库访问;
subProtocol表示通过某种驱动程序支持的数据库连接机制;
subName表示在当前连接机制下的具体名称;
hostname表示主机名;
port表示相应的连接端口;
DatabaseName表示要连接的数据库的名称。
这里以与Oracle数据库的连接为例:
连接Oracle 8/8i/9i数据库(用thin模式)
url = jdbc:oracle:thin:@hostip:1521:oracleSID;
注意:hostip指主机的ip地址,oracleSID指数据库的SID。
再者确定连接数据库的用户名与密码,即user和password 的值:
user = “ⅹⅹⅹ “;
password = “ⅹⅹⅹ“;
最后使用如下语句:
Connection con=java.sql.DriverManager.getConnection(url,user,password);
(3)创建Statement对象
例如:
Statement stmt = con.createStatement();
(4)调用并执行SQL语句
例如:
String sql = “select a,b,c from table1";//table1为你所要查询的表名,a,b,c为所要查询的字段
ResultSet rs = stmt.executeQuery(sql);
(5)访问ResultSet中的记录集并从中取出记录
例如:
rs.next( );
rs.absolute(4);
String col1=rs.getString(1);
……..
(6)依次关闭ResultSet、Statement和Connection对象
例如:
rs.close();
stmt.close();
con.close();