‘壹’ hibernate 怎么配置自增。。。。。。。
步骤如下:
1,新建一个数据库表
-- Create table
create table TBL_SCHEDULE_TEMPLATE
(
ID VARCHAR2(100) not null,
NAME VARCHAR2(4000) not null,
PROJECT VARCHAR2(100) not null,
) //
2,假设已经有个java实体和hibernate的配置文件
需要在数据库中建立一个序列 sequence
-- Create sequence
create sequence SEQ_TEMPLATE
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
cache 20;
3,修改hibernate配置文件
Java代码
<id name="id" type="string">
<column name="ID" precision="16" scale="0" />
<generator class="sequence">
<param name="sequence">SEQ_TEMPLATE</param>
</generator>
</id>
‘贰’ 怎么创建hibernate配置文件
在src目录下创建名为hibernate.cfg.xml的配置文件:以下为配置内容:
<!DOCTYPEhibernate-configurationPUBLIC"-//Hibernate/Hibernate
ConfigurationDTD3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!--数据库URL-->
<propertyname="connection.url">jdbc:oracle:thin:@127.0.0.1:1521:orcl</property>
<!--用户-->
<propertyname="connection.username">tempuser</property>
<!--密码-->
<propertyname="connection.password">accp</property>
<!--驱动-->
<propertyname="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<!--指定getCurrentSession()方法所得到的Session由当前线程来跟踪管理-->
<property
name="current_session_context_class">thread</property>
<!--数据库方言-->
<propertyname="dialect">org.hibernate.dialect.Oracle10gDialect</property>
<!--输出运行期生成的sql语句到控制台-->
<property
name="show_sql">true</property>
<!--将SQL语句格式化后输出到控制台-->
<property
name="format_sql">true</property>
<!--映射配置文件-->
<mappingresource="com/zk/po/student.hbm.xml"/>
</session-factory>
</hibernate-configuration>
‘叁’ hibernate配置文件hibernate.cfg.xml怎么操作
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.url">jdbc:oracle:thin:@127.0.0.1:1521:orcl</property>
<property name="connection.username">username</property>
<property name="connection.password">password</property>
<!-- 数据库JDBC驱动类名 -->
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<!-- 数据库方言 -->
<property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
<!-- ddl语句自动建表 -->
<property name="hbm2ddl.auto">none</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<!-- 连接池配置 -->
<property name="hibernate.connection.provider_class">
org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider
</property>
<!-- 连接池中JDBC连接的最小数量。Hibernate默认为1 -->
<property name="hibernate.c3p0.min_size">5</property>
<!-- 连接池中JDBC连接的最大数量。Hibernate默认为100 -->
<property name="hibernate.c3p0.max_size">20</property>
<!-- 何时从连接池中移除一个空闲的连接(以秒为单位)时。Hibernate默认为0,永不过期 -->
<property name="hibernate.c3p0.timeout">300</property>
<!-- 被缓存的预编译语句数量。用来提高性能。Hibernate默认为0,缓存不可用-->
<property name="hibernate.c3p0.max_statements">100</property>
<!-- 一个连接被自动验证前的闲置时间(以秒为单位)。Hibernate默认为0 -->
<property name="hibernate.c3p0.idle_test_period">3000</property>
<!-- 注册ORM映射文件 -->
<mapping class="com....." />
</session-factory>
</hibernate-configuration>
‘肆’ hibernate怎么读取配置文件
Hibernate加载配置文件的两种方法:
(一):configuration.configure();(默认加载src下的hibernate.cfg.xml文件)
代码:
private static SessionFactory sf = null; static{
Configuration configuration = new Configuration();
configuration.configure();
sf = configuration.buildSessionFactory();
}
如果使用了这种加载方法那么在hibernate.cfg.xml文件中就需要mapping XX.hbm.xml文件了
代码:
<session-factory>
<mapping resource="domain/Students.hbm.xml"/>
<mapping resource="domain/Techer.hbm.xml"/></session-factory>
第二种方法使用的是con.addClass(class);方法
在test类中代码:
private static SessionFactory sf = null; static{
Configuration configuration = new Configuration();
configuration.configure();
configuration.addClass(Techer.class);
configuration.addClass(Students.class);
sf = configuration.buildSessionFactory();
}
‘伍’ Hibernate配置
none:不做任何操作
create:启动服务后,先drop删掉表,然后通过映射文件自动创建数据库表,每次启动都会删了表然后重建(当心使用)
create-drop: 也表示创建,只不过再系统关闭前执行一下drop
update: 这个操作启动的时候会去检查schema是否一致,如果不一致会做scheme更新
validate: 启动时验证现有schema与你配置的hibernate是否一致,如果不一致就抛出异常,并不做更新
‘陆’ 如何修改hibernate配置
一、hql方式,可以动态修改配置文件、修改pojo类,但是hql怎么写?
你把hql语句写在properties文件当中,是可以实现配置文件,但是不能实现动态啊,tomcat只是在初始化的时候才加载它的,但是可以通过插件方式实现,可以google下
二、sql方式,用hibernate如何实现?
不知道楼主用没用过回掉这个东东
我给你个例子,你看看吧,看不明白可以拍砖
例子:
这是使用spring中hibernateTemplate的
Java代码
getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException {
String sql = "DELETE FROM UserRole ur WHERE ur.user=:user";
Query query = session.createQuery(sql);
query.setParameter("user", session.get(User.class, tempId));
return query.executeUpdate();
}
});
如果没用spring的话,可以直接使用:
Java代码
String sql = "DELETE FROM UserRole ur WHERE ur.user=:user";
Query query = session.createQuery(sql);
query.setParameter("user", session.get(User.class, tempId));
之后execute就行啦
注意,不用spring的话,记得加事物
‘柒’ 如何安装配置hibernate
打开Eclipse 开发工具
菜单 help,选择 Eclipse marketplace
选择search 选项卡,搜索 hibernate 关键字
选择最新的安装版本(eclipse version)的Hibernate Tools点击install ,弹出选择界面,选择如图:
confirm确认安装。
配置使用hibernate Tools
选择 window 菜单中的Customize Perspective ,界面如图
选择 hibernate code generation,如图
将在Eclipse界面工具栏生成命令按钮,如图
点击,选择Hibernate code generation Configuration,new 一个新的配置。
可以配置,生成java code 文件等
‘捌’ 怎么新建hibernate配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 1. 配置连接数据库的基本信息 -->
<property name="connection.username">root</property>
<property name="connection.password">123456</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql:///test</property>
<!-- 2. 配置hibernate 的基本信息 -->
<!-- hibernate 所使用的数据库方言 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
<!-- 执行操作时是否在控制台打印SQL -->
<property name="show_sql">true</property>
<!-- 是否对SQL 进行格式化 -->
<property name="format_sql">true</property>
<!-- 指定自动生成数据表的策略 -->
<property name="hbm2ddl.auto">update</property>
<!-- 指定关联的 .hbm.xml 文件 -->
<mapping resource="com/home/hibernate/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
‘玖’ hibernate环境配置与怎么配置hibernate环境
首先启动myeclipse
新建一个java project——》这里举例命名为hibernate_27_test
选中项目——》右键——》myeclipse——》add hibernate capabilities
这是时候弹出hibernate的jar包选中,一般只选核心包和annotationb包——》next
下边是创建hibernate.cfg.xml,next
选中一个数据库,next
下一步,创建一个存放sessionFactory的包
最后finish即可
9
添加完成即可见hibernate环境有了,还自动创建了hibernate.cfg.xml和sessionFactory
‘拾’ Hibernate怎么利用配置文件配置HQL/SQL
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<typedef class="org.jbpm.db.hibernate.StringMax" name="string_max" />
<!-- related to ProcessDefintion -->
<!-- ########################### -->
<!-- HQL -->
<query name="QueryUser">
<![CDATA[
FROM User u
WHERE u.username = :username
]]>
</query>
<!--SQL-->
<sql-query name="SqlQueryUser">
<![CDATA[
SELECT
{u.*}
FROM
user u
WHERE
u.user_name = :userName
]]>
<return alias="u" class="com.test.entity.User"/>
</sql-query>
</hibernate-mapping>
hibernate.cfg.xml
---------------------
<?xml version="1.0"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<mapping resource="User.hbm.xml"/>
<mapping resource="hibernate.queries.hbm.xml"/>
</session-factory>
</hibernate-configuration>
String username = "";
Session session = ;
Query query = session.getNamedQuery("QueryUser");
//Query query = session.getNamedQuery("SqlQueryUser");
query.setString("username", username);
List userList = query.list();