• hibernate例子


    首先下载好hibernate包

    如果运行之后出现数据库连接错误  则重新把jar包位置放在web-inf的lib下面再addbulidpath

    第一步:创建实体类

    Hibernate要求实体类必须提供一个不带参数的默认构造方法。因为程序运行时,Hibernate会运用java的反射机制,创建实体类的实例。

    package hibernateDemo;
     
    public class User {
        private int id;   
        private String name;
        private String password;
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
     
    }

    第二步:在MySql中创建对应的数据表

     CREATE DATABASE hibernate;
                USE hibernate;
                CREATE TABLE USER(
                    id INT PRIMARY KEY AUTO_INCREMENT,
                    name VARCHAR(50),
                    password VARCHAR(50) 
                );

    第三步:创建Hibernate的配置文件,放在src目录下,文件名为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.driver_class">com.mysql.jdbc.Driver</property>
            <property name="connection.url">jdbc:mysql://127.0.0.1:3306/hibernate_database</property>
            <property name="connection.username">root</property>
            <property name="connection.password">admin</property>
    
            <!-- 配置数据库方言 -->
            <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
            <!-- 全局 -->
            <property name="hibernate.hbm2ddl.auto">update</property>
    
             <property name="show_sql">true</property><!-- //显示sql语句 -->
             <property name="format_sql">true</property><!-- //格式化sql语句 -->
             
                <!--            没有这句话不会改变数据库 -->
             <property name="hibernate.connection.autocommit">true</property>
    
    
     
        <mapping resource="hibernateDemo/User.hbm.xml"/><!--  映射信息 -->
     
    </session-factory>
    </hibernate-configuration> 

    第四步:创建对象-关系映射文件 该文件应该和实体类在同一目录下。命名规则为 实体类名.hbm.xml 例如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="hibernateDemo.User" table="user">
        <id name="id" column="id">
            <generator class="native"></generator>
        </id>
        <property name="name" column="name"></property>
        <property name="password" column="password"></property>
    </class>
    </hibernate-mapping> 

    第五步:测试类

    package test;
    
    import hibernateDemo.User;
    
    
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
    import org.junit.Test;
    import org.hibernate.Transaction;
    
     public class test {
         
         Transaction tx;
                    @Test
                    public void test1() {
                        //读取配置文件
                        Configuration conf=new Configuration().configure();
                        //根据配置创建factory
                        SessionFactory sessionfactory=conf.buildSessionFactory();
                        //获得操作数据库的session对象
                        Session session=sessionfactory.openSession(); 
                        //创建对象新增
                      User u=new User();
                       u.setName("liu三");
                       u.setPassword("123456");
                       //将对象保存到数据库
                        session.save(u);
                        
                     // 查询方式1
    //                     User user = (User)session.get(User.class, 2);
    //                    System.out.println(user.getName());
                        
              
                        //修改
                     /*   User user = (User)session.get(User.class, 2);
                        user.setName("李王二");
                        Transaction tx=session.beginTransaction();
                        session.update(user);
                        tx.commit();*/
                        
                        //删除
                      /*  User user = (User)session.get(User.class, 4);
                        Transaction tx=session.beginTransaction();
                        session.delete(user);
                        tx.commit();*/
                        
                        
                        //关闭资源
                        session.close();
                        sessionfactory.close();
                    }
     
    }
  • 相关阅读:
    tabbar 旋转指定的页面
    GDAL中文路径不能打开&Shp文件字段属性值中文乱码
    Project : error PRJ0019: 工具从"Moc'ing xxx.h..."
    详解Android中的屏幕方向
    qt中获取文件路径和文件名
    vs2005下Qt项目中修改exe图标的方法
    Qt & C/C++统计运行时间
    Qt 中Treewidget添加右键菜单
    QT 中文乱码解决方案
    Qt多线程应用QRunnable显示进度条示例
  • 原文地址:https://www.cnblogs.com/MagicAsa/p/10419519.html
Copyright © 2020-2023  润新知