Hibernate初学之CURD
以前学过JDBC的增删改查,感觉挺方便的,用hibernate框架则会更加简便,
关于hibernate的增删改查模块,我感觉用代码解释再合适不过了;
首先是导包问题:应用hibernate需要导十个包:
这些包在大部分是在hibernate资源 里面,这个可以到官网上下载;
接下来是配置文件:
这些都讲过了:hibernate.cfg.xml
<hibernate-configuration>
<session-factory name="foo">
<property name="hibernate.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">root</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.password">root</property>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">update</property>
<mapping resource="com/hbsi/domain/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
这个配置文件必须放到src里面,
还需要一个java类与表的连接的配置文件:命名格式一般都为类名.hbm.xml;
<hibernate-mapping package="com.hbsi.domain">
<class name="User" table="user">
<id name="id">
<generator class = "native" />
</id>
<property name="name" />
<property name="birthday" />
</class>
</hibernate-mapping>
这个配置文件必须放到相关类的同一个包下;
这样配置文件就写完了;
需要简单的写一个类,具有相关的属性;并实现set和get方法必须有一个默认的构造参数;
还需要一个工具类:
private static SessionFactory sessionFactory ;
static{
Configuration conn = new Configuration().configure();
sessionFactory = conn.buildSessionFactory();
}
public static SessionFactory getSessionFactory(){
return sessionFactory ;
}
public static Session getSession(){
return sessionFactory.openSession();
}
然后开始写:属于规范类型的
//查找所有用户
public List<User> findAll() {
Session s=null;
try{
s = DBManager.getSession();
Query query = s.createQuery("from User");
List<User> lists = query.list();
return lists;
}finally{
if(s!=null){
s.close();
}
}
}
//根据id进行查找
public User fingUserById(Integer id) {
Session s=null;
try{
s = DBManager.getSession();
User user = (User) s.get(User.class, id);
return user;
}finally{
if(s!=null){
s.close();
}
}
}
//删除用户
public void remove(User entity) {
Session s = null;
try{
s.beginTransaction();
s.delete(entity);
s.beginTransaction().commit();
}finally{
if(s!=null){
s.close();
}
}
}
//添加一个用户
public void saveUser(User entity) {
Session s =null;
try{
s = DBManager.getSession();
s.beginTransaction();
s.save(entity);
s.beginTransaction().commit();
}finally{
if(s!=null){
s.close();
}
}
}
//更新一个用户
public void updateUser(User entity) {
Session s =null;
try{
s = DBManager.getSession();
s.beginTransaction();
s.update(entity);
s.beginTransaction().commit();
}finally{
if(s!=null){
s.close();
}
}
}
这就是Hibernate的CURD;
最后测试一下:
public static void main(String[] args) {
// TODO Auto-generated method stub
User user = new User();
user.setName("ss");
user.setBirthday(new Date());
UserDao dao = new UserDaoImpl();
dao.saveUser(user);
dao.findAll();
/*dao.updateUser(user);
dao.remove(user);
dao.fingUserById(3);*/
}
转载于:https://blog.51cto.com/fighter2013/1147907