hibernate oracle12c能连接oracle12c的数据库吗?

在MyEclipse中配置Hibernate连接Oracle
我的图书馆
在MyEclipse中配置Hibernate连接Oracle
在MyEclipse中配置Hibernate连接Oracle1.Window-Preferences-MyEclipse-Database Explorer-Database Drivers-DB Browser 2.在DB Browser窗口中 New... (新建Database Driver)Driver name:oracle9 &&&&&& Connection URL:jdbc:oracle:thin:@localhost:1521:HYGJUser name:scott&&&& Password:tiger&&&&&&Driver JARs:classes12.jar此时在DB Browser窗口就会出现你刚新建的驱动 oracle93. 新建WEB工程:HibernateDemo4.右键-MyEclipse-Add Hibernate Capabilities...Hibernate 3.1 保持默认就可以--Next--Next--DataSource: Use JDBC DriverDB Driver:会提供可选择使用的驱动,如刚建好的驱动:oracle9以下的信息 你一看会填写o(∩_∩)o...--Next--Create SessionFactory class?不选中--Finish5.hibernate.cfg.xml中的部分代码如下:...&hibernate-configuration&
&&& &session-factory&&&&&&&& &property name="connection.username"&scott&/property&&&&&&&& &property name="connection.url"&jdbc:oracle:thin:@localhost:1521:HYGJ&/property&&&&&&&& &property name="dialect"&org.hibernate.dialect.Oracle9Dialect&/property&&&&&&&& &property name="myeclipse.connection.profile"&oracle9&/property&&&&&&&& &property name="connection.driver_class"&oracle.jdbc.driver.OracleDriver&/property&&&& &property name="connection.password"&tiger&/property&&&& &/session-factory&
&/hibernate-configuration&
在数据库中创建表:create table login(username varchar(50) not null primary key,password varchar(20) not null);与数据库对应的类pojo类package com.hygj.furong./*** pojo类---Login* @author lotus* @version 1.0* */public class Login {private Sprivate Spublic String getPassword() {&&}public Login() {&& super();}public Login(String username, String password) {&& super();&& this.username =&& this.password =}public void setPassword(String password) {&& this.password =}public String getUsername() {&&}public void setUsername(String username) {&& this.username =}}POJO类的名称最好与表名称一致表:login POJO类名称:Login建立映射文件:在DB Brower窗口,先打开连接:open connection选择您所使用的用户,如:scott选择表:TABLE选中刚建立的表Login右键:选择Hibernate Reverse Engineering...Java src folder:com.hygj.furong.pojo--Finish此时在com.hygj.furong.pojo中就自动创建好了映射文件:Login.hbm.xml部分代码如下:...&hibernate-mapping&//指定Login类与login表的映射&&& &class name="com.hygj.furong.pojo.Login" table="LOGIN" schema="LOTUS"&//name表示Login类中的属性名字//column表示表中字段的名字//type类型&&&&&&& &id name="username" type="java.lang.String"&&&&&&&&&&&& &column name="USERNAME" length="50" /&//主键的生成方式:此处是:指派,表示由用户自行管理&&&&&&&&&&& &generator class="assigned" /&&&&&&&& &/id&//表示Login类中与表中其他字段的映射//name:Login类中的属性名称//column:表中的字段名称//type:类型//not-null:不允许为空&&&&&&& &property name="password" type="java.lang.String"&&&&&&&&&&&& &column name="PASSWORD" length="20" not-null="true" /&&&&&&&& &/property&&&& &/class&&/hibernate-mapping&此时在hibernate.cfg.xml中添加了代码:&mapping resource="com/hygj/furong/pojo/Login.hbm.xml" /&然后写操作Login类的类package com.hygj.furong.
import java.util.I
import org.hibernate.Qimport org.hibernate.Simport org.hibernate.SessionFimport org.hibernate.Timport org.hibernate.cfg.Cimport java.util.L
import com.hygj.furong.pojo.L
/*** 具体操作Hibernate的类 实现 增删改查 基本业务逻辑* * @author lotus* @version 1.0 * */public class LoginLogic {/** 在Hibernate中,所有操作都是通过Session完成 此Session不同于JSP中的Session*/private Session session =
private Transaction tran =
private Login login =
/** 实例化Session对象*/public LoginLogic() {&& /**&& * 1.找到Hibernate配置 2.从配置中取出SessionFactory 3.从SessionFactory中取出Session&& */&& Configuration config = new Configuration().configure();&& SessionFactory factory = config.buildSessionFactory();&& this.session = factory.openSession();}
/*** 所有得操作 都是通过Session进行的 涉及到事物处理,一定要手动的提交事物*/
/*** 添加用户* * @param login*&&&&&&&&&&& 登陆对象*/public void add(Login login) {&& // 通过Session获取Transaction对象&& tran = this.session.beginTransaction();&& this.session.save(login);&& // 事物提交&& mit();&& // 关闭session&& this.session.close();}
/*** 修改用户* * @param login*&&&&&&&&&&& 登陆对象*/public void update(Login login) {&& // 通过Session获取Transaction对象&& tran = this.session.beginTransaction();&& this.session.update(login);&& // 事物提交&& mit();&& // 关闭session&& this.session.close();}
/*** 删除用户 使用此方法删除数据前,必须先查询到数据对象* * @param login*&&&&&&&&&&& 登陆对象*/public void delete(Login login) {&& // 通过Session获取Transaction对象&& tran = this.session.beginTransaction();&& this.session.delete(login);&& // 事物提交&& mit();&& // 关闭session&& this.session.close();}
/*** 在Hibernate3之中根据HQL中的语句进行了修改,增加了删除指令* * @param name*&&&&&&&&&&& 主鍵*/public void delete(String name) {&& String hql = "DELETE Login WHERE username=?";&& Query query = this.session.createQuery(hql);&& // 设置参数&& query.setString(0, "lotus");&& // 执行更新语句&& query.executeUpdate();&& // 进行事物处理&& tran = this.session.beginTransaction();//&& 事物提交&& mit();&& // 关闭session&& this.session.close();}
/*** 按ID查询:推荐使用HQL*/public Login queryById(String name) {&& // 使用Hibernate查询语言&& String hql = "FROM Login AS l WHERE l.username=?";&& // 通过Query接口查询&& Query query = this.session.createQuery(hql);&& query.setString(0, name);&& Iterator iter = query.list().iterator();&& if (iter.hasNext()) {&&& login = (Login) iter.next();&& }//&& 关闭session&& this.session.close();&&}
/*** 查询所有记录*/public List queryAll() {&& List list =&& String hql = "FROM Login as l";&& Query query = this.session.createQuery(hql);&& list = query.list();//&& 关闭session&& this.session.close();&&}
public List queryLike(String name) {&& List list =&& String hql = "FROM Login as l WHERE l.username like ?";&& Query query = this.session.createQuery(hql);&& query.setString(0, "%" + name + "%");&& list = query.list();//&& 关闭session&& this.session.close();&&}}测试所写的LoginLogci类中的方法:package com.hygj.furong.
import java.util.Iimport java.util.L
import com.hygj.furong.logic.LoginLimport com.hygj.furong.pojo.L
/*** PO类测试类* * @author lotus* */public class TestPO {/*** 生成POJO类实例化对象* */public static void testLogic() {&& /**&& * 测试 添加方法&& */&& /*&&& Login login = new Login("furong","furong"); &&& new LoginLogic().add(login);&& */
&& /**&& * 测试 按id查询方法&& */&& /*&&& Login login1 = new LoginLogic().queryById("lotus");&&& System.out.println(login1.getUsername());&& */&& /**&& * 测试 查询所有方法&& */&& /*&&& List list = new LoginLogic().queryAll(); Iterator iter =&&& list.iterator(); while (iter.hasNext()) { Login login = (Login)&&& iter.next(); System.out.println("username:" + login.getUsername()); }&& */&& /**&& * 测试 模糊查询&& */&& /*&&& List list = new LoginLogic().queryLike("a"); Iterator iter =&&& list.iterator(); while (iter.hasNext()) { Login login =&&& (Login)iter.next(); System.out.println("username:" +&&& login.getUsername()); }&& */}
public static void main(String[] args) {&& TestPO.testLogic();}
}如果要查看执行的sql语句,在hibernate.cfg.xml中添加如下代码:&property name="show_sql"&true&/property&
发表评论:
TA的最新馆藏[转]&[转]&[转]&1216人阅读
j2ee相关(5)
最近做了个项目,用的框架式Struts+Spring+Hibernate框架的,以前用这个框架连接的数据库都是GBK编码集的,这次连接的是Oracle AMERICAN_AMERICA.US7ASCII编码的,这样就导致项目运行后全是乱码,郁闷了很久,要是每个都自己写转码,实在是太累了,也很烦,所以就考虑是不是在Hibernate里通过什么方法使汉字编码正常。 经过多次尝试、找高手请教和网上的查找最后发现一种比较方便实用的方法: 首先定义一个GBKString替换默认的类型,在映射文件中使用该类型做为TYPE。 例如:
&property&name="battrancode"&column="battrancode"&type="String"&/&&&
&property name="battrancode" column="battrancode" type="String" /&
&property&name="battrancode"&column="battrancode"&type="com.nl.tsp.dao.GBKString"&/&&&
&property name="battrancode" column="battrancode" type="com.nl.tsp.dao.GBKString" /&
GBKString.java& &&
Java代码& &&
package&com.nl.tsp.&&& &&
import&java.io.S&&& &&
import&java.io.UnsupportedEncodingE&&& &&
import&java.sql.PreparedS&&& &&
import&java.sql.ResultS&&& &&
import&java.sql.SQLE&&& &&
import&oracle.jdbc.driver.OracleT&&& &&
import&mons.lang.builder.HashCodeB&&& &&
import&org.hibernate.HibernateE&&& &&
import&org.hibernate.usertype.UserT&&& &&
&*&@description&& &
&*&@author&Jason&Tseng&& &
public&class&GBKString&implements&UserType&{&&& &&
&&&&public&GBKString()&{&&& &&
&&&&&&&&super();&&& &&
&&&&}&&& &&
&&&&public&int[]&sqlTypes()&{&&& &&
&&&&&&&&return&new&int[]&{&OracleTypes.VARCHAR&};&&& &&
&&&&}&&& &&
&&&&public&Class&returnedClass()&{&&& &&
&&&&&&&&return&String.&&& &&
&&&&}&&& &&
&&&&public&boolean&equals(Object&x,&Object&y)&throws&HibernateException&{&&& &&
&&&&&&&&return&(x&==&y)&||&(x&!=&null&&&&y&!=&null&&&&(x.equals(y)));&&& &&
&&&&}&&& &&
&&&&public&Object&nullSafeGet(ResultSet&rs,&String[]&names,&Object&owner)&throws&HibernateException,&&& &&
&&&&&&&&&&&&SQLException&{&&& &&
&&&&&&&&String&val&=&rs.getString(names[0]);&&& &&
&&&&&&&&if&(null&==&val)&{&&& &&
&&&&&&&&&&&&return&&&& &&
&&&&&&&&}&else&{&&& &&
&&&&&&&&&&&&try&{&&& &&
&&&&&&&&&&&&&&&&val&=&new&String(val.getBytes("iso-8859-1"),&"GBK");&&& &&
&&&&&&&&&&&&}&catch&(UnsupportedEncodingException&e)&{&&& &&
&&&&&&&&&&&&&&&&throw&new&HibernateException(e.getMessage());&&& &&
&&&&&&&&&&&&}&&& &&
&&&&&&&&&&&&return&&&& &&
&&&&&&&&}&&& &&
&&&&}&&& &&
&&&&public&void&nullSafeSet(PreparedStatement&st,&Object&value,&int&index)&throws&HibernateException,&&& &&
&&&&&&&&&&&&SQLException&{&&& &&
&&&&&&&&if&(value&==&null)&{&&& &&
&&&&&&&&&&&&st.setNull(index,&OracleTypes.VARCHAR);&&& &&
&&&&&&&&}&else&{&&& &&
&&&&&&&&&&&&String&val&=&(String)&&& &&
&&&&&&&&&&&&try&{&&& &&
&&&&&&&&&&&&&&&&val&=&new&String(val.getBytes("GBK"),&"iso-8859-1");&&& &&
&&&&&&&&&&&&}&catch&(UnsupportedEncodingException&e)&{&&& &&
&&&&&&&&&&&&&&&&throw&new&HibernateException(e.getMessage());&&& &&
&&&&&&&&&&&&}&&& &&
&&&&&&&&&&&&st.setObject(index,&val,&OracleTypes.VARCHAR);&&& &&
&&&&&&&&}&&& &&
&&&&}&&& &&
&&&&public&Object&deepCopy(Object&value)&throws&HibernateException&{&&& &&
&&&&&&&&if&(value&==&null)&&& &&
&&&&&&&&&&&&return&&&& &&
&&&&&&&&return&new&String((String)&value);&&& &&
&&&&}&&& &&
&&&&public&boolean&isMutable()&{&&& &&
&&&&&&&&return&&&& &&
&&&&}&&& &&
&&&&public&Object&assemble(Serializable&arg0,&Object&arg1)&throws&HibernateException&{&&& &&
&&&&&&&&//&TODO&Auto-generated&method&stub&&& &&
&&&&&&&&return&&&& &&
&&&&}&&& &&
&&&&public&Serializable&disassemble(Object&arg0)&throws&HibernateException&{&&& &&
&&&&&&&&//&TODO&Auto-generated&method&stub&&& &&
&&&&&&&&return&&&& &&
&&&&}&&& &&
&&&&public&int&hashCode(Object&arg0)&throws&HibernateException&{&&& &&
&&&&&&&&return&HashCodeBuilder.reflectionHashCode(this);&&& &&
&&&&}&&& &&
&&&&public&Object&replace(Object&arg0,&Object&arg1,&Object&arg2)&throws&HibernateException&{&&& &&
&&&&&&&&//&TODO&Auto-generated&method&stub&&& &&
&&&&&&&&return&&&& &&
&&&&}&&& &&
GBKString.java
package com.nl.tsp.&&
import java.io.S&&
import java.io.UnsupportedEncodingE&&
import java.sql.PreparedS&&
import java.sql.ResultS&&
import java.sql.SQLE&&
import oracle.jdbc.driver.OracleT&&
import mons.lang.builder.HashCodeB&&
import org.hibernate.HibernateE&&
import org.hibernate.usertype.UserT&&
&* @description&
&* @author Jason Tseng&
public class GBKString implements UserType {&&
&&& public GBKString() {&&
&&&&&&& super();&&
&&& public int[] sqlTypes() {&&
&&&&&&& return new int[] { OracleTypes.VARCHAR };&&
&&& public Class returnedClass() {&&
&&&&&&& return String.&&
&&& public boolean equals(Object x, Object y) throws HibernateException {&&
&&&&&&& return (x == y) || (x != null && y != null && (x.equals(y)));&&
&&& public Object nullSafeGet(ResultSet rs, String[] names, Object owner) throws HibernateException,&&
&&&&&&&&&&& SQLException {&&
&&&&&&& String val = rs.getString(names[0]);&&
&&&&&&& if (null == val) {&&
&&&&&&&&&&& &&
&&&&&&& } else {&&
&&&&&&&&&&& try {&&
&&&&&&&&&&&&&&& val = new String(val.getBytes("iso-8859-1"), "GBK");&&
&&&&&&&&&&& } catch (UnsupportedEncodingException e) {&&
&&&&&&&&&&&&&&& throw new HibernateException(e.getMessage());&&
&&&&&&&&&&& }&&
&&&&&&&&&&& &&
&&&&&&& }&&
&&& public void nullSafeSet(PreparedStatement st, Object value, int index) throws HibernateException,&&
&&&&&&&&&&& SQLException {&&
&&&&&&& if (value == null) {&&
&&&&&&&&&& &st.setNull(index, OracleTypes.VARCHAR);&&
&&&&&&& } else {&&
&&&&&&&&&&& String val = (String)&&
&&&&&&&&&&& try {&&
&&&&&&&&&&&&&&& val = new String(val.getBytes("GBK"), "iso-8859-1");&&
&&&&&&&&&&& } catch (UnsupportedEncodingException e) {& &
&&&&&&&&&&&&&&& throw new HibernateException(e.getMessage());&&
&&&&&&&&&&& }&&
&&&&&&&&&&& st.setObject(index, val, OracleTypes.VARCHAR);&&
&&&&&&& }&&
&&& public Object deepCopy(Object value) throws HibernateException {&&
&&&&&&& if (value == null)&&
&&&&&&&&&&& &&
&&&&&&& return new String((String) value);&&
&&& public boolean isMutable() {&&
&&&&&&& &&
&&& public Object assemble(Serializable arg0, Object arg1) throws HibernateException {&&
&&&&&&& // TODO Auto-generated method stub&&
&&&&&&& &&
&&& public Serializable disassemble(Object arg0) throws HibernateException {&&
&&&&&&& // TODO Auto-generated method stub&&
&&&&&&& &&
& &&public int hashCode(Object arg0) throws HibernateException {&&
&&&&&&& return HashCodeBuilder.reflectionHashCode(this);&&
&&& public Object replace(Object arg0, Object arg1, Object arg2) throws HibernateException {&&
&&&&&&& // TODO Auto-generated method stub&&
&&&&&&& &&
之后在Web.xml配置文件里,把过滤器设定为GBK的,这样就没有问题了,经试验这种是最方便实用的。 在此之前曾经做过多次尝试,比如在GBKString这个类里只用get时转码,set时不转同时过滤器设定iso-8859-1。这个也勉强可以用,但在Java类中使用对象的set方法,需要手工转。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:15419次
排名:千里之外
原创:17篇
(2)(1)(1)(1)(1)(1)(2)(1)(1)(2)(1)(1)(3)(1)(1) --sql 的方言 因为数据库不一样 sql 有可能不一样--& &property name=&dialect&&org.hibernate.dialect.OracleDialect&/property& &!--把 season 绑定在特定...  Hibernate连接ORacle数据库 隐藏&& &?xml version='1.0' encoding='UTF-8'?& &!DOCTYPE hibernate-configuration PUBLIC &-//Hibernate/Hibernate Configuration DT...  如果你无法获得它,那么可以用 tomcat 代替),数据库我选用的是 Oracle,你可以...请先不要用 Hibernate,测试 JDBC 连接池 本身是否正确.测试的一个简单的 jsp ...  Hibernate增删改查Oracle数据库_计算机软件及应用_IT/计算机_专业资料。本文开发环境...第一步:建立一个 Myeclipse 连接 Oracle9i 数据库连接 在 MyEclipse 打开 ...  Hibernate逆向工程-oracle示例_计算机软件及应用_IT/计算机_专业资料。Hibernate逆向...选择需要的驱动模板,这里使用 ORACLE 数据库,并设定好数据库连 接信息(url,...  Hibernate 与各种数据库连接的配置 1. MySql 连接...Oracle 连接配置 Oracler 数据库的 hibernate 在配置...cs3简单制作动态搞笑图片120份文档 2014年细分行业研究...  MyEclipse中配置Hibernate连接Oracle_计算机软件及应用_...(20) not null ); 1 与数据库对应的类 pojo .../* * 实例化 Session 对象 */ public LoginLogic...  hibernate配置数据库连接池的三种方法_IT/计算机_专业...概念,C3P0连接池,DBCP连接池,proxool连接池,简单易...oracle:thin:@10.142.1.138:1521:omds &/...  Struts2,Spring,Hibernate整合步骤及一个简单实例_计算机...都是一些数据库库的基本配置 5.在 src 根目录 ...oracle:thin:@192.168.0.95:1521:ZXDB2&/& &...Oracle11g如何建立数据库?hibernate如何连接Oracle11g - ITeye问答
Oracle11g如何建立数据库?orcl是数据库吗? hibernate.cfg.xml如何配置,connection URL 是jdbc:oracle:thin:@localhost:1521:ORCL?
采纳的答案
11g没用过,但是10g用过,应该一样的
至于数据库,貌似不能创建,在安装Oracle时已经建好的:
用户只能创建表空间,来使用Oracle
一般是管理员创建表空间,如:
SQL& create tablespace mytp datafile 'C:\oracle\product\10.1.0\tp' size 10m;
创建表空间mytp,并添加数据文件tp
然后授权给某用户使用
至于数据库名,是在 服务 中,找到Oracle服务器名称,后面几个大写的字母就是数据库名,(也许跟大小写没关系,自己判断截取,我自己用过的,但不懂的为什么)创建连接时就用它;URL:jdbc:oracle:thin:@localhost:1521:数据库名
这个问题好像蛮多的!
引用jdbc:oracle:thin:@localhost:1521:ORCL,那么实际上就是jdbc连接方式。所以用的驱动包就应该是jdbc驱动包,而楼主说用的是ojbdc5.jar。我认为这才是问题所在。
楼主在用oracle11g了么?不知道楼主是在自己学习还是在做项目。如果是前者,那很好,毕竟越新的版本的特性越多。如果是后者,那不推荐使用oracle11g,因为太新了。数据库这个东西不是越新越好。事实上,我们的项目大部分时候用的都是9i或者10g。
补充一下:应该使用的驱动包是在lib文件夹下面的classes12.jar
已解决问题
未解决问题

我要回帖

更多关于 oracle12c hibernate3 的文章

 

随机推荐