最近闲来无事自己练习了一下搭建开发框架。找了很多资料,spring 3.0.1+hibernate3.2.5的jar包整合没有冲突。最终完成了测试。2大框架学的时间也不短了。推荐大家在学习的过程中多去看官网下载的压缩包中的内容。很多我们在百度上问的东西里面都有案例和相关的文档解释。看英文还能学点英语,最后祝大家学习顺利吧。
源码+jar包打包下载:
http://pan.baidu.com/share/link?shareid=217859&uk=1997312776
1、 首先先下载hibernate和spring的jar包。推荐在官网下载,本篇blog用的是hibernate3.2.5+spring3.0.1
2、 建立web project。POJO类和映射文件。
Pojo类没有什么困难,但是本篇仍旧贴出代码如下:
package cn.sprhib.model;
public class Users {
private Long id;
private String username;
private String password;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
建立映射文件Users.hbm.xml
说明:关于头文件的引用和其中的一些xml写法案例在hibernate包的hibernate-3.0\eg\org\hibernate\auction下可以找到相关的案例写法。Copy过去即可,本案例映射代码如下:
除此之外还要导入Mysql的驱动包
4、编写hibernate.cxf.xml文件。
参考文件位置: hibernate-3.0.1\hibernate-3.0\etc下得hibernate.cxf.xml这个文件把大致轮廓都已经写好。其中的一些property的key还有value可以去同目录下的hibernate.properties文件中去查阅,当然也可以去该类的源码去中查找.代码如下:
true
org.hibernate.dialect.MySQLDialect
com.mysql.jdbc.Driver
jdbc:mysql://192.168.1.104:3306/sprhib?useUnicode=true&characterEncoding=utf8
root
root
True
5、编写类将POJO通过配置好的ORM关系映射生成表:代码如下
public class ClassToDB {
public static void main(String[] args) {
Configuration config = null;
Session session = null;
Transaction sa = null;
config = new Configuration().configure(new File("src/hibernate.cfg.xml"));
SessionFactory sessionFactory = config.buildSessionFactory();
session = sessionFactory.openSession();
sa = session.beginTransaction();
SchemaExport schemaExport = new SchemaExport(config);
schemaExport.create(true, true);
sa.commit();
}
}
-------------------------------------------------------------------------------------------------------------------------------------------------------------
下面开始加入spring的配置,并且将hibernate数据库管理交由spring的bean管理
1、在WEB-INF文件夹下面建立xml文件名为sprhib-data.xml。
2、关于头文件的阐述:周所周知spring的头文件是引用的spring服务器上面的schema约束。Beans、context、aop等等都有明确的地址。[关于xml的schema约束部分的知识本章不再详述,不了解的可以去看我的blog上webservice里面关于xml的讲解]拿到头文件可以手敲。也可以去Doc里面拿
(1)手敲方式[官网url][schema][引用部分案例比如beans、context]
http://www.springframe.org/schema/beans
(2)Doc方式Copy
Spring官网下载目录中会有一个文件为
spring-framework-3.0.1.RELEASE-A-with-docs.zip文件。此文件解压之后在
spring-framework-3.0.1.RELEASE-A\docs\spring-framework-reference\htmlsingle下面有一个帮助文件为spring-framework-reference.html
将此文件copy过来即可
3、 添加Spring和c3p0相关的Jar包。如下截图所示:
4、 编写配置文件如下
cn/sprhib/model/Users.hbm.xml
org.hibernate.dialect.MySQLInnoDBDialect
5、 添加web.xml读取配置加载该xml代码如下:
contextConfigLocation
/WEB-INF/sprhib-data.xml
public class SaveUsers {
BeanFactory factory = null;
@Test
public void testSave(){
factory = new FileSystemXmlApplicationContext("WebContent/WEB-INF/sprhib-data.xml");
HibernateTemplate hibernateTemplate = (HibernateTemplate) factory.getBean("hibernateTemplate");
Users user = new Users();
user.setUsername("zhanglei");
user.setPassword("qweasd");
hibernateTemplate.save(user);
}
}
测试成功:
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
下面加入spring mvc的配置,完成前后台请求
1、 WEB-INF下面new一个xml文件名为: dispatcher-servlet.xml内容如下:
/WEB-INF/pages/
.jsp
org.springframework.web.context.ContextLoaderListener
dispatcher
org.springframework.web.servlet.DispatcherServlet
1
dispatcher
/test/*
3、 编写Controller和Dao等代码完成一个操作
@Controller
@RequestMapping("controller")
public class UsersController{
@Resource
private UsersDao usersDaoImpl;
public UsersDao getUsersDaoImpl() {
return usersDaoImpl;
}
public void setUsersDaoImpl(UsersDao usersDaoImpl) {
this.usersDaoImpl = usersDaoImpl;
}
@RequestMapping(value="/addUser.action",method=RequestMethod.GET)
public void addUsers(HttpServletRequest request,HttpServletResponse response){
String username = request.getParameter("username");
String password = request.getParameter("password");
Users u = new Users();
u.setUsername(username);
u.setPassword(password);
usersDaoImpl.addUser(u);
}
}
Dao接口
package cn.sprhib.model;
public interface UsersDao {
public void addUser(Users user);
}
Dao实现类
@Component("usersDaoImpl")
public class UsersDaoImpl implements UsersDao{
@Resource(name="hibernateTemplate")
private HibernateTemplate hibernateTemplate;
public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
}
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
@Override
public void addUser(Users user) {
hibernateTemplate.save(user);
}
}
访问地址以操作:
http://localhost:8080/Sprhib/test/controller/addUser.action?username="ceshi"&password="pass"
到此为止springmvc+spring+hibernate 搭建3层开发架构并且完成了一个增加的案例。