`

SSH学习记录(5)-简单Hibernate

阅读更多
简单Hibernate

1. 数据库建好表

drop table student;

create table student (id int primary key, name varchar(30),age int,class varchar(30));

insert into student values(1,'zhang1',12,'one');

insert into student values(2,'zhang2',13,'one');

insert into student values(3,'zhang3',14,'one');

insert into student values(4,'zhang4',15,'one');

insert into student values(5,'wang1',12,'two');

insert into student values(6,'wang2',13,'two');

insert into student values(7,'wang3',14,'two');

insert into student values(8,'wang4',12,'two');

insert into student values(9,'wang5',12,'two');



drop table course;

create table course (id int primary key, name varchar(30),days int);

insert into course values(1,'Chinese',30);

insert into course values(2,'Math',30);

insert into course values(3,'English',20);



drop table stu_course;

create table stu_course (student int,course int);

insert into stu_course values(1,2);

insert into stu_course values(2,2);

insert into stu_course values(3,2);

insert into stu_course values(4,1);

insert into stu_course values(1,1);

insert into stu_course values(2,1);

insert into stu_course values(3,1);

2. java类

package com.learn.hibernate.dto;



public class Student {

	private int id;

	private String name;

	private int age;

	private String _class;

	/**

	 * @return the id

	 */

	public int getId() {

		return id;

	}

	/**

	 * @param id the id to set

	 */

	public void setId(int id) {

		this.id = id;

	}

	/**

	 * @return the name

	 */

	public String getName() {

		return name;

	}

	/**

	 * @param name the name to set

	 */

	public void setName(String name) {

		this.name = name;

	}

	/**

	 * @return the age

	 */

	public int getAge() {

		return age;

	}

	/**

	 * @param age the age to set

	 */

	public void setAge(int age) {

		this.age = age;

	}

	/**

	 * @return the _class

	 */

	public String get_class() {

		return _class;

	}

	/**

	 * @param _class the _class to set

	 */

	public void set_class(String _class) {

		this._class = _class;

	}

}


3. Test类

package com.learn.hibernate;



import org.hibernate.HibernateException;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.Transaction;

import org.hibernate.cfg.Configuration;



import com.learn.hibernate.dto.Student;



public class Test {

	public static void main(String[] args) {

		try {

			SessionFactory sf = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();

			Session session = sf.openSession();

			Transaction tx = session.beginTransaction();

			for (int i = 0; i < 20; i++) {

				Student customer = new Student();

				customer.setAge(20);

				customer.setName("Li2");

				customer.set_class("three");

				session.save(customer);

			}

			tx.commit();

			session.close();

		} catch (HibernateException e) {

			e.printStackTrace();

		}

	}

}


4. 映射文件

<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC 

"-//Hibernate/Hibernate Mapping DTD//EN"

"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"> 

<hibernate-mapping>  

	<class name="com.learn.hibernate.dto.Student" table="student">

		<id name="id" column="ID">

			<generator class="increment" /> 

		</id>      

		<property name="name"  column="NAME" />

		<property name="age"  column="AGE" /> 

		<property name="_class"  column="CLASS" /> 

	</class> 

</hibernate-mapping>




总结:

最简单的

1.表2.类3.映射文件4.Test类







附加1. Action service dao的关系



Action接到请求,调用service中的方法得到数据,set回request,返回页面。

service中,调用dao的一个或多个方法得到结果返回给action。

dao中是查询数据库的方法,全是执行SQL语句,没有别的方法。



dao的分类:

1. 一种是一个表对应一个dao,包含CRUD方法。

   这样一个service可能要包含多个dao,而且关系多个表的方法不知道是要写在这个dao里好呢还是那个dao里好呢。

2. 另一种是一个service对应一个dao,要什么就写什么。

   这样就有可能多个dao里写同样的方法,都是从一个表里查个什么东西。

3. 再另一种就是一个表对应一个dao,有务需要多表的再对应业务单写dao。

   这样dao就比较多。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics