Servlet完成留言小功能
首先我们来一个form表单
<form action="/comment" method="post">
<input type="text" name="name">
<input type="text" name="comment">
<input type="submit" value="comment">
</form>
创建Comment的javabean类
public class Comment {
private int id;
private String name;
private String comment;
}
然后我们创建hibernatemapping配置文件
Comment.hbm.xml
<hibernate-mapping package="comment">
<!-- 指明类和表的对应关系 table:表名 name:类名 -->
<class table="tb_comment" name="Comment">
<!-- 配置我们的映射关系 -->
<!-- 主键映射关系 -->
<id name="id" column="id">
<generator class="native"/>
</id>
<!-- 配置非主键属性 -->
<property name="name" column="name"></property>
<property name="comment" column="comment"></property>
</class>
</hibernate-mapping>
然后根据这个comment路径
我们当然需要一个Servlet
那么我们创建一个CommentServlet
public class CommentServlet extends BaseServlet {
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Comment comment = BeanUtil.toBean(request.getParameterMap(), Comment.class);
Session session = DaoUtil.getSession();
Transaction transaction = session.beginTransaction();
session.save(comment);
transaction.commit();
}
}
我们先从request中获取参数
request.getParameterMap()获取参数
用BeanUtil的toBean方法转换成comment对象
然后我们获取hibernate的session对象
开启transaction事务
然后保存comment对象
还有hibernate的总配置文件不要忘记了
<hibernate-configuration>
<!-- 通常,一个session-factory节点代表一个数据库 -->
<session-factory>
<!-- 1. 数据库连接配置 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///abc</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123</property>
<!--数据库方法配置,hibernate在运行的时候,会根据不同的方言生成符合当前数据库语法的sql-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
<!-- 2. 其他相关配置 -->
<!-- 2.1 显示hibernate在运行时候执行的sql语句 -->
<property name="hibernate.show_sql">true</property>
<!--3. 加载所有映射-->
<mapping resource="comment/Comment.hbm.xml"/>
</session-factory>
</hibernate-configuration>