* ***************************hibernate** *****************************

一.导包   mysql
二.在默认src下创建hibernate.cfg.xml  

1.创建xml文件,命名为hibernate.cfg.xml

2.添加约束
   (在org.hibernate/hibernate-configuration-3.0.dtd中)

1   <!DOCTYPE hibernate-configuration PUBLIC
2 "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
3 "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.url">jdbc:mysql://localhost:3306/houserentsys</property> <!-- houserentsys是数据库名称 --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.username">root</property>
<property name="connection.password">123456</property> <property name="show_sql">true</property>
<property name="format_sql">false</property> <!-- 设置为false就会不换行 -->
<property name="hbm2ddl.auto">update</property> <!-- 进行操作时不会删除重建--> <!--hbm2ddl.auto属性:
   
create:表示启动的时候先drop,再create
   c
reate-drop: 也表示创建,只不过再系统关闭前执行一下drop
   
update: 这个操作启动的时候会去检查schema是否一致,如果不一致会做scheme更新
   
validate: 启动时验证现有schema与你配置的hibernate是否一致,如果不一致就抛出异常,并不做更新
-->
<mapping resource="edu/tsinghua/entity/mapping/district.xml"/>
<mapping resource="edu/tsinghua/entity/mapping/street.xml"/> </session-factory>
</hibernate-configuration>

hbm2ddl.auto属性:
   create:表示启动的时候先drop,再create
   create-drop: 也表示创建,只不过再系统关闭前执行一下drop
   update: 这个操作启动的时候会去检查schema是否一致,如果不一致会做scheme更新
   validate: 启动时验证现有schema与你配置的hibernate是否一致,如果不一致就抛出异常,并不做更新

三.实体  实现序列化接口  封装属性和构造方法    实体.xml  位置随意
   (在org.hibernate/hibernate-mapping-3.0.dtd中)
   <!DOCTYPE hibernate-mapping PUBLIC 
      "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
      "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
     在hibernate.cfg.xml 添加 映射文件的引用
   <mapping resource="edu.tsinghua.entity.mapping.district"/>
七个步骤(在新建的执行文件Test.java中)
  //1.加载配置文件
  Configuration cfg=new Configuration().configure();
  //2.获得sessionfactory
  ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(cfg.getProperties()).buildServiceRegistry();
  SessionFactory sf=cfg.buildSessionFactory(serviceRegistry);
  //3.创建session
  Session session=sf.openSession();
  //4.创建事务
  Transaction tx=session.beginTransaction();
  //5.操作
  District dis=new District(100,"海淀区");
  session.save(dis);
  //6.提交 回滚
  tx.commit();//tx.rollback();
  //7.释放资源
  session.close();
  sf.close();

** ****************************框架** ************************************

String sql = " select districtcode, sum(amountSubsidies) amountsubsidies"

+" from tb_areawatersupply  a where bzYear='"+fyear+"' group by districtCode order by districtCode ";

SQLQuery sqlQuery = getSession().createSQLQuery(sql.toString());

sqlQuery.addScalar("districtcode", StringType.INSTANCE);

sqlQuery.addScalar("amountsubsidies", DoubleType.INSTANCE);

List<TbAreawatersupply> list = (List<TbAreawatersupply>) sqlQuery.setResultTransformer(

Transformers.aliasToBean(TbAreawatersupply.class)).list();

** *************************************基础*** ****************************************************

publicclassMySQLDemo {

// JDBC 驱动名及数据库 URLstaticfinalStringJDBC_DRIVER = "com.mysql.jdbc.Driver";
staticfinalStringDB_URL = "jdbc:mysql://localhost:3306/RUNOOB";

// 数据库的用户名与密码,需要根据自己的设置
staticfinalStringUSER = "root";
staticfinalStringPASS = "123456";

publicstaticvoidmain(String[] args) {
Connectionconn = null;
Statementstmt = null;
try{
// 注册 JDBC 驱动
Class.forName("com.mysql.jdbc.Driver");

// 打开链接
System.out.println("连接数据库...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);

// 执行查询
System.out.println(" 实例化Statement对象...");
stmt = conn.createStatement();
Stringsql;
sql = "SELECT id, name, url FROM websites";
ResultSetrs = stmt.executeQuery(sql);

// 展开结果集数据库
while(rs.next()){
// 通过字段检索
intid = rs.getInt("id");
Stringname = rs.getString("name");
Stringurl = rs.getString("url");

// 输出数据
System.out.print("ID: " + id);
System.out.print(", 站点名称: " + name);
System.out.print(", 站点 URL: " + url);
System.out.print("\n");
}
// 完成后关闭
rs.close();
stmt.close();
conn.close();
}catch(SQLExceptionse){
// 处理 JDBC 错误
se.printStackTrace();
}catch(Exceptione){
// 处理 Class.forName 错误
e.printStackTrace();
}finally{
// 关闭资源
try{
if(stmt!=null)stmt.close();
}catch(SQLExceptionse2){
}// 什么都不做
try{
if(conn!=null)conn.close();
}catch(SQLExceptionse){
se.printStackTrace();
}
}
System.out.println("Goodbye!");
}
}

基础、hibernate目前应用的对比的更多相关文章

  1. Hibernate与MyBatis的对比

    Hibernate与MyBatis的对比总结,希望大家指出不对之处. 第一章 Hibernate与MyBatis Hibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现 ...

  2. Hibernate与MyBatis的对比总结

    最近做了一个Hibernate与MyBatis的对比总结,希望大家指出不对之处. 第一章     Hibernate与MyBatis Hibernate 是当前最流行的O/R mapping框架,它出 ...

  3. JAVA面试-HIBERNATE与 MYBATIS的对比

    JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结   我是一名java开发人员,hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践 ...

  4. Flink入门-第一篇:Flink基础概念以及竞品对比

    Flink入门-第一篇:Flink基础概念以及竞品对比 Flink介绍 截止2021年10月Flink最新的稳定版本已经发展到1.14.0 Flink起源于一个名为Stratosphere的研究项目主 ...

  5. JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结

    我是一名java开发人员,hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和 ...

  6. Hibernate和Mybatis的对比

    http://blog.csdn.net/jiuqiyuliang/article/details/45378065 Hibernate与Mybatis对比 1. 简介 Hibernate:Hiber ...

  7. JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结(转)

    hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和学习,使自己在做项目中更加 ...

  8. (转)HIBERNATE与 MYBATIS的对比

    第一方面:开发速度的对比 就开发速度而言,Hibernate的真正掌握要比Mybatis来得难些.Mybatis框架相对简单很容易上手,但也相对简陋些.个人觉得要用好Mybatis还是首先要先理解好H ...

  9. HIBERNATE与 MYBATIS的对比

    我是一名java开发人员,hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和 ...

随机推荐

  1. xml 和 json 序列化忽略字段

    xml 和 json 序列化忽略字段: @JsonIgnore @XmlTransient

  2. AARRR海盗模型简介

    整理下AARRR模型的概念.实际应用场景等问题,初步感觉这个模型主要应用在APP应用分析中. 1.什么是AARRR模型 AARRR是Acquisition.Activation.Retention.R ...

  3. (Review cs231n) BN and Activation Function

    CNN网络的迁移学习(transfer learning) 1.在ImageNet上进行网络的预训练 2.将最上方的层,即分类器移除,然后将整个神经网络看成是固定特征提取器来训练,将这个特征提取器置于 ...

  4. 史上最全的PHP常用函数大全,不看看你就out了(还会不断更新哦!)

    纪录了PHP的一些常用函数和函数代码!不要错过了哦. PHP的一些常用函数usleep() 函数延迟代码执行若干微秒.unpack() 函数从二进制字符串对数据进行解包.uniqid() 函数基于以微 ...

  5. 如何在eclipse添加SVN菜单

    首先需要在eclipse中安装svn插件,这个网上教程很多 那么我来说下如何在将svn添加到菜单中去吧. 很简单,

  6. 文件上传中UUID的解读

    UUID简介如下:1.简介UUID含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software F ...

  7. sliver

    import 'package:flutter/material.dart';import 'package:xxx/bloc/bloc.dart';import 'package:xxx/model ...

  8. Servlet运行原理以及生命周期

    一.Servlet生命周期: Servlet加载.实例化.初始化.服务.销毁. 1.初始化init(): 当服务启动时,Servlet被装入tomcat或者其他服务器容器时执行(服务器容器从启动到停止 ...

  9. 在数据库级别还是在service层进行级联删除

    在数据库配置级联删除的话,父表删除子表也删除.但是应该将维护代码放在一处,不要在service上删除父表,而在数据库层面级联删除子表,应该都在service层上进行删除.

  10. Ubuntu如何自定义tftp服务根目录

    答:修改/etc/default/tftpd-hpa中的TFTP_DIRECTORY即可,默认TFTP_DIRECTORY="/var/lib/tftpboot"