hibernate初级入门,实现增删改查 1. 添加数据库表user CREATE TABLE user ( id int(11) NOT NULL AUTO_INCREMENT , username varchar(50) DEFAULT NULL , age int(11) DEFAULT NULL , PRIMARY KEY (id) ); 2.创建pojo类User.java package com.bobo.domain; import java.io.Serializable; //domain对象/JavaBean/pojo (plain old/ordinary java object)简单java对象 //hibernate需要序列化对象 这样可以唯一的对应数据库的一条记录 public class User implements Serializable{ private static final long serialVersionUID = 1L; private Integer id; private String userName; private Integer age; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } } 3.配置user表和对象User的关系映射配置,配置文件:User.hbm.xml <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping > <class name="com.bobo.domain.User"> <id name="id" column="id" type="java.lang.Integer"> <!--主键生成策略--> <generator class="increment"></generator> </id> <property name="userName" column="username" type="java.lang.String"/> <property name="age" column="age" type="java.lang.Integer"/> </class> </hibernate-mapping> 4.配置hibernate的核心文件hibernate.cfg.xml <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!----> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8</property> <property name="connection.username">root</property> <property name="connection.password">root</property> <property name="show_sql">true</property> <!--加载类与数据库表映射配置--> <mapping resource="com/bobo/domain/User.hbm.xml"/> </session-factory> </hibernate-configuration> 5.初始化配置文件的工具类 package com.bobo.util; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; /** * 初始化配置工具类,获取MySessionFactory对象,确保只有一个,因为它很好资源 * */ final public class MySessionFactory { private static SessionFactory sessionFactory = null; private MySessionFactory(){ } static{ sessionFactory = new Configuration().configure().buildSessionFactory(); } public static SessionFactory getSessionFactory(){ return sessionFactory; } } 6.写测试类TestMain.java package com.bobo.view; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.*; import com.bobo.domain.User; import com.bobo.util.MySessionFactory; public class TestMain { public static void main(String[] args) { //添加用户 //addUser(); //更新用户 updateUser(); } //删除用户 public static void deleteUser() { Session session = MySessionFactory.getSessionFactory().openSession(); Transaction tx = session.beginTransaction(); User user = (User)session.load(User.class, 3); session.delete(user); //删除操作 delete from User where id=? tx.commit(); session.close(); } //更新用户 public static void updateUser() { SessionFactory sessionFactory = MySessionFactory.getSessionFactory(); Session session = sessionFactory.openSession(); Transaction tx = null; try{ tx = session.beginTransaction(); User user = (User) session.load(User.class, 3);//执行select 操作select user0_.id as id1_0_0_, user0_.username as username2_0_0_, user0_.age as age3_0_0_ from User user0_ where user0_.id=? user.setAge(19);//执行了update操作 update User set username=?, age=? where id=? tx.commit(); }catch(Exception e){ if(tx != null) tx.rollback(); throw new RuntimeException(e.getMessage()); }finally{ if(session != null && session.isOpen()) session.close(); } } //添加用户 public static void addUser() { //1.初始化hibernate配置 Configuration cfg = new Configuration().configure(); //2.创建一个SessionFactory SessionFactory sessionFactory = cfg.buildSessionFactory(); //3.获取一个session对象 Session session = sessionFactory.openSession(); //4.开启事务 Transaction tx = session.beginTransaction(); //5.插入操作 User user = new User(); user.setUserName("bobo"); user.setAge(20); session.save(user); //6.提交事务 tx.commit(); //7.关闭资源 session.close(); } }
相关推荐
主要介绍了Hibernate初体验及简单错误排除代码详解,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
对 Hibernate 初体验 1.新建一个java工程,工程名为Hiberante1 2.导入相应的jar包 1)hibernate需要导入这些包 2)因为我们需要操作数据库所以要导入数据库的包,我用的mysql数据库 3.创建数据库以及表 ...
应用Acegi框架开发J2EE安全的实例!
NULL 博文链接:https://weizhilizhiwei.iteye.com/blog/2029392
学习中使用的持久层技术 是 EJB,JPA 注解方式,底层应用的是 Hibernate 实现和 MySql 数据库,应用服务器采 用的是 JBoss 4.2.0。随着笔者的学习笔记,大家一起学习吧,还是那句话,有什么问题 大家一起探讨。有...
19 Jsp与动态网站初体验 20 状态管理 21 JSTL和EL 22 JSP综合运用 23-24 项目案例:论坛短消息 25-26 项目案例:电子书城 27 Servlet基础 28 servlet应用 29 JSP+Servlet+JavaBean 30自定义MVC框架 31 指导学习:...
SSH初体验 1 什么是SSH 都说Y2学年J2EE方向的学习重点是SSH框架的掌握。那么什么是SSH呢?是否真的开发J2EE大型框架很难呢?今天我们将通过一个实例,在常用IDE—Eclipse3.2.2+MyEclipse5.5.1+Tomcat6.0的基础之上给...
2.1 Java项目开发初体验 11 2.1.1 新建Java项目 12 2.1.2 导入外部Java类 16 案例2-1 随机抽奖程序的实现 18 2.1.3 打开及关闭已有Java项目 22 2.2 Eclipse中编写Java程序的技巧 24 2.2.1 新建Java类 ...
JessMA在设计之初就充分注重功能、性能与使用体验。JessMA主要特点: 1) 功能全面:内置稳定高效的MVC基础架构和DAO框架,支持Action拦截、Form Bean / Dao Bean / Spring Bean装配和声明式事务,提供国际化、文件...
第 2章 Ajax 初体验 5 2.1 Ajax带来的优势 5 2.2 传统的 JSP 聊天室 6 2.2.1 实现业务逻辑组件 7 2.2.2 实现控制器 11 2.2.3 实现视图 12 2.2.4 JSP聊天室的问题 14 2.3 Ajax聊天室 14 2.3.1 异步发送请求 ...
第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用...
其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理Struts和Hibernate。 WebStorage HTML新增的本地存储解决...