有关hibernate入门小实例--hibernate+mysql

本文是作者学习hibernate的初步记录,通过创建javaproject,导入hibernate相关jar包,建立数据库表并映射到实体类,配置hibernate.cfg.xml,最后编写测试类进行数据的插入与查询。详细介绍了hibernate连接mysql数据库的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

          最近接触到了hibernate在这里简单记录下我的学习体会,好了废话不多说,直接开始:

  一、简单说下我的项目结构,先建立一个javaproject→导入与Heibernate相关的jar包→建立相关文件。请看下图:

dd

二、在MySql数据库中建立个表,作为java实体类映射的对象,我们将表名设为:student。建表语句如下:

CREATE TABLE `student` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `stuName` varchar(20) DEFAULT '',
  `cardId` varchar(20) NOT NULL DEFAULT '',
  `age` varchar(4) DEFAULT '',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

注意:这里的auto_increment是mysql表的自增主键。用户插入数据时不用管主键“id”,因为已经设置为自增了。

三、在test1项目下建立包同时在其下面建立持久化实体类:Student.java

package test;


public class Student {
  private int id;
  private String cardId;
  private String stuName;
  private String age;


public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getCardId() {
return cardId;
}
public void setCardId(String cardId) {
this.cardId = cardId;
}
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
  
}

四、在test包下面建立Hibernate映射文件:Student.hbm.xml(注意千万别把DTD头写错了):

<?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 package="test">
<class name="Student" table="student">
<id name="id">
<generator class="native" />
</id>
<property name="cardId" type="java.lang.String" />
<property name="stuName" type="java.lang.String" />
<property name="age" type="java.lang.String" />
  </class>
</hibernate-mapping>

五、在test1项目下的src里面建立配置文件:hibernate.cfg.xml(注意导入的包里面必须有mysql-connector-java-5.0.8-bin.jar,这个是注册mysql的驱动,没有他就不能用连接jdbc,还有别忘了写正确数据库的连接参数

<?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 >  
        <!-- mysql数据库驱动 -->  
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>  
        <!-- mysql数据库名称 -->  
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/bar</property>  
        <!-- 数据库的登陆用户名 -->  
        <property name="hibernate.connection.username">root</property>  
        <!-- 数据库的登陆密码 -->  
        <property name="hibernate.connection.password">totyuedu</property>  
        <!--为每一种数据库提供适配器,方便转换 -->  
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>  
        <mapping resource="test/Student.hbm.xml"/>  
    </session-factory>  
</hibernate-configuration>

六、下面就是编写测试文件Test1.java来进行Jdbc操作了。

package test;


import java.util.List;


import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;  
import org.hibernate.SessionFactory;  
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;  
public class Test1 {
@SuppressWarnings("deprecation")
public static void main(String[] args) {
// TODO Auto-generated method stub
try
{
Configuration cfg= new Configuration().configure();
SessionFactory sf=cfg.buildSessionFactory();
        Session session = sf.openSession();
        Transaction tx = session.beginTransaction(); 
        String sql="from Student";
        List<Student> list=null;  
       /* 插入十条记录*/
        for(int i = 0;i < 10;i++){
        Student student = new Student();     
        student.setCardId("student1"+i);
        student.setStuName("student1");
        student.setAge("20");
        session.save(student);    
        }
        /*查询插入的数据同时输出到控制台*/
        Query query = session.createQuery(sql);
        list=query.list();
        for(Student student:list){
        System.out.println(student.getCardId());  
        }
        tx.commit();
        session.close();
}catch(HibernateException e){
e.printStackTrace();
}
        }


}

七、控制台数据测试数据如下:

wwwww


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值