hibernate5.0操作db2数据库

1.准备9个jar包

hibernate1.PNG

2.准备两个配置文件一个实现类

hibernate2.PNG

##hibernate.cfg.xml连接数据库,配置数据库entity映射文件
<?xml version="1.0" encoding="UTF-8"?>
<!--文档说明:标记约束文档 -->
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!--Hibernate的配置信息 -->
<hibernate-configuration>
    <!--配置工厂信息,全局信息 -->
    <session-factory>
        <!--1、设置四本一言  -->
        <!--四本一言 四大基本项: 1、驱动类名 2、指明需要连接的url 3、用户名 4、密码 Hibernate支持不同的数据库,但是每种数据库语法可能有区别,可以使用方言,注意版本 -->
        <!--数据库驱动类全称  -->
        <property name="hibernate.connection.driver_class">数据库驱动</property>
        <!--数据库url地址  -->
        <property name="hibernate.connection.url">数据库连接地址</property>
        <!--用户名  -->
        <property name="hibernate.connection.username">用户名</property>
        <!--密码  -->
        <property name="hibernate.connection.password">密码</property>
        <!--方言 -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
        <!--2、全局配置信息  -->
        <!--执行DDL的类别:
        create:每次都删除新建·
        update:存在就修改,不存在就新建  -->
        <property name="hibernate.hbm2ddl.auto">update</property>
        <!--是否显示SQL语句  -->
        <property name="hibernate.show_sql">true</property>
        <!--是否格式化SQL语句  -->
        <property name="hibernate.format_sql">true</property>
        <!-- 启用getCurrentSession,默认未启用 -->
        <property name="hibernate.current_session_context_class">thread</property>
        <!--3、加载配置文件  -->
        <!--基于xml映射文件:  数据库实体映射文件加载。路径 -->
        <mapping resource="Student.hbm.xml"></mapping>
         <!--基于xml映射文件: 数据库实体映射文件加载。路径 -->
        <mapping resource="Doctor.hbm.xml"></mapping>
    </session-factory>
</hibernate-configuration>

Student.hbm.xml,数据库实体映射xml

<?xml version="1.0" encoding="UTF-8"?>
<!--文档说明,设置映射文件  -->
<!DOCTYPE hibernate-mapping
        SYSTEM
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd" >
<!--映射标签
 package:内部类的所在的包名 -->
<hibernate-mapping package="com.cc.jdbc">
    <!--需要设置的映射类:设置该类对应的表  -->
    <!--属性:
    name:类名
    table:表名  -->
    <class name="Student" table="Students">
    <!--id:主键,name:属性名称,column:字段名称  -->
        <id name="id" column="id">
            <!--generator:主键生成策略
            class:标记主键如何生成
            取值:
            1、native:自动增长,会根据当前的数据库自动切换
            2、identity:mySQL的自增策略
            3、sequence:Oracle的自增标记
            4、uuid:32位字符串
            5、assigned:自定义字符串
            6、foreign:外键
            7、increment:自己维护自增关系
              -->
<!--oracle使用序列的方式与DB2不同,这是个是db2,oracle使用的<param name="sequence">数据库序列名-->
            <!-- <generator class="sequence"><param name="sequence_name">数据库的序列名</param></generator >-->
        </id>
        <!--配置属性对应的字段  -->
        <property name="name" column="name"/>
        <property name="sex"  column="sex"/>  
    </class>
</hibernate-mapping>

实现类

import org.apache.log4j.Logger;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import com.cc.jdbc.Student;

public class InserImpl{
    private static final Logger logger = Logger.getLogger(InserImpl.class);
    public static Integer addUser(Object u) {
        logger.info("开始入库");
        int result = -1;
        // 1、加载配置文件
        Configuration configuration = new Configuration().configure();
        // 2、创建Session工厂
        SessionFactory factory = configuration.buildSessionFactory();

        // 3、创建Session对象
        Session session = factory.openSession();
        //4、开启事务
        Transaction transaction = session.beginTransaction();
        //5、保存到数据库,持久化操作
        session.save(u);
        //6、提交事务
        transaction.commit();
        //7、关闭会话
        session.close();
        //8、关闭会话工厂
        factory.close();
        result=1;
        logger.info("入库结束");
        return result;
    }
    public static void main(String[] args) {
        Student stu = new Student();
        stu.setName("zard");
        stu.setId(10089);
        stu.setSex("1");
        int i = addUser(stu);
        System.out.println(i);
    }
}

猜你喜欢

转载自blog.csdn.net/sinat_35013716/article/details/80040384