Spring 整合 Hibernate

 

datasource:这个是JDK提供的连接数据库的方法
dataSource是注入过来的dataSource的bean
Connection conn = dataSource.getConnection();
conn.createStatement().execute(sql);

使用连接池不需要xml这个对应文件或者annotation注释,因为不是面向对象的操作
下午没事,就练习了下连接数据库,结果发现了一个问题,哈哈
Can not issue data manipulation statements with executeQuery()
原因是这句:st.executeQuery("insert  into  student  values('"+name+"','"+age+"','"+introduce+"')") ;我是看了书上一个例子,然后开始模仿,发现问题后,发现书上其他程序语句都是用这句,后来看了几个网页,才明白这句应该该成这样子:st.execute("insert  into  student  values('"+name+"','"+age+"','"+introduce+"')") ;最后总结:如果你的SQL 语句是诸如update,insert的更新语句,应该用statement的execute()方法,如果用的是statement的executeQuery()就会出现上诉问题

 

Hibernate:主要是SessionFactory产生session
session sess  = HibernateSessionFactory.getCurrentSession();

以及加入事务的操作


Spring的连接:
spring 调用session也是导入的hibernate的包。
调用session的操作是在DAOImpl中完成的,也就是数据操作层调用数据库连接。

 

 

 

无论使用annotation还是使用xml配置,比如将user注入到userDAO,然后将userDAO注入到userService,对userService进行操作的时候,得到这个bean,对其进行初始化,应该加入这个语句:

    ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
    UsersDAO usersDAO = (UsersDAO)ac.getBean("userService");

这样,通过IOC将所有的组件组织在一起,直接调用usersDAO的方法就行了。

 

从jdbc连接到使用spring整合hibernate,改变的只是配置文件中将dataSource注入到hibernate,咱后将调取connection的操作变成调取session的操作,仅此而已。

这个过程中,model类不改变,dao类不改变。也就是说,调用session的地方是daoimpl中,在这里进行实际数据操作。而不是在service中。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值