1. com.tao.pojo实体类
  2.  
  3. package com.tao.pojo;
  4.  
  5. public class User {
  6. private int id;
  7. private String name;
  8. private String password;
  9.  
  10. public User() {
  11. super();
  12. }
  13. public User(int id, String name, String password) {
  14. super();
  15. this.id = id;
  16. this.name = name;
  17. this.password = password;
  18. }
  19. public int getId() {
  20. return id;
  21. }
  22. public void setId(int id) {
  23. this.id = id;
  24. }
  25. public String getName() {
  26. return name;
  27. }
  28. public void setName(String name) {
  29. this.name = name;
  30. }
  31. public String getPassword() {
  32. return password;
  33. }
  34. public void setPassword(String password) {
  35. this.password = password;
  36. }
  37. @Override
  38. public String toString() {
  39. return "User [id=" + id + ", name=" + name + ", password=" + password + "]";
  40. }
  41.  
  42. }
  43.  
  44. User.hbm.xml映射文件
  45.  
  46. <?xml version="1.0"?>
  47. <!DOCTYPE hibernate-mapping PUBLIC
  48. "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  49. "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
  50.  
  51. <hibernate-mapping package="org.hibernate.test.schemaupdate">
  52.  
  53. <class name="com.tao.pojo.User" table="user">
  54. <id name="id">
  55. <generator class="identity"></generator>
  56. </id>
  57. <property name="name"/>
  58. <property name="password" column="pass"/>
  59. </class>
  60.  
  61. </hibernate-mapping>
  62.  
  63. 配置文件hibernate.cfg.xml
  64.  
  65. <?xml version="1.0" encoding="UTF-8"?>
  66. <!DOCTYPE hibernate-configuration PUBLIC
  67. "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  68. "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
  69. <hibernate-configuration>
  70. <session-factory>
  71. <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
  72. <property name="hibernate.connection.password">root</property>
  73. <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test0102?characterEncoding=utf-8</property>
  74. <property name="hibernate.connection.username">root</property>
  75. <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
  76. <property name="show_sql">true</property>
  77. <property name="format_sql">true</property>
  78.  
  79. <!-- 因为加载的时候只加载配置文件,没有加载映射文件,让它去找 -->
  80. <mapping resource="com/tao/pojo/User.hbm.xml"/>
  81. </session-factory>
  82. </hibernate-configuration>
  83.  
  84. DAO方法
  85. com.tao.dao
  86.  
  87. package com.tao.dao;
  88.  
  89. import java.util.List;
  90.  
  91. public interface BaseDAO<T> {
  92. // 通用的功能
  93. public List<T> findAll();
  94.  
  95. public T findById(int id);
  96.  
  97. public void deleteById(int id);
  98.  
  99. public boolean update(T t);
  100.  
  101. public boolean save(T t);
  102.  
  103. }
  104.  
  105. package com.tao.dao;
  106.  
  107. import com.tao.pojo.User;
  108.  
  109. public interface UserDAO extends BaseDAO<User> {
  110.  
  111. public User login(String name,String password);
  112.  
  113. }
  114.  
  115. 实现类 com.tao.dao.Impl
  116.  
  117. package com.tao.dao.Impl;
  118.  
  119. import java.io.Serializable;
  120. import java.util.List;
  121.  
  122. import org.hibernate.Session;
  123. import org.hibernate.SessionFactory;
  124. import org.hibernate.cfg.Configuration;
  125. import org.hibernate.query.Query;
  126.  
  127. import com.tao.dao.UserDAO;
  128. import com.tao.pojo.User;
  129.  
  130. public class UserDAOImpl implements UserDAO{
  131.  
  132. @Override
  133. public List<User> findAll() {
  134. // TODO Auto-generated method stub
  135. Configuration configure = new Configuration().configure();
  136. SessionFactory factory = configure.buildSessionFactory();
  137. Session session = factory.openSession();
  138. session.beginTransaction();
  139. Query<User> query = session.createQuery("from User", User.class);
  140. List<User> list = query.list();
  141.  
  142. session.getTransaction().commit();
  143. session.close();
  144. factory.close();
  145.  
  146. return list;
  147. }
  148.  
  149. @Override
  150. public User findById(int id) {
  151. // TODO Auto-generated method stub
  152. Configuration configure = new Configuration().configure();
  153. SessionFactory factory = configure.buildSessionFactory();
  154. Session session = factory.openSession();
  155. session.beginTransaction();
  156. Query<User> query = session.createQuery("from User where id=?", User.class);
  157. query.setParameter(0, id);
  158. User user = query.uniqueResult();
  159.  
  160. session.getTransaction().commit();
  161. session.close();
  162. factory.close();
  163.  
  164. return user;
  165. }
  166.  
  167. @Override
  168. public void deleteById(int id) {
  169. // TODO Auto-generated method stub
  170. Configuration configure = new Configuration().configure();
  171. SessionFactory factory = configure.buildSessionFactory();
  172. Session session = factory.openSession();
  173. session.beginTransaction();
  174. //方法1
  175. // User user = session.get(User.class, id);
  176. // session.delete(user);
  177. //放法2
  178. // User user = new User();
  179. // user.setId(id);
  180. // session.delete(user);
  181.  
  182. //方法3
  183. Query query = session.createQuery("delete from User where id=?");
  184. query.setParameter(0, id);
  185. int rows = query.executeUpdate();
  186. System.out.println(rows+"=============rows");
  187. session.getTransaction().commit();
  188. session.close();
  189. factory.close();
  190.  
  191. }
  192.  
  193. @Override
  194. public boolean update(User t) {
  195. // TODO Auto-generated method stub
  196. Configuration configure = new Configuration().configure();
  197. SessionFactory factory = configure.buildSessionFactory();
  198. Session session = factory.openSession();
  199. session.beginTransaction();
  200. //update()只根据Id更新
  201. // session.update(t);
  202.  
  203. //HQL语句(User是类名,name,password是类里面的属性名)
  204. Query query = session.createQuery("update User set name=?,password=? where id=?");
  205. query.setParameter(0, t.getName());
  206. query.setParameter(1, t.getPassword());
  207. query.setParameter(2, t.getId());
  208. int rows = query.executeUpdate();
  209.  
  210. session.getTransaction().commit();
  211. session.close();
  212. factory.close();
  213. if(rows>0) {
  214. return true;
  215. }
  216. return false;
  217. }
  218.  
  219. @Override
  220. public boolean save(User t) {
  221. // TODO Auto-generated method stub
  222. Configuration configure = new Configuration().configure();
  223. SessionFactory factory = configure.buildSessionFactory();
  224. Session session = factory.openSession();
  225. session.beginTransaction();
  226. Integer id = (Integer) session.save(t);
  227.  
  228. session.getTransaction().commit();
  229. session.close();
  230. factory.close();
  231. if(id>0) {
  232. return true;
  233. }
  234. return false;
  235. }
  236.  
  237. @Override
  238. public User login(String name, String password) {
  239. // TODO Auto-generated method stub
  240. Configuration configure = new Configuration().configure();
  241. SessionFactory factory = configure.buildSessionFactory();
  242. Session session = factory.openSession();
  243. session.beginTransaction();
  244. Query<User> query = session.createQuery("from User where name=? and password=?",User.class);
  245. query.setParameter(0, name).setParameter(1, password);
  246. User user = query.uniqueResult();
  247.  
  248. session.getTransaction().commit();
  249. session.close();
  250. factory.close();
  251. return user;
  252. }
  253.  
  254. }
  255. JUnit测试
  256.  
  257. package com.tao.test;
  258.  
  259. import static org.junit.Assert.*;
  260.  
  261. import java.util.List;
  262.  
  263. import org.junit.Test;
  264.  
  265. import com.tao.dao.Impl.UserDAOImpl;
  266. import com.tao.pojo.User;
  267.  
  268. public class JUnit_User {
  269.  
  270. UserDAOImpl impl = new UserDAOImpl();
  271. @Test
  272. public void testAll() {
  273. List<User> list = impl.findAll();
  274. for (User uu : list) {
  275. System.out.println(uu);
  276. }
  277.  
  278. }
  279. @Test
  280. public void testById() {
  281.  
  282. User user = impl.findById(2);
  283. System.out.println(user);
  284. }
  285.  
  286. @Test
  287. public void testdeleteById() {
  288. System.out.println("delete++++++++++++++++++");
  289. impl.deleteById(10);
  290.  
  291. }
  292.  
  293. @Test
  294. public void save() {
  295. User user = new User(12, "ss", "ss");
  296. boolean b = impl.save(user);
  297. System.out.println(b);
  298. }
  299.  
  300. @Test
  301. public void update() {
  302. User user = new User(2, "ss", "222");
  303. impl.update(user);
  304. }
  305.  
  306. //登录
  307. @Test
  308. public void login() {
  309. User user = impl.login("ss", "222");
  310. System.out.println(user);
  311. }
  312.  
  313. }

Hibernate 操作数据库的更多相关文章

  1. hibernate操作数据库总结

    这篇文章用于总结hibernate操作数据库的各种方法 一.query方式 1.hibernate使用原生态的sql语句执行数据库查询 有些时候有些开发人员总觉得用hql语句不踏实,程序出现了错误,就 ...

  2. Java_Web三大框架之Hibernate操作数据库(三)

    使用Hibernate操作数据库需要七个步骤: (1)读取并解析配置文件 Configuration conf = newConfiguration().configure(); (2)读取并解析映射 ...

  3. hibernate操作数据库例子

    1.工程目录结构如下 2.引入需要的jar包,如上图. 3.创建持久化类User对应数据库中的user表 package com.hibernate.配置文件.pojo; import java.sq ...

  4. hibernate操作数据库总结(转)

    一.query方式 1.hibernate使用原生态的sql语句执行数据库查询 有些时候有些开发人员总觉得用hql语句不踏实,程序出现了错误,就猜测因为不是原生态的sql语句,数据库不支持,因此情愿选 ...

  5. Hibernate操作数据库的回调机制--Callback

     1:一般情况下,在使用Hibernate Session存取数据库的代码中,基本上大部分是相同的,如下两个方法所示, //查询Teacher操作 ublic Teacher getTeacher ...

  6. 转 使用Hibernate操作数据库时报:No CurrentSessionContext configured! 异常

    没有currentSession配置错误,即在我们使用currentSession的时候要在hibernate.cfg.xml中进行相关的事务配置:1.本地事务<property name=&q ...

  7. hibernate操作数据库时报错解决方式

    java.sql.SQLException: Parameter index out of range (28 > number of parameters, which is 27). 这个说 ...

  8. Spring MVC基础知识整理➣Spring+SpringMVC+Hibernate整合操作数据库

    概述 Hibernate是一款优秀的ORM框架,能够连接并操作数据库,包括保存和修改数据.Spring MVC是Java的web框架,能够将Hibernate集成进去,完成数据的CRUD.Hibern ...

  9. 5 -- Hibernate的基本用法 --2 2 Hibernate的数据库操作

    在所有的ORM框架中有一个非常重要的媒介 : PO(持久化对象:Persistent Object).持久化对象的作用是完成持久化操作,简单地说,通过该对象可对数据执行增.删.改的操作 ------ ...

随机推荐

  1. 自定义UICollectionViewLayout 布局实现瀑布流

    自定义 UICollectionViewLayout 布局,实现瀑布流:UICollectionView和UICollectionViewCell 另行创建,这只是布局文件, 外界控制器只要遵守协议并 ...

  2. rotate image(旋转数组)

    You are given an n x n 2D matrix representing an image. Rotate the image by 90 degrees (clockwise). ...

  3. JavaScript 跨域之 POST 实现。

    javascript 跨域是一个很常见的问题,其中 jsonp 是一个最常用的手段,但是 jsonp 只支持 get,不支持 post,所以如果想通过 jsonp 来 post 一些数据,就头大了. ...

  4. Spring温故而知新 - bean的装配

    Spring装配机制 Spring提供了三种主要的装配机制: 1:通过XML进行显示配置 2:通过Java代码显示配置 3:自动化装配 自动化装配 Spring中IOC容器分两个步骤来完成自动化装配: ...

  5. AbstractQueuedSynchronizer 原理分析 - Condition 实现原理

    1. 简介 Condition是一个接口,AbstractQueuedSynchronizer 中的ConditionObject内部类实现了这个接口.Condition声明了一组等待/通知的方法,这 ...

  6. C++std函数之transform

    /*//////////////////////////////// template < class InputIterator, class OutputIterator, class Un ...

  7. aliyun ubuntu读取第三方源被forbidden的问题

    使用下面指令添加了一个源: sudo add-apt-repository ppa:webupd8team/java 然后update的时候提示: W: Failed to fetch http:// ...

  8. 使用Selenium对新浪微博模拟登录

    Selenium的配置 在项目中引入Selenium库 下载chromedriver.exe 在项目代码中加入chromedriver位置的配置 使用Selenium Selenim语法 智能等待 隐 ...

  9. Flask快速入门

    flask快速入门 1.1.三种框架比较 Django: 重武器,内部包含了非常多组件:ORM.Form.ModelForm.缓存.Session.中间件.信号等 Flask:短小精悍,内部没有太多组 ...

  10. Python 处理时间的模块

    1.由日期格式转化为字符串格式的函数为: datetime.datetime.strftime().date() 2.由字符串格式转化为日期格式的函数为: datetime.datetime.strp ...