新建Web项目t2
- 新建Web项目
添加SpringMVC支持
参考上上篇文章:https://www.toutiao.com/i6630774604400951816/
添加Hibernate支持
- 在项目右击Configure Factets - Install Hibernate支持
新建配置文件
参考上上节文章
这时文件夹结构:
项目转成maven架构
在项目上点右键,选择Configure-Convert to Maven Project
建立测试数据库
在MyEclipse连接数据库
首先下载驱动:https://dev.mysql.com/downloads/connector/j/5.1.html
在DB Browser里点右建,选择New:
填写数据库连接信息:
Finish。
连接数据库
双击数据库连接:
代码生成
新建Package:
选择表,选择Hibernate Reverse Engineering。
修改DAO
T1UserDAO
package com.myspringmvc.entity; import java.util.List; import org.hibernate.LockOptions; import org.hibernate.Query; import org.hibernate.Transaction; import org.hibernate.criterion.Example; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * A data access object (DAO) providing persistence and search support for * T1User entities. Transaction control of the save(), update() and delete() * operations can directly support Spring container-managed transactions or they * can be augmented to handle user-managed Spring transactions. Each of these * methods provides additional information for how to configure it for the * desired type of transaction control. * * @see com.myspringmvc.entity.T1User * @author MyEclipse Persistence Tools */ public class T1UserDAO extends BaseHibernateDAO { private static final Logger log = LoggerFactory.getLogger(T1UserDAO.class); // property constants public static final String USERNAME = "username"; public static final String PASSWORD = "password"; public void save(T1User transientInstance) { log.debug("saving T1User instance"); try { getSession().save(transientInstance); log.debug("save successful"); } catch (RuntimeException re) { log.error("save failed", re); throw re; } } public void delete(T1User persistentInstance) { log.debug("deleting T1User instance"); try { Transaction tx = getSession().beginTransaction(); getSession().delete(persistentInstance); tx.commit(); log.debug("delete successful"); } catch (RuntimeException re) { log.error("delete failed", re); throw re; } } public T1User findById(java.lang.Integer id) { log.debug("getting T1User instance with id: " + id); try { T1User instance = (T1User) getSession().get("com.myspringmvc.entity.T1User", id); return instance; } catch (RuntimeException re) { log.error("get failed", re); throw re; } } public List<?> findByExample(T1User instance) { log.debug("finding T1User instance by example"); try { List<?> results = getSession().createCriteria("com.myspringmvc.entity.T1User").add(Example.create(instance)) .list(); log.debug("find by example successful, result size: " + results.size()); return results; } catch (RuntimeException re) { log.error("find by example failed", re); throw re; } } public List<?> findByProperty(String propertyName, Object value) { log.debug("finding T1User instance with property: " + propertyName + ", value: " + value); try { String queryString = "from T1User as model where model." + propertyName + "= ?"; Query queryObject = getSession().createQuery(queryString); queryObject.setParameter(0, value); return queryObject.list(); } catch (RuntimeException re) { log.error("find by property name failed", re); throw re; } } public List<?> findByUsername(Object username) { return findByProperty(USERNAME, username); } public List<?> findByPassword(Object password) { return findByProperty(PASSWORD, password); } public List<?> findAll() { log.debug("finding all T1User instances"); try { String queryString = "from T1User"; Query queryObject = getSession().createQuery(queryString); return queryObject.list(); } catch (RuntimeException re) { log.error("find all failed", re); throw re; } } public T1User merge(T1User detachedInstance) { log.debug("merging T1User instance"); try { T1User result = (T1User) getSession().merge(detachedInstance); log.debug("merge successful"); return result; } catch (RuntimeException re) { log.error("merge failed", re); throw re; } } public void attachDirty(T1User instance) { log.debug("attaching dirty T1User instance"); try { Transaction tx = getSession().beginTransaction(); getSession().saveOrUpdate(instance); tx.commit(); log.debug("attach successful"); } catch (RuntimeException re) { log.error("attach failed", re); throw re; } } public void attachClean(T1User instance) { log.debug("attaching clean T1User instance"); try { getSession().buildLockRequest(LockOptions.NONE).lock(instance); log.debug("attach successful"); } catch (RuntimeException re) { log.error("attach failed", re); throw re; } } }
添加Controller
Hello.java
package com.myspringmvc.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import com.myspringmvc.entity.T1User; import com.myspringmvc.entity.T1UserDAO; @Controller public class Hello { @RequestMapping(value = "/add") public String add() { T1UserDAO dao=new T1UserDAO(); T1User model = new T1User(); model.setUsername("new"); model.setPassword("123"); dao.attachDirty(model); return "hello"; } @RequestMapping(value = "/query") public String query(@RequestParam int id) { T1UserDAO dao=new T1UserDAO(); T1User model = dao.findById(id); System.out.println(model.getUsername()); return "hello"; } @RequestMapping(value="/update") public String update() { T1UserDAO dao=new T1UserDAO(); T1User model= dao.findById(11); System.out.println(model.getUsername()); model.setPassword("45678"); dao.attachDirty(model); return "hello"; } @RequestMapping(value="/del") public String del() { T1UserDAO dao=new T1UserDAO(); T1User model= dao.findById(11); dao.delete(model); return "hello"; } }
启动项目
访问:http://localhost:8080/springmvc_hibernate/add
数据库新增一条记录。
http://localhost:8080/springmvc_hibernate/query?id=1
查看
项目托管在gitee,可搜索 悠悠科教 查看 springmvc-hibernate 项目。项目结构和本文章描述稍有区别。