记录一下成功的第一个hibernate。
使用 eclipse 创建第一个 hibernate 应用详解(User类连mysql数据库+hibernate的3版本-含jar包 含代码)
前言
本项目名为hyt_hibernate1,创建了包User,建实体类User,有实现类 UserTest,有类的User.hbm.xml文件,有hibernate.cfg.xml文件,连mysql数据库,实现 userId 自增插入。
一、创建项目并导入jar包
- 首先创建Java Project项目并命名:
- 实现 hibernate 需要选中 hyt_hibernate1 并右键 建立同级目录下的 lib 文件夹,导入相应版本的 hibernate 的 jar 包,此处我实现项目所需所有 jar 包如下所示:
对于怎样将 lib 文件中所有 jar 包添加路径 BuildPath 到 Referenced Libraries,一种方法我通过在此文章-> 解决问题 中图片介绍过,即全选 jar 包右键 BuildPath->Configure Build Path…,另一种方法则也可直接通过 Add to… 添加 。
- 注意:这里的lib文件中有所需的相关jar包资源是 hibernate 的3.版本实现的,不是 hibernate 的4.或5.版本。
需要的话可以自取,网盘链接永久有效OUO:
链接:https://pan.baidu.com/s/1KLwSZF421KXmbSfX4_1lCg
提取码:ot7q
二、添加hibernate插件
- 在eclipse中下载hibernate相关JBoss Tools插件:
- 搜索 hibernate,安装JBoss Tools插件,点击 Install 会显示安装,只选择安装 Hibernate Tools 即可:
三、创建hibernate.cfg.xml
代码如下(示例):
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory >
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/firsthibernate</property>
<property name="connection.username">root</property>
<property name="connection.password">560108</property>
<property name="show_sql">true</property>
<mapping resource="User/User.hbm.xml" />
</session-factory>
</hibernate-configuration>
注:
此处jdbc:mysql://localhost:3306/firsthibernate <- 放的是自己的数据库名
<property name="connection.url">jdbc:mysql://localhost:3306/firsthibernate</property>
密码写自己数据库密码:
<property name="connection.password">560108</property>
四、创建firsthibernate数据库
- 在mysql中 创建名为firsthibernate的数据库, 并建立相应数据库表, 如下所示:
五、创建User类及hbm.xml配置生成
- 在src目录下创建命名为User的包, 在包中建立实体类User.java,对相关属性生成get与set方法, id设置为assigned方式:
- User类代码如下:
package User;
public class User {
private int userId;
private String userName;
private String age;
private String sex;
private String email;
private String address;
public User(String userName, String age, String sex, String email, String address) {
super();
this.userName = userName;
this.age = age;
this.sex = sex;
this.email = email;
this.address = address;
}
public User() {
super();
}
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "User [userId=" + userId + ", userName=" + userName + ", age=" + age + ", sex=" + sex + ", email=" + email
+ ", address=" + address + "]";
}
}
- User类的User.hbm.xml右键src生成配置代码如下:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2021-5-24 21:48:43 by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
<class name="User.User" table="USER">
<id name="userId" type="int">
<column name="USERID" />
<generator class="increment" />
</id>
<property name="userName" type="java.lang.String">
<column name="USERNAME" />
</property>
<property name="age" type="java.lang.String">
<column name="AGE" />
</property>
<property name="sex" type="java.lang.String">
<column name="SEX" />
</property>
<property name="email" type="java.lang.String">
<column name="EMAIL" />
</property>
<property name="address" type="java.lang.String">
<column name="ADDRESS" />
</property>
</class>
</hibernate-mapping>
六、建UserTest类运行 及 完成效果演示
- 创建UserTest类来进行测试,UserTest.java中代码如下所示:
package User;
import org.hibernate.*;
import org.hibernate.cfg.Configuration;
import java.util.*;
import User.User;
public class UserTest {
public static void main(String[] args) {
SessionFactory sessionFactory = null;
Configuration configuration = new Configuration().configure();
sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
User user = new User("hyt","20","F","1940223386@qq.com","哈尔滨");
//User user = new User("XXX","20","F","1814010507@163.com","盘锦");
session.save(user);
transaction.commit();
session.close();
sessionFactory.close();
}
}
- 运行成功后 Console 中输出执行的SQL语句:
- 刷新数据库即可看见刚插入信息:
到这里就完成了 hibernate 连接数据库基础的实现OVO
但对于还想继续插入数据来说,不可再在代码中创建个新 User 类对象,因为插入数据库id主键冲突,解决方法如下: - 将User.hbm.xml的id配置改为 increment ,使得每次插入数据前都会自动计算一下最大userId数并进行userId自增插入:
- 这样即可进行改值后在数据库中插入新信息:
- 数据库显示:
总结
记录完成,其实只实现了hibernate基础,欢迎大家留言= v =
参考链接感谢OUO:
https://blog.csdn.net/jintingbo/article/details/81181493.