67,541
社区成员
发帖
与我相关
我的任务
分享
<%@ page language="java" contentType="text/html; charset=GB2312"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<body>
<center>
输入要添加的书名:
<s:form action="add.action">
<s:textfield name="bookname" />
<s:submit value="确定" />
</s:form>
</center>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=GB2312"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<body>
<center>
已插入书名列表:
<br>
<table border="1">
<s:iterator value="list">
<tr>
<td>
<s:property value="bookname" />
</td>
</tr>
</s:iterator>
</table>
</center>
</body>
</html>

<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory >
<property name="show_sql">true</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/book</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver </property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">admin</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<mapping resource="sunyang/domain/Book.hbm.xml"/>
</session-factory>
</hibernate-configuration>
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.i18n.encoding" value="GBK" />
<package name="default" extends="struts-default">
<action name="add" class="sunyang.action.BookAction" method="addBook">
<result type="chain">list</result>
</action>
<action name="list" class="sunyang.action.BookAction" method="ListBook">
<result>/success.jsp</result>
</action>
</package>
</struts>
package sunyang.action;
import java.util.List;
import sunyang.domain.Book;
import sunyang.service.BookService;
import sunyang.service.BookServiceHibernateImpl;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class BookAction extends ActionSupport {
private BookService service;
private String bookname;
private List list;
// 省略对应bookname和list的getter和setter
public BookAction() {
service = new BookServiceHibernateImpl();
}
public String addBook() {
Book book = new Book();
book.setBookname(bookname);
System.out.println(bookname);
service.add(book);
return SUCCESS;
}
public String ListBook() {
List l = service.find();
setList(l);
return SUCCESS;
}
public String getBookname() {
return bookname;
}
public void setBookname(String bookname) {
this.bookname = bookname;
}
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
}
Book.java
package sunyang.domain;
public class Book {
private Integer id;
private String bookname;
public Book() {
}
public Book(Integer id) {
this.id = id;
}
public Book(Integer id, String bookname) {
this.id = id;
this.bookname = bookname;
}
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public String getBookname() {
return this.bookname;
}
public void setBookname(String bookname) {
this.bookname = bookname;
}
}
Book.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="sunyang.domain.Book" table="book" catalog="book">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<property name="bookname" type="java.lang.String">
<column name="bookname" length="45" />
</property>
</class>
</hibernate-mapping>
BookService.java
package sunyang.service;
import java.util.List;
import sunyang.domain.Book;
public interface BookService {
// 插入信息操作
public void add(Book book);
// 查询所有信息操作
public List find();
}
BookServiceHibernateImpl.java
package sunyang.service;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import sunyang.domain.Book;
public class BookServiceHibernateImpl implements BookService {
//实例化Book对象的session工厂,以便调用Hibernate接口
public static SessionFactory sessionFactory;
static {
try {
Configuration config = new Configuration();
config.addClass(Book.class);
sessionFactory = config.buildSessionFactory();
} catch (Exception e) {
e.printStackTrace();
}
}
public void add(Book book) {
Session session = sessionFactory.openSession();
//声明并管理事务
Transaction tx = null;
try {
tx = session.beginTransaction();
session.saveOrUpdate(book);
tx.commit();
} catch (Exception e) {
if (tx != null) {
tx.rollback();
}
} finally {
session.close();
}
}
public List find() {
Session session = sessionFactory.openSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
Query query = session.createQuery("from Book");
List list = query.list();
tx.commit();
return list;
} catch (Exception e) {
if (tx != null) {
tx.rollback();
}
} finally {
session.close();
}
return null;
}
}