hibernate 增删改查和一点hql

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="dialect">org.hibernate.dialect.MySQLDialect</property>
		<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="connection.url">jdbc:mysql:///test</property>
		<property name="connection.username">root</property>
		<property name="connection.password"></property>
		<property name="hbm2ddl.auto">update</property>
		<property name="show_sql">true</property>
		<mapping resource="cn/itcast/hibernate/domain/User.hbm.xml"/>
	
	</session-factory>
</hibernate-configuration>

package cn.itcast.hibernate.domain;下面有两个文件


User.java

package cn.itcast.hibernate.domain;

import java.util.Date;


public class User 
{
	private int id;
	private String name;
	private Date birthday;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Date getBirthday() {
		return birthday;
	}
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}
	
	
}

User.hbm.xml

<?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="cn.itcast.hibernate.domain">
	<class name="User">
		<id name="id">
			<generator class="native"></generator>
		</id>
		<property name="name"></property>
		<property name="birthday"></property>
	</class>
	
</hibernate-mapping>



package cn.itcast.hibernate;包下面有两个文件

HibernateUtil.java

package cn.itcast.hibernate;

import java.io.Serializable;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public final class HibernateUtil 
{
	private static SessionFactory sessionFactory;
	
	public static SessionFactory getSessionFactory() {
		return sessionFactory;
	}
	
	public static Session getSession() {
		return sessionFactory.openSession();
	}
	private HibernateUtil()
	{
		
	}
	
	public static void add(Object entity)
	{
		Session s=null;
		Transaction tx=null;
		try {
			s=HibernateUtil.getSession();
			tx=s.beginTransaction();
			s.save(entity);
			tx.commit();
		} 
		finally
		{
			if(s!=null)
				s.close();
		}
	}
	
	public static void update(Object entity)
	{
		Session s=null;
		Transaction tx=null;
		try {
			s=HibernateUtil.getSession();
			tx=s.beginTransaction();
			s.update(entity);
			tx.commit();
		} 
		finally
		{
			if(s!=null)
				s.close();
		}
	}
	
	public static void delete(Object entity)
	{
		Session s=null;
		Transaction tx=null;
		try {
			s=HibernateUtil.getSession();
			tx=s.beginTransaction();
			s.delete(entity);
			tx.commit();
		} 
		finally
		{
			if(s!=null)
				s.close();
		}
	}
	
	public static Object get(Class clazz,Serializable id)
	{
		Session s=null;
		try {
			s=HibernateUtil.getSession();
			Object obj=s.get(clazz, id);
			return obj;
		} finally {
			if(s!=null)
				s.close();
		}
		
	}

	
	static
	{
		Configuration cfg=new Configuration();
		cfg.configure();//如果说名字不是叫做“hibernate.cfg.xml”,需要在参数当中申明
		sessionFactory=cfg.buildSessionFactory();
	}
}
QuestTest.java

package cn.itcast.hibernate;

import java.util.Date;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import cn.itcast.hibernate.domain.User;

public class QuestTest {
	static void query(String name)
	{
		Session s=null;
		try {
			s=HibernateUtil.getSession();
			String hql="from User as user where user.name=?";
			Query query=s.createQuery(hql);
			query.setString(0, name);
			List<User> list=query.list();
			for(User user:list)
			{
				System.out.println(user.getId()+" "+user.getName()+" "+user.getBirthday());
			}
		} finally {
			if(s!=null)
				s.close();
		}
	}
	public static void main(String[] args)
	{
		User user=new User();
		user.setBirthday(new Date());
		user.setName("name");
		HibernateUtil.add(user);
		query(user.getName());
	}
	

}

也可以这样写


package cn.itcast.hibernate;

import java.util.Date;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import cn.itcast.hibernate.domain.User;

public class QuestTest {
	static void query(String name)
	{
		Session s=null;
		try {
			s=HibernateUtil.getSession();
			String hql="from User as user where user.name=:name";
			Query query=s.createQuery(hql);
			query.setString("name", name);
			List<User> list=query.list();
			for(User user:list)
			{
				System.out.println(user.getId()+" "+user.getName()+" "+user.getBirthday());
			}
		} finally {
			if(s!=null)
				s.close();
		}
	}
	public static void main(String[] args)
	{
		User user=new User();
		user.setBirthday(new Date());
		user.setName("name");
		HibernateUtil.add(user);
		query(user.getName());
	}
	

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hibernate是一个Java持久化框架,用于将Java对象映射到关系型数据库中,以便进行增删改查操作。 以下是使用Hibernate进行增删改查的步骤: 1. 创建Hibernate配置文件,指定数据库连接信息、实体类映射信息等。 2. 创建实体类,使用注解或XML文件将实体类映射到数据库表中。 3. 编写DAO(Data Access Object)层代码,用于操作数据库。DAO层可以使用Hibernate提供的API,也可以使用HQL(Hibernate Query Language)语句。 4. 在应用程序中调用DAO层方法,进行增删改查操作。 下面是一个简单的示例,演示如何使用Hibernate进行增删改查操作: 1. 创建Hibernate配置文件hibernate.cfg.xml,指定数据库连接信息和实体类映射信息。 ``` <hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">root</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <mapping class="com.example.User"/> </session-factory> </hibernate-configuration> ``` 2. 创建实体类User,使用注解将实体类映射到数据库表中。 ``` @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "name") private String name; @Column(name = "age") private int age; // getters and setters } ``` 3. 创建DAO层代码,使用Hibernate提供的API进行增删改查操作。 ``` public class UserDao { private SessionFactory sessionFactory; public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } public void save(User user) { Session session = sessionFactory.getCurrentSession(); session.save(user); } public void update(User user) { Session session = sessionFactory.getCurrentSession(); session.update(user); } public void delete(User user) { Session session = sessionFactory.getCurrentSession(); session.delete(user); } public User findById(Long id) { Session session = sessionFactory.getCurrentSession(); User user = (User) session.get(User.class, id); return user; } public List<User> findAll() { Session session = sessionFactory.getCurrentSession(); Query query = session.createQuery("from User"); List<User> users = query.list(); return users; } } ``` 4. 在应用程序中调用DAO层方法,进行增删改查操作。 ``` public class App { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml"); UserDao userDao = (UserDao) context.getBean("userDao"); // create user User user = new User(); user.setName("John Doe"); user.setAge(30); userDao.save(user); // update user User user = userDao.findById(1L); user.setName("Jane Smith"); userDao.update(user); // delete user User user = userDao.findById(1L); userDao.delete(user); // find all users List<User> users = userDao.findAll(); for (User u : users) { System.out.println(u.getName() + " - " + u.getAge()); } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值