zoukankan      html  css  js  c++  java
  • 基础、hibernate目前应用的对比

    * ***************************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(" "); } // 完成后关闭 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!"); } }

  • 相关阅读:
    Android设置RadioButton在文字的右边
    如何创建启动界面Splash Screen
    sqlite3 数据类型 批量插入
    为PopupWindow设置弹出动画效果
    android activity生命周期
    Eclipse快捷键大全
    SQLite的使用
    创建窗口式Activity
    Android中实现按钮自动隐藏
    android技术片段
  • 原文地址:https://www.cnblogs.com/wby-666/p/9778355.html
Copyright © 2011-2022 走看看