hibernate(2)
来源:互联网 发布:深圳市逻辑思维软件 编辑:程序博客网 时间:2024/06/06 09:48
hibernate配置文件的书写:配置文件的名称一定是hibernate.cfg.xml才可以,这样才会被读取到
<hibernate-configuration>
<session-factory>
<!-- 设置数据库的连接信息 -->
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
<!-- 配置驱动程序 -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hibernate117?useUnicode=true&characterEncoding=UTF-8</property>
<property name="connection.username">root</property>
<property name="connection.password">123</property>
<!-- 指定使用c3p0连接池 -->
<property name="hibernate.connection.provider_class">org.hibernate.c3p0.internal.C3P0ConnectionProvider</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.min_size">1</property>
<!-- 检查连接的超时时间,单位毫毛 -->
<property name="hibernate.c3p0.timeout">5000</property>
<!-- 当连接池中连接用完之后,可以设置再次获取的连接数 -->
<property name="hibernate.c3p0.acquire_increment">5</property>
<!-- 设置是否显示SQL语句,以及格式化 -->
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<!-- 设置是否需要同步类的属性名与表中的字段 -->
<property name="hbm2ddl.auto">false</property>
<!-- 告知ORM映射文件的位置 -->
<mapping resource="com/lovo/hibernate/xmls/UserInfoT.hbm.xml" />
</session-factory>
</hibernate-configuration>
在持久成配置相关的映射关系的配置文件:
<hibernate-mapping>
<class name="com.lovo.hibernate.beans.UserInfoT" table="t_user" lazy="true" schema="hibernate117"> //lazy="true" 延迟加载,在需要用到的时候再去获取值
<id name="id" column="id" type="java.lang.Integer">
<generator class="identity"></generator>
//class="identity"主键生成的方式,identity表示用数据库的生成方式,increment表示框架自己的自增长方式
</id>
<property name="userName" column="user_name" length="20"></property>
<property name="password" column="password" length="32"></property>
</class>
</hibernate-mapping>
获取hibernate的session的方式:
public class HibernateTools {
private static SessionFactory sessionFactory;
private static Configuration cfg = null;
private static ServiceRegistry serviceRegistry;
static{
cfg = new Configuration().configure();//读取hibernate.cfg.xml
serviceRegistry = new StandardServiceRegistryBuilder().applySettings(
cfg.getProperties()).build();
sessionFactory = cfg.buildSessionFactory(serviceRegistry);
}
public static Session getSession(){
return sessionFactory.openSession();
}
}
hibernate中查询语句动态条件的封装方式:
// 第一种方式:直接拼装
String sql = "select * from t_user where user_name like '%" + userName+ "%'";
SQLQuery query = session.createSQLQuery(sql);
// 第二种方式:“:字段”名的方式set拼装
String sql = "select * from t_user where user_name like :name ";
SQLQuery query = session.createSQLQuery(sql);
query.setString("name", "%" + userName + "%");
// 第三种方式:“?”方式set拼装
String sql = "select * from t_user where user_name LIKE ?";
SQLQuery query = session.createSQLQuery(sql);
query.setString(0, "%" + userName + "%");
// 第四种方式:setParameter拼装(可拼装任意类型)
String sql = "select * from t_user where user_name like :userName ";
SQLQuery query = session.createSQLQuery(sql);
query.setParameter("userName", "%" + userName + "%");
// 第五种方式:对象的方式拼装,需要属性名和sql中的“:”后面的名字一样
UserInfoT user = new UserInfoT();
user.setUserName("%" + userName + "%");
String sql = "select * from t_user where user_name like :userName";
SQLQuery query = session.createSQLQuery(sql);
query.setProperties(user);
<hibernate-configuration>
<session-factory>
<!-- 设置数据库的连接信息 -->
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
<!-- 配置驱动程序 -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hibernate117?useUnicode=true&characterEncoding=UTF-8</property>
<property name="connection.username">root</property>
<property name="connection.password">123</property>
<!-- 指定使用c3p0连接池 -->
<property name="hibernate.connection.provider_class">org.hibernate.c3p0.internal.C3P0ConnectionProvider</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.min_size">1</property>
<!-- 检查连接的超时时间,单位毫毛 -->
<property name="hibernate.c3p0.timeout">5000</property>
<!-- 当连接池中连接用完之后,可以设置再次获取的连接数 -->
<property name="hibernate.c3p0.acquire_increment">5</property>
<!-- 设置是否显示SQL语句,以及格式化 -->
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<!-- 设置是否需要同步类的属性名与表中的字段 -->
<property name="hbm2ddl.auto">false</property>
<!-- 告知ORM映射文件的位置 -->
<mapping resource="com/lovo/hibernate/xmls/UserInfoT.hbm.xml" />
</session-factory>
</hibernate-configuration>
在持久成配置相关的映射关系的配置文件:
<hibernate-mapping>
<class name="com.lovo.hibernate.beans.UserInfoT" table="t_user" lazy="true" schema="hibernate117"> //lazy="true" 延迟加载,在需要用到的时候再去获取值
<id name="id" column="id" type="java.lang.Integer">
<generator class="identity"></generator>
//class="identity"主键生成的方式,identity表示用数据库的生成方式,increment表示框架自己的自增长方式
</id>
<property name="userName" column="user_name" length="20"></property>
<property name="password" column="password" length="32"></property>
</class>
</hibernate-mapping>
获取hibernate的session的方式:
public class HibernateTools {
private static SessionFactory sessionFactory;
private static Configuration cfg = null;
private static ServiceRegistry serviceRegistry;
static{
cfg = new Configuration().configure();//读取hibernate.cfg.xml
serviceRegistry = new StandardServiceRegistryBuilder().applySettings(
cfg.getProperties()).build();
sessionFactory = cfg.buildSessionFactory(serviceRegistry);
}
public static Session getSession(){
return sessionFactory.openSession();
}
}
hibernate中查询语句动态条件的封装方式:
// 第一种方式:直接拼装
String sql = "select * from t_user where user_name like '%" + userName+ "%'";
SQLQuery query = session.createSQLQuery(sql);
// 第二种方式:“:字段”名的方式set拼装
String sql = "select * from t_user where user_name like :name ";
SQLQuery query = session.createSQLQuery(sql);
query.setString("name", "%" + userName + "%");
// 第三种方式:“?”方式set拼装
String sql = "select * from t_user where user_name LIKE ?";
SQLQuery query = session.createSQLQuery(sql);
query.setString(0, "%" + userName + "%");
// 第四种方式:setParameter拼装(可拼装任意类型)
String sql = "select * from t_user where user_name like :userName ";
SQLQuery query = session.createSQLQuery(sql);
query.setParameter("userName", "%" + userName + "%");
// 第五种方式:对象的方式拼装,需要属性名和sql中的“:”后面的名字一样
UserInfoT user = new UserInfoT();
user.setUserName("%" + userName + "%");
String sql = "select * from t_user where user_name like :userName";
SQLQuery query = session.createSQLQuery(sql);
query.setProperties(user);
0 0
- Hibernate 2
- hibernate 2
- hibernate 2
- hibernate(2)
- Hibernate(2)
- Hibernate学习(2)----配置Hibernate
- hibernate之2----hibernate缓存
- Hibernate 2与Hibernate 3的区别
- Hibernate 2与Hibernate 3的区别
- Hibernate 2与Hibernate 3的区别
- Hibernate学习2 -- 第一个Hibernate程序
- Hibernate 2与Hibernate 3的区别
- 【hibernate】hibernate 2 (基本概念和CURD)
- 才高行厚的hibernate(2)---hibernate的映射
- 才高行厚的hibernate(2)---hibernate的映射
- 【Hibernate】(2)Hibernate配置与session、transaction
- Hibernate学习(2)------ Hibernate的配置文件
- Struts+Hibernate+Spring学习心得(2)Hibernate
- UISearchBar 去掉灰色边框
- 【C++ STL】算法 <algorithm>中各种算法解析
- MySQL学习笔记—自定义函数
- java的数据类型
- mybatis java.lang.NullPointerException
- hibernate(2)
- 简单递归
- js判断为空Null与字符串为空简写方法
- SSH免密码登陆
- C++ STL学习经典
- c++第三次作业
- C++: 浅谈虚函数、纯虚函数
- JDBC连接数据库
- java HashMap详解,剖析