1、显示
在要显示的页面body后写<script type="text/javascript">把ajax写入</script>
$(function(){
$.ajax({
type: "POST",
url: "/ZhangMengNa/cuisine!showAll", //项目名/文件名/要实现是显示方法
data: $('#form').serialize(), //
dataType:"json",
success: function (res) {
if(res!=null&&res.length>0){
var _tr='';
$("#TableData").empty(); //先清空列表,列表的名称
$.each(res,function(i,v){ //每循环一次数组的时候,拼接一条html
_tr=_tr+'<tr align="center" valign="middle" id="TableTitle"><td>'+v.cid+'</td><td>'+v.cname+'</td><td>操作</td></tr>'
});
$("#TableData").append(_tr); //在循环之后将拼接后的html追加到根节点(列表)
}
},
error: function(data) {
alert("系统异常");
}
});
});
配置struts.xml
<action name="cuisine!*" //ajax url中写的名字
class="com.dyx.controller.CuisineController" //类路径 类名首字母大写
method="{1}">
</action>
粘贴类路径创建类 创建方法 在 controller包下
package com.dyx.controller;
public class CuisineController{
//注意struts2 CourseController中所有方法的返回值类型都是String *****
//接口
//在类下创建属性,写他的set get方法
List<Cuisine> list=null; //要有一个Cuisine集合 还要有他的get set方法
public String showAll() { //在ajax url中写的方法在这里进行创建
return "showAll";//----》result 标签的name属性有关 把集合传递到页面上
}
//List集合的get set方法
public List<Cuisine> getList() {
return list;
}
public void setList(List<Cuisine> list) {
this.list = list;
}
}
在struts.xml 配置result标签
<action name="cuisine!*" //ajax url中写的名字
class="com.dyx.controller.CuisineController" //类路径 类名首字母大写
method="{1}">
<result name="showAll" type="json"> //显示方法
<param name="root">list</param>
</result>
</action>
配置好后集合就可以往回调函数中专递了
在CuisineController中没有Cuisine
创建一个Cuisine 在pojo包下
package com.dyx.pojo;
public class Cuisine {
private Integer cid;
private String cname;
//创建这两个属性的get set方法
public Integer getCid() {
return cid;
}
public void setCid(Integer cid) {
this.cid = cid;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
}
在CuisineController中调Service、Dao层完整查询的功能
package com.dyx.controller;
public class CuisineController{
//注意struts2 CourseController中所有方法的返回值类型都是String *****
//接口
//接口 实现类
CuisineService cservice = new CuisineServiceImpl//通过接口的方式创建一个实现类对象 不需要创建get set方法
List<Cuisine> list=null; //要有一个Cuisine集合 还要有他的get set方法
public String showAll() { //在ajax url中写的方法在这里进行创建 主要负责接传值
return "showAll";//----》result 标签的name属性有关 把集合传递到页面上
}
//Cuisine集合的get set方法
public List<Cuisine> getList() {
return list;
}
public void setList(List<Cuisine> list) {
this.list = list;
}
在service包下创建CuisineService接口
package com.dyx.service;
public interface CuisineService {
}
在service.impl包下创建CuisineService接口的实现类CuisineServiceImpl
package com.dyx.serviceimpl;
import com.dyx.service.CuisineService;
public class CuisineServiceImpl implements CuisineService {
}
在CuisineController中通过 cuisine.shollAll 给list集合赋值在showAll下
public String showAll(){
list=cservice.showAll();
return "showAll";//-->result 标签的name属性
}
在接口CuisineService中需要返回一个集合showAll方法
package com.dyx.service;
import java.util.List;
import com.dyx.pojo.Cuisine;
public interface CuisineService {
List<Cuisine> showAll();
}
在实现类CuisineServiceImpl中添加showAll方法
调用Dao层方法
package com.dyx.serviceimpl;
import java.util.List;
import com.dyx.dao.CuisineDao;
import com.dyx.pojo.Cuisine;
import com.dyx.service.CuisineService;
public class CuisineServiceImpl implements CuisineService {
CuisineDao cdao=new CuisineDao(); //调用Dao层方法
public List<Cuisine> showAll() {
return cdao.showAll(); //因调用Dao层方法所以需要返回一个cdao.showAll()
}
}
创建CuisineDao层 在Dao包下创建
再创建Dao层方法
package com.dyx.dao;
import java.util.List;
import org.hibernate.Session;
import com.dyx.pojo.Cuisine;
import com.dyx.util.DBUtil;
public class CuisineDao extends DBUtil{ //继承DBUtil
Session hibernateSession = getSession(); //在中DBUtil 获取一个Session
public List<Cuisine> showAll() {
return hibernateSession.createQuery("from Cuisine").list();
}
}
package com.dyx.util;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.dyx.pojo.Cuisine;
public class DBUtil {
public Session getSession(){
//加载配置文件
Configuration cfg = new Configuration().configure("hibernate.cfg.xml");
// 根据配置文件获取session工厂对象
SessionFactory sessionFactory = cfg.buildSessionFactory();
// 从session工厂里面获取session对象
Session session = sessionFactory.openSession();
// 开启事务
return session;
}
/*public Session getCourseSession(){
//加载配置文件
Configuration cfg = new Configuration().configure("Course.cfg.xml");
// 根据配置文件获取session工厂对象
SessionFactory sessionFactory = cfg.buildSessionFactory();
// 从session工厂里面获取session对象
Session session = sessionFactory.openSession();
// 开启事务
return session;
}*/
public static void main(String[] age){
// 加载配置文件
Configuration cfg = new Configuration().configure("hibernate.cfg.xml");
// 根据配置文件获取session工厂对象
SessionFactory sessionFactory = cfg.buildSessionFactory();
// 从session工厂里面获取session对象
Session session = sessionFactory.openSession();
// 开启事务
Transaction tx = session.beginTransaction();
// 保存更新数据
Cuisine cui = new Cuisine();
// cui.setCid("1");
cui.setCname("zhangsan");
session.save(cui);
System.out.println();
// 提交事务
tx.commit();
// 关闭资源
session.close();
}
}
写一个映射文件 在pojo包下创建cuisine.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.dyx.pojo.Cuisine" table="t_cuisine"> //地址 表名
<id name="cid" column="cid">
<generator class="native"/>
</id>
<property name="cname" column="cname"></property>
</class>
</hibernate-mapping>
在hibernate.cfg.xml中添加映射文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 配置连接数据库的基本信息 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/dongyx?useUnicode=true&characterEncoding=UTF8</property> 数据库名称
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">x5</property>
<!-- 配置hibernate方言 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- hibernate显示发送sql语句 -->
<property name="hibernate.show_sql">true</property>
<!-- hibernate格式化sql语句 -->
<property name="hibernate.format_sql">true</property>
<!-- 数据定义语言,主要是对表的操作 -->
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- hibernate映射文件加载 -->
<mapping resource="com/dyx/pojo/cuisine.hbm.xml"/>
<mapping resource="com/dyx/pojo/caipin.hbm.xml"/>
</session-factory>
</hibernate-configuration>