学习笔记: hibernate的环境搭建和增删改查
来源:互联网 发布:台达plc温度模块编程 编辑:程序博客网 时间:2024/06/08 00:10
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="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<property name="hibernate.connection.url">jdbc:sqlserver://localhost:1433;DatabaseName=BK</property>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password">112358</property>
<!-- 当发现报dialect was not set时说明name=“方言”没写对 -->
<property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
<!-- 控制台显示sql -->
<property name="hibernate.show_sql">true</property>
<mapping resource="hibernate/User.hbm.xml"></mapping>
</session-factory>
</hibernate-configuration>
**********************************************************************************************************************************
hibernate.UserT
package hibernate;
import java.util.Date;
public class UserT {
private String id;
private String name;
private Date createTime;
private Date exprieTime;
..........get,set方法
}
**********************************************************************************************************************************
User.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="hibernate.UserT" table="UserT2"><!-- 不预设表名,创建表时就会以实体类名命名 -->
<!-- 对主键设置 -->
<id name="id" column="id"><!-- 主键名相同就不需要映射 -->
<!-- generator是对主键("id")的设置 -->
<generator class="uuid"></generator>
</id>
<!-- 若表中字段和类中属性名称一样就不许要设置,名称对应关系,不一样就需要设置 -->
<!-- type中的类型需要 小写 不然会报错 -->
<!-- name属性必须,其余属性据情况而论 -->
<property name="name" type="string" column="name" not-null="true" length="1000"></property>
<property name="createTime" ></property>
<property name="exprieTime" ></property>
</class>
</hibernate-mapping>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="hibernate.UserT" table="UserT2"><!-- 不预设表名,创建表时就会以实体类名命名 -->
<!-- 对主键设置 -->
<id name="id" column="id"><!-- 主键名相同就不需要映射 -->
<!-- generator是对主键("id")的设置 -->
<generator class="uuid"></generator>
</id>
<!-- 若表中字段和类中属性名称一样就不许要设置,名称对应关系,不一样就需要设置 -->
<!-- type中的类型需要 小写 不然会报错 -->
<!-- name属性必须,其余属性据情况而论 -->
<property name="name" type="string" column="name" not-null="true" length="1000"></property>
<property name="createTime" ></property>
<property name="exprieTime" ></property>
</class>
</hibernate-mapping>
**********************************************************************************************************************************
hibernate.Client
import java.util.Date;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
Configuration cfg=new Configuration().configure();//读取hibernate配置文件
//创建表,若表名未设置则会默认以实体类名命名,另外表名若是已存在会被删除重修创建
SchemaExport export=new SchemaExport(cfg);
//export.create(true, true);
SessionFactory factory=cfg.buildSessionFactory();//建立Sessionfactory
Session session=null;//获取session
try{
session=factory.openSession();
session.beginTransaction();//开始事物
UserT userT=new UserT();
//插入操作
//userT.setId("7");//若预设了主键生成方式(此处是uuid),在此set也没用
//userT.setName("超人");
//userT.setCreateTime(new Date());
//userT.setExprieTime(new Date());
//session.save(userT);//保存userT对象
//session.getTransaction().commit();//开启事务
//全体查询 HQL方式
//Query query=session.createQuery("from UserT where name='超人' ");//UserT不是表名,而是实体类名
//List list=query.list();
//System.out.println(list);
// session.getTransaction().commit();
//根据主键查询
//userT=(UserT)session.get(UserT.class,"2" );
//System.out.println(userT);
//session.getTransaction().commit();
//根据id删除(方式1)按照主键删除
//userT=(UserT)session.get(UserT.class,"2c90e6dd5c7b3b9e015c7b3ba0fd0001");
//session.delete(userT);
//session.getTransaction().commit();
//根据id删除(方式2)按照主键删除
//userT.setId("5");
//userT.setName("超人");//非空字段也需要写上
//session.delete(userT);
//session.getTransaction().commit();
////使用HQL删除
//Query query=session.createQuery(" delete FROM UserT Where name= ? ");
//query.setString(0,"钢铁侠");
//query.executeUpdate();
//session.getTransaction().commit();
//更新(按照主键更新)
//userT=(UserT) session.get(UserT.class, "2c90e6dd5c772efd015c772efff20001");
//userT.setName("钢铁侠");
//userT.setCreateTime(new Date());
//session.update(userT);
//session.getTransaction().commit();
//使用HQL更新
//Query query=session.createQuery("update UserT set name=?,id=? where name =? and id='2c90e6dd5c7b3b70015c7b3b73400001'" );
//query.setString(0, "超人");
//query.setString(1, "2");
//query.setString(2,"钢铁侠");
//query.executeUpdate();
//session.getTransaction().commit();
userT=(UserT) session.load("UserT", "1");
System.out.println(userT.getName());
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();//回滚事务
}finally{
if(session!=null){
if(session.isOpen()){
session.close();//关闭事务
}
}
}
}
}
阅读全文
0 0
- 学习笔记: hibernate的环境搭建和增删改查
- 学习笔记:mybaits的环境搭建和增删改查操作
- hibernate的环境搭建及简单的增删改查
- hibernate环境的搭建和对数据库表的增删改查。(配图解详解)
- Hibernate(一)—环境搭建和基本的增删改查
- Java学习笔记之Hibernate-Hibernate入门和单表增删改查
- 学习笔记:mySQL的增删改查
- Hibernate的增删改查
- Hibernate的增删改查
- Hibernate的增删查改
- Hibernate的增删改查
- Hibernate 的增删改查
- Hibernate的增删改查
- hibernate的增删改查
- Hibernate的增删改查
- Hibernate的增删改查
- hibernate的增删改查
- Hibernate的增删查改
- LeetCode 46. Permutations
- 什么是闭包?闭包的优缺点?
- kaldi中文语音识别thchs30模型训练代码功能和配置参数解读
- 输出二叉树中和为某一值得路径
- Pixhawk遥控器无法检测&bootloader烧写
- 学习笔记: hibernate的环境搭建和增删改查
- spring boot 获取application.properties文件内容
- 10分钟快速理解依赖注入
- jquery+spring mvc 带文件提交
- 字符串pool 引用相加和字面量相加
- iOS 打印Unicode码转中文的解决办法
- iOS UITextView增加链接 交互
- 利用python实现简单的爬虫,爬百度文库相关词条信息
- win下使用realsense进行数据修正并获取三维坐标