美文网首页
第一次作业 ORM框架环境配置及DEMO

第一次作业 ORM框架环境配置及DEMO

作者: 钢笔苹果大菠萝笔 | 来源:发表于2018-05-07 23:01 被阅读0次

    前提:
    建一个数据库
    步骤:
    一.导包(hibernate\lib\required下10个+日志2个+mysql驱动1个)
    二.实体类(提供属性)
    三.两个文件(.cfg.xml+.hbm.xml)
    四.测试类(使用)

    一、导包

    1.导入hibernate所用的包


    导入hibernate所用的包

    2.导入mysql驱动的jar包(驱动的第一次使用)

    导入mysql驱动的jar包

    3.导入两个日志包


    日志1
    日志2

    前提:
    idea载入数据库

    View → Tool Windows → database → Data Source Properties → My SQL
    地址localhost或者127.0.0.1都是本地

    idea载入数据库

    把数据库驱动加上(驱动第二次使用)


    把数据库驱动加上

    二.创建实体类

    TestEntity(基本就是getter and setter)

    package com;
    public class TestentityEntity {
    
        private int Tid;
    
        private String Tname;
    
        public int getTid() {
    
            return Tid;
    
        }
    
        public void setTid(int tid) {
    
            Tid = tid;
    
        }
    
        public String getTname() {
    
            return Tname;
    
        }
    
        public void setTname(String tname) {
    
            Tname = tname;
    
        }
    
    }
    

    三.创建映射文件

    TestentityEntity.hbm.xml (idea自己写会出现找不到表名解决方案在后面)
    放在src目录下

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC
            "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
            "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
    <hibernate-mapping>
        <!-- name代表的是实体类名,table代表的是表名 -->
        <class name="com.TestentityEntity" table="entity1">
            <!-- name=id代表的是customer类中属性  column=id代表的是table表中的字段 -->
            <id name="tid" column="id">
                <!-- 主键生成策略 -->
                <generator class="native"/>
            </id>
            <!-- 其他属性使用property标签来映射 -->
            <property name="tname" column="username" type="string"/>
        </class>
    </hibernate-mapping>
    

    第二个文件 hibernate.cfg.xml

    <hibernate-configuration>
        <!-- 通常,一个session-factory节点代表一个数据库 -->
        <session-factory>
    
            <!-- 1. 数据库连接配置 -->
            <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
            <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test1</property>
            <property name="hibernate.connection.username">root</property>
            <property name="hibernate.connection.password">root</property>
            <!--            数据库方法配置, hibernate在运行的时候,会根据不同的方言生成符合当前数据库语法的sql         -->
            <property name="hibernate.dialect">org.hibernate.dialect.MySQL57Dialect</property>
    
            <!-- 2. 其他相关配置 -->
            <!-- 2.1 显示hibernate在运行时候执行的sql语句 -->
            <property name="hibernate.show_sql">true</property>
            <!-- 2.2 格式化sql -->
            <property name="hibernate.format_sql">true</property>
    
    
            <!--3. 加载所有映射-->
            <mapping resource="com/TestentityEntity.hbm.xml"/>
    
        </session-factory>
    </hibernate-configuration>
    

    加载映射的位置是映射文件.hbm.xml所在位置


    四.创建测试类

    import com.TestentityEntity;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.cfg.Configuration;
    import org.hibernate.Session;
    
    public class Test {
        public static void main(String[] args) {
            //创建对象
            TestentityEntity user = new TestentityEntity();
            user.setTid(3);
            user.setTname("doro");
    
            //获取加载配置管理类
            Configuration configuration = new Configuration();
    
            //不给参数就默认加载hibernate.cfg.xml文件,
            configuration.configure();
    
            //创建Session工厂对象
            SessionFactory factory = configuration.buildSessionFactory();
    
            //得到Session对象
            Session session = factory.openSession();
    
            //使用Hibernate操作数据库,都要开启事务,得到事务对象
            Transaction transaction = session.getTransaction();
    
            //开启事务
            transaction.begin();
    
            //把对象添加到数据库中
            session.save(user);
    
            //提交事务
            transaction.commit();
    
            //关闭Session
            session.close();
        }
    }
    

    查看数据库


    数据成功添加

    遇到问题:

    dos下net start mysql 打不开mysql

    问题原因:mysql服务没有安装。

    解决办法: 在 mysql bin目录下 以管理员的权限 执行 mysqld -install命令

    然后仍然以管理员的权限 net start mysql 开启Mysql服务了。

    1、以管理员的权限 net stop mysql ,关闭mysql服务

    2、以管理员的权限 mysqld -remove ,卸载mysql服务


    上面说到的映射文件找不到表位置 映射文件找不到表位置

    原因:映射文件没匹配上

    解决方法: 解决方法
    匹配或 生成之后再修改

    数据库创建指令

    创建数据库test1 显示数据库

    创建表

    未解决疑问

    分不清属性名

    分不清属性名是tid还是Tid


    hbm.xml

    在hbm.xml文件中属性名无论是tid还是Tid都能成功。

    相关文章

      网友评论

          本文标题:第一次作业 ORM框架环境配置及DEMO

          本文链接:https://www.haomeiwen.com/subject/kqubrftx.html