博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate进行对象的增删改查
阅读量:6915 次
发布时间:2019-06-27

本文共 12484 字,大约阅读时间需要 41 分钟。

首先我们看看hibernate手动配置步骤 

(这个了解一点就可以了,以后是不会自己全部手动配置的)

1、    创建WEB项目

2       下载hibernate-release-4.3.11.Final.zip,并解压。

3       将hibernate必须的包加入lib

4        打开hibernate-release-4.3.11.Final\lib\required文件夹,导入jar文件:

5       打开hibernate-release-4.3.11.Final\lib\optional\ehcache文件夹,导入jar文件:

          

6         打开hibernate-release-4.3.11.Final\lib\optional\c3p0文件夹,导入jar文件:

 

                

 

7    配置hibernate.cfg.xml     打开hibernate-release-4.3.11.Final\project\etc文件夹,选择hibernate.cfg.xml文件并   复制到src下。

8     打开hibernate.cfg.xml文件,并设置数据库连接

如:

1  4  5 
6
7
8
9
10 org.hibernate.dialect.MySQLDialect11
12
13
14 jdbc:mysql://127.0.0.1:3306/j2ee?characterEncoding=utf-815
16
17
root
18
root
19
20
21 com.mysql.jdbc.Driver22
23 24
25
true
26
27
true
28 29 30 31 32
33
34
35 org.hibernate.c3p0.internal.C3P0ConnectionProvider36
37 38
39
30
40
41
1
42
43
5000
44
45
100
46
47
3000
48
49
5
50
51 52 53 54
55
56 57
58
View Code

 

 

9   创建数据库表,并封装实体Bean与XXX.hbm.xml文件,

如:

1 package com.cy.beans; 2  3 import java.io.Serializable; 4  5 public class UserBean implements Serializable  { 6  7     private static final long serialVersionUID = 1L; 8  9     private Integer id;10     private String userName;11     private String password;12     public UserBean() {13         super();14     }15     16     public Integer getId() {17         return id;18     }19 20     public void setId(Integer id) {21         this.id = id;22     }23 24     public String getUserName() {25         return userName;26     }27     public void setUserName(String userName) {28         this.userName = userName;29     }30     public String getPassword() {31         return password;32     }33     public void setPassword(String password) {34         this.password = password;35     }36     @Override37     public String toString() {38         return "UserBean [id=" + id + ", userName=" + userName + ", password="39                 + password + "]";40     }41     42     43 }
View Code
1 
2 5 6
7 8
9 10
11
12
13
14 15
16
17
18 19
20
21
22 23
24 25
View Code

 

10 hibernate如何CRUD  获取Session对象:

如:

1 package com.cy.tools; 2  3 import org.hibernate.SessionFactory; 4 import org.hibernate.boot.registry.StandardServiceRegistryBuilder; 5 import org.hibernate.cfg.Configuration; 6 import org.hibernate.service.ServiceRegistry; 7  8 /** 9  * session工厂的工具类10  * @author acer11  *12  */13 14 public class HibernateUtils {15     16     private static Configuration cfg;17     private static SessionFactory sessionFactory;18     private static ServiceRegistry serviceRegistry;19     20     static{21         22         cfg = new Configuration().configure();23         System.out.println(cfg);24         serviceRegistry = new StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build();25         System.out.println(serviceRegistry);26         sessionFactory = cfg.buildSessionFactory(serviceRegistry);27     28     }29     30     public static SessionFactory getSessionFactory(){31         return sessionFactory;32     }33          34     35 36 }
View Code

 

 

今天主要学习的内容就是hibernate的增删改查;

我们以一个t_user表为例:

先把框架写好:

看UserDaoImpl里的代码:

1 package com.cy.dao.impl;  2   3 import java.io.Serializable;  4 import java.util.List;  5 import java.util.Map;  6   7   8   9  10 import org.hibernate.Query; 11 import org.hibernate.Session; 12 import org.hibernate.Transaction; 13  14 import com.cy.beans.UserBean; 15 import com.cy.dao.IUserDao; 16 import com.cy.tools.HibernateUtils; 17  18 public class UserDaoImpl implements IUserDao { 19      20      21     @Override 22     public void saveUser(UserBean ub) { 23                 //获取Session 24                 Session session = null; 25                 Transaction tx = null; 26                 try { 27                     session = HibernateUtils.getSessionFactory().openSession(); 28                     tx = session.beginTransaction();//开启事务 29                     session.save(ub);//将user对象交给Session管理 30                     tx.commit();//提交 31                 } catch (Exception e) { 32                     e.printStackTrace(); 33                     tx.rollback();//回滚 34                 }finally{ 35                     session.close();//关闭 36                 } 37     } 38  39     @Override 40     public void updateUser(UserBean ub) { 41         Session session = null; 42         Transaction tx = null; 43         try { 44             session=HibernateUtils.getSessionFactory().openSession(); 45             tx=session.beginTransaction(); 46             session.update(ub); 47             tx.commit(); 48         } catch (Exception e) { 49             e.printStackTrace(); 50             tx.rollback(); 51         }finally{ 52             session.close(); 53         } 54          55          56     } 57  58     @Override 59     public void deleteUser(UserBean ub) { 60         Session session = null; 61         Transaction tx = null; 62         try { 63             session=HibernateUtils.getSessionFactory().openSession(); 64             tx=session.beginTransaction(); 65             session.delete(ub); 66             tx.commit(); 67         } catch (Exception e) { 68             e.printStackTrace(); 69             tx.rollback(); 70         }finally{ 71             session.close(); 72         } 73          74     } 75  76     @Override 77     public List
findUser(String sql, Map
pram) { 78 Session session = null; 79 Transaction tx = null; 80 List
list=null; 81 try { 82 session=HibernateUtils.getSessionFactory().openSession(); 83 tx=session.beginTransaction(); 84 Query query= session.createQuery(sql).setCacheable(true);//查询 85 String userName=pram.get("userName").toString(); 86 String password=pram.get("password").toString(); 87 query.setString("userName", '%'+userName+'%'); 88 query.setString("password",'%'+password+'%'); 89 list=query.list(); 90 tx.commit(); 91 92 } catch (Exception e) { 93 e.printStackTrace(); 94 tx.rollback(); 95 }finally{ 96 session.close(); 97 } 98 return list; 99 }100 101 @Override102 public UserBean getUser(Class
cls, Serializable pk) {103 Session session = null;104 Transaction tx = null;105 UserBean user=null;106 107 try {108 session=HibernateUtils.getSessionFactory().openSession();109 tx=session.beginTransaction();110 111 user=(UserBean)session.get(cls, pk);112 113 114 tx.commit();115 } catch (Exception e) {116 e.printStackTrace();117 tx.rollback();118 }finally{119 session.close();120 }121 122 123 return user;124 }125 126 }
View Code

 

看UserServerImpl的代码:

1 package com.cy.server.impl; 2  3 import java.io.Serializable; 4 import java.util.List; 5 import java.util.Map; 6  7 import com.cy.beans.UserBean; 8 import com.cy.dao.IUserDao; 9 import com.cy.dao.impl.UserDaoImpl;10 import com.cy.server.IUserServer;11 12 public class UserServerImpl implements IUserServer{13     14     IUserDao iusUserDao=new UserDaoImpl();15    /**16     * 添加17     */18     @Override19     public void saveUser(UserBean ub) {20         iusUserDao.saveUser(ub);21         22     }23     24     25     /**26      * 修改27      */28     @Override29     public void updateUser(UserBean ub) {30         iusUserDao.updateUser(ub);31         32     }33 34     /**35      * 删除36      */37     @Override38     public void deleteUser(Integer id) {39         //先查询 40         UserBean ub=iusUserDao.getUser(UserBean.class,id);41         //后删除42         if(ub!=null){43             iusUserDao.deleteUser(ub);44         }45     46     }47 48     /**49      * 数据集合50      */51     @Override52     public List
findUser(Map
pram) {53 //模糊查询54 String hql="from UserBean where 1=1 and userName like :userName and password like :password";55 return iusUserDao.findUser(hql, pram);56 }57 58 /**59 * 查询60 */61 @Override62 public UserBean getUser(Class
cls, Serializable pk) {63 return iusUserDao.getUser(cls, pk);64 }65 66 }
View Code

 

TestAction的代码:

1 package com.cy.action; 2  3 import java.util.HashMap; 4 import java.util.List; 5 import java.util.Map; 6  7 import com.cy.beans.UserBean; 8 import com.cy.server.IUserServer; 9 import com.cy.server.impl.UserServerImpl;10 11 public class TestAction {12     13     public static void main(String[] args) {14 //        saveUser();15 //        delete();16 //        update();17 //        queryUserBean();18     }19 20     /**21      *测试 根据条件来查询数据22      */23     /*private static void queryUserBean() {24         Map
map=new HashMap
();25 IUserServer ius=new UserServerImpl();26 //模糊查询27 map.put("userName", "kitty");28 map.put("password", "kitty");29 List
list=ius.findUser(map);30 for (Object object : list) {31 UserBean ub=(UserBean) object;32 System.out.println(ub);33 }34 }35 */36 37 38 /**39 * 测试修改数据40 */41 /*private static void update() {42 IUserServer ius=new UserServerImpl(); 43 UserBean ub=new UserBean();44 //先查询 45 ub=ius.getUser(UserBean.class, Integer.valueOf(1));46 //后修改47 if(ub!=null){48 ub.setUserName("tomcat");49 }50 ius.updateUser(ub);51 }52 */53 54 55 /**56 * 测试删除数据57 */58 /*private static void delete() {59 IUserServer ius=new UserServerImpl();60 ius.deleteUser(Integer.valueOf(11));61 62 }*/63 64 /**65 * 测试添加数据66 */67 /*private static void saveUser() {68 //首先从页面获取数据69 IUserServer ius=new UserServerImpl();70 UserBean ub=new UserBean();71 ub.setPassword("111");72 ub.setUserName("111");73 ius.saveUser(ub); 74 }*/75 76 77 78 }
View Code

 数据库表:

create DATABASE j2ee;

create table t_user(
id int primary key auto_increment,
userName varchar(20),
pwd varchar(20)
);

作业 分页!

 

问题:

在完成这些之前呢,我遇到了个问题,就是我的session就是一直都得不到。

找了很久的错误,在上课的时候就一直没找到,放学的时候同学提醒了我,回去看看你的xml文件配置的问题,一个单词都不可以错的。

我在想会不会是我的表的名字有误呢。我直接把表名设置为user。

 映射文件通常是以"类名+.hbm.xml"这样命名的。

我之前的UserBean.hbm.xml

1 
2 5 6
7 8
9 10
11
12
13
14 15
16
17
18 19
20
21
22 23
24 25

 

 后来我重新建立了个数据库,j2ee,重新建表t_user。

改过之后的UserBean.hbm.xml

1 
2 5 6
7 8
9 10
11
12
13
14 15
16
17
18 19
20
21
22 23
24 25

 

这样改了之后就可以得到session了。所以总之在配置的时候,需要细心的!字母的大小写

,type="integer";,这样也是对的。

 

type="java.lang.Integer".

 

转载于:https://www.cnblogs.com/hellokitty1/p/5046770.html

你可能感兴趣的文章
2、权限、变量、for 学习笔记
查看>>
Centos6安装配置rsync+inotify实时单向同步
查看>>
Cisco系列路由器密码恢复研究与实践
查看>>
顺时针打印矩阵
查看>>
Linux 2 unit5 LVM创建
查看>>
函数定义、函数的参数、函数的默认参数
查看>>
javaScript显示和隐藏(display属性)
查看>>
采用管道进行通讯的例子
查看>>
ubuntu添加一个源
查看>>
Oracle动态采样学习
查看>>
安全跟踪升级
查看>>
JavaScript从作用域到闭包
查看>>
ubuntu mldonkey 设置
查看>>
java 空指针异常造成的原因有哪些
查看>>
linux 的软连接与硬连接
查看>>
解决vmware克隆虚拟机网卡无法启动
查看>>
Linux CentOS 安装Java SDK
查看>>
crontab
查看>>
HTTP协议详解
查看>>
自己写token类(无视jwt)
查看>>