Hibernate插入对象实战详解

1.目标数据库及maven目录
百度百度百度
百度百度百度
2.设计:
对象dept:

private int deptno;
private String dname;
private String loc;

/**
	 * 构造dept方法
	 * */
	public Dept(int deptno,String dname,String loc) {
	//	spuer;
		this.deptno = deptno;
		this.dname = dname;
		this.loc = loc;
	}

3.xml:
映射文件

<class name="com.hxzy.hql.entity.Dept" table="dept"
		lazy="true" select-before-update="true">
		
		<!--此处主键是自定义,所以用assigned-->
		<id name="deptno" column="deptno" type="java.lang.Integer">
			<generator class="assigned" />
		</id>
		
		<property name="dname" column="dname" type="java.lang.String"/>
		<property name="loc" column="loc" type="java.lang.String" />
		
	</class>	
</hibernate-mapping>

配置文件hibernate.cfg.xml:

<session-factory>

		<!-- jdbc -->
		<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
		<property name="connection.url">jdbc:oracle:thin:@192.168.1.74:1521:orcl</property>
		<property name="connection.username">scott</property>
		<property name="connection.password">tiger</property>

		<!-- SQL dialect方言 -->
		<property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>

		<!-- 在控制台输出sql -->
		<property name="show_sql">true</property>

		<!-- 重启程序时自动更新ddl和配置 -->
		<property name="hbm2ddl.auto">update</property>
		<property name="format_sql">true</property>

		<!-- 映射文件 -->
		<mapping resource="hbm/Emp.hbm.xml" />
		<mapping resource="hbm/Dept.hbm.xml" />

	</session-factory>

4.test
dao层:

/**
	 * add dept
	 * */
	public void addDept(Dept dept) {
		Session session = BaseDao.getSession();//获取session
		transaction = session.beginTransaction();//开启事务
		// <sql-insert>INSERT INTO PERSON (NAME, ID) VALUES ( UPPER(?), ? )</sql-insert>
		String hql = "insert into new com.hxzy.entity.Dept dept (deptno,dname,loc) values (dept.deptno,dept.dname,dept.loc)";//
		try {
		//	session.createQuery(hql).executeUpdate();//执行sql
			session.save(dept);
			transaction.commit();//提交事务
		}catch(Exception e) {
			e.printStackTrace();
			transaction.rollback();//事务异常则回滚
		}
	}
	
	/**
	 * select all
	 * */
	public List<Dept> getDeptList(){
		Session session = BaseDao.getSession();//获取会话
		transaction = session.beginTransaction();//开启事务
		List<Dept> deptList = new ArrayList<Dept>();
		String hql = "select new com.hxzy.hql.entity.Dept(dept.deptno,dept.dname,dept.loc) from Dept dept ";
		try {
			Query query = session.createQuery(hql);//创建hql query
			deptList = query.list();//查出结果集并接收
			transaction.commit();//提交事务
		}catch(Exception e) {
			e.printStackTrace();//输出异常信息
			transaction.rollback();//有异常则回滚
		}finally {
			destory();//关闭资源
		}
		return deptList;
	}

Test:

DeptDao deptDao = new DeptDaoImpl();
		Dept dept = new Dept(50, "gz", "hxyz");
		deptDao.addDept(dept);
		List<Dept> deptList = deptDao.getDeptList();
		System.out.println(" deptno\tdname\tloc");
		for(Dept d:deptList) {
			System.out.println(d.getDeptno()+"\t"+d.getDname()+"\t"+d.getLoc());
		}

输出结果:
百度百度百度

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值