Hibernate入门案例
程序员文章站
2022-06-09 15:01:31
...
项目源码下载
提供MyEclipse和Eclipse下的项目源码以及war文件
假设已经配置好了所有环境(jdk,tomcat,hibernate)
一,创建项目并导入jar包
打开eclipse或myeclipse创建web项目
将Hibernate所需jar包导入到项目的WEB-INF/lib目录中
二,创建数据库及表
在MySQL中创建一个名称为hibernate的数据库,在该数据下创建一张名为user的表
在表中创建两个字段name和password name为主键
三,编写实体类
在src目录下创建名称为cn.itcast.domain的包,在该包下创建实体类User
User.java
package com.itcast.domain;
public class User {
private String name="1";
private String password="1";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [name=" + name + ", password=" + password + "]";
}
}
四,编写映射文件User.hbm.xml
在实体类User的包中创建文件User.hbm.xml
User.hbm.xml
<?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>
<class name="com.itcast.domain.User" table="user">
<id name="name" column="name">
</id>
<property name="password" column="password" type="string"/>
</class>
</hibernate-mapping>
五,编写核心配置文件 hibernate.cfg.xml
在src目录下创建文件hibernate.cfg.xml
hibernate.cfg.xml:
<?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-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.url">
jdbc:mysql://localhost:3306/hibernate
</property>
<!-- 用户名-->
<property name="hibernate.connection.username">
root
</property>
<!-- 密码 -->
<property name="hibernate.connection.password">
your sql password
</property>
<!-- 其他配置 -->
<!-- 显示sql语句 -->
<property name="hibernate.show_sql">true</property>
<!-- 格式化sql语句 -->
<property name="hibernate.format_sql">true</property>
<!-- 关联hbm配置文件 -->
<mapping resource="com/itcast/domain/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
注:数据库登录用户名和密码填你自己的数据库的账户和密码
六,编写测试类,进行增删查改
在src目录项创建名为cn.itcast.test的包,在改包创建类UserTest
在该类里面添加四个测试方法:insertTest() updateTest() findByNameTest() deleteByName()
UserTest.java:
package com.itcast.test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;
import com.coderyx.domain.User;
public class UserTest {
@Test
public void insertTest(){
//加载cfg配置文件
Configuration config = new Configuration().configure();
//获取sessionfactory
SessionFactory sessionFactory = config.buildSessionFactory();
//调用一个session
Session session = sessionFactory.openSession();
//开启事物
Transaction t = session.beginTransaction();
User user = new User();
user.setName("tom");
user.setPassword("123");
//将数据存储到表中
session.save(user);
//提交事物
t.commit();
//关闭资源
session.close();
sessionFactory.close();
}
@Test
public void updateTest(){
//加载cfg配置文件
Configuration config = new Configuration().configure();
//获取sessionfactory
SessionFactory sessionFactory = config.buildSessionFactory();
//调用一个session
Session session = sessionFactory.openSession();
//开启事物
Transaction t = session.beginTransaction();
User user = new User();
user.setName("tom");
user.setPassword("456");
//将数据存储到表中
session.update(user);
//提交事物
t.commit();
//关闭资源
session.close();
sessionFactory.close();
}
@Test
public void findByNameTest(){
//加载cfg配置文件
Configuration config = new Configuration().configure();
//获取sessionfactory
SessionFactory sessionFactory = config.buildSessionFactory();
//调用一个session
Session session = sessionFactory.openSession();
//开启事物
Transaction t = session.beginTransaction();
//两个方法都可以 get() load()
User user = (User)session.get(User.class, "tom");
//User user = (User)session.load(User.class, "tom");
System.out.println(user);
//提交事物
t.commit();
//关闭资源
session.close();
sessionFactory.close();
}
@Test
public void deleteByNameTest(){
//加载cfg配置文件
Configuration config = new Configuration().configure();
//获取sessionfactory
SessionFactory sessionFactory = config.buildSessionFactory();
//调用一个session
Session session = sessionFactory.openSession();
//开启事物
Transaction t = session.beginTransaction();
User user = (User)session.get(User.class, "tom");
session.delete(user);
//提交事物
t.commit();
//关闭资源
session.close();
sessionFactory.close();
}
}
分别测试四个方法:
insertTest()
updateTest()
findByNameTest()
deleteByName()
注:关于Junit测试
项目右键->properties->java build path->libraries->add
libraries->Junit
使用双击选中测试方法右键run as ->junit test
上一篇: 粽子蒸多久?这样蒸粽子不夹生还入味,邻居小孩都馋哭了!
下一篇: 前端面试题(vue篇)