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());
		}

输出结果:
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章