hibernate入门实例

###Hibernate5简单应用实例

1.下载Hibernate所需jar包
2.新建java项目,并导入jar包
3.新建User.java文件,User类的属性于数据库表的字段一一对应

-- ----------------------------
-- Table structure for `p_user`
-- ----------------------------
DROP TABLE IF EXISTS `p_user`;
CREATE TABLE `p_user` (
  `user_id` int(11) NOT NULL AUTO_INCREMENT,
  `user_name` varchar(20) DEFAULT NULL,
  `user_pwd` varchar(20) DEFAULT NULL,
  `user_email` varchar(30) DEFAULT NULL,
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of p_user
-- ----------------------------
INSERT INTO `p_user` VALUES ('1', 'yxc', '123456', 'for@163.com');
INSERT INTO `p_user` VALUES ('2', '张飞', '123456', '1324688478@qq.com');
INSERT INTO `p_user` VALUES ('5', '李四', '123456', null);
INSERT INTO `p_user` VALUES ('6', 'LeBronJames', '123456', '1324688478@qq.com');
package com.model;

public class User {
    private int userId;  //用户编号
    private String userName; //用户名
    private String userPwd;  //密码
    private String userEmail;//邮箱

    public int getUserId() {
        return userId;
    }

    public String getUserName() {
        return userName;
    }

    public String getUserPwd() {
        return userPwd;
    }

    public String getUserEmail() {
        return userEmail;
    }

    public void setUserId(int userId) {
        this.userId = userId;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public void setUserPwd(String userPwd) {
        this.userPwd = userPwd;
    }

    public void setUserEmail(String userEmail) {
        this.userEmail = userEmail;
    }
}

4.新建User.hbm.xml文件,建立User类和p_user表的映射关系

<?xml version="1.0"?>
<!--
  ~ Hibernate, Relational Persistence for Idiomatic Java
  ~
  ~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.
  ~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
  -->
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="com.model.User" table="p_user" lazy="false">
        <id name="userId" column="user_id">
            <generator class="increment"/>
        </id>

        <property name="userName" type="java.lang.String">
            <column name="user_name" length="30"/>
        </property>
        
        <property name="userPwd" type="java.lang.String">
            <column name="user_pwd"/>
        </property>
        <property name="userEmail" type="java.lang.String">
            <column name="user_email"/>
        </property>
    </class>

</hibernate-mapping>

5.在src目录下新建hibernate.cfg.xml文件


  <!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password">Root</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost/pblog</property>
    <property name="hibernate.show_sql">true</property>
    <mapping resource="com/model/User.hbm.xml"/>
    <mapping class="com.model.User"/>
    </session-factory>
</hibernate-configuration>

6.创建HibernateUtil工具类,用来获取hibernate的session对象

package com.utils;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;

public class HibernateUtil {
    private static SessionFactory factory = null;

    static {
        Configuration configuration = new Configuration().configure();
        ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()
                .applySettings(configuration.getProperties())
                .buildServiceRegistry();
        factory = configuration.buildSessionFactory(serviceRegistry);
    }

    public static Session getSession() {
        return factory.openSession();
    }
}

7.创建UserDao.java文件,对User进行增删改查操作

package com.dao;

import com.model.User;
import com.utils.HibernateUtil;
import org.hibernate.Session;
import org.hibernate.Transaction;

public class UserDao {
    public User getUserByID(int id)
    {
        Session session = HibernateUtil.getSession();
        User user = (User)session.get(User.class, id);
        session.close();
        return user;
    }

    public void addUser(User user) {
        Session session = HibernateUtil.getSession();
        Transaction ts = session.beginTransaction();
        session.save(user);
        ts.commit();
        session.close();
    }

    public void updateUser(User user) {
        Session session = HibernateUtil.getSession();
        Transaction ts = session.beginTransaction();
        session.saveOrUpdate(user);
        ts.commit();
        session.close();
    }

    public void deleteUser(User user) {
        Session session = HibernateUtil.getSession();
        Transaction ts = session.beginTransaction();
        session.delete(user);
        ts.commit();
        session.close();
    }
}

8.测试运行

package com.test;

import com.dao.UserDao;
import com.model.User;

public class Test {
    public static void main(String[] args) {

        User user=new User();
        user.setUserName("LeBronJames");
        user.setUserPwd("123456");
        user.setUserEmail("1324688478@qq.com");

        UserDao userDao=new UserDao();
        userDao.addUser(user);
    }
}

查看控制台打印信息

Hibernate: select max(user_id) from p_user
Hibernate: insert into p_user (user_name, user_pwd, user_email, user_id) values (?, ?, ?, ?)

实现了往数据库中插入一条记录的操作
获取源码地址https://github.com/yangxuechen/ssh-learning-example/tree/master/HibernateTest

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值