Controller

package com.controller;

import com.entity.Piano;
import org.dom4j.rule.Mode;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import com.service.PianoServiceImpl; import javax.annotation.Resource;
import java.util.List; @Controller
@RequestMapping("/piano")
public class PianoController {
static {
System.out.println("piano服务器");
} @Resource
private PianoServiceImpl pianoService; @RequestMapping("/hello")
public String hello(){
return "index";
} @RequestMapping("/list")
public String list(Model model) {
System.out.println("hello");
List<Piano> list = this.pianoService.findAll();
model.addAttribute("list", list);
return "list";
} @RequestMapping("/del/{id}")
public String del(@PathVariable int id,Model model) {
this.pianoService.del(id);
model.addAttribute("result", "删除成功");
return "result";
} @RequestMapping("/newPiano")
public String newPiano(){
return "piano";
} @RequestMapping("/add")
public String addPiano(Piano piano, Model model) {
String i = this.pianoService.add(piano);
if (i != "") {
model.addAttribute("result", "添加"+i+"成功");
return "result";
} else {
model.addAttribute("result", "添加失败");
return "result";
}
} @RequestMapping("/update/{id}")
public String updatePianoById(@PathVariable int id, Model model) {
System.out.println("修改Piano:" + id);
Piano piano = this.pianoService.getById(id);
piano.toString();
model.addAttribute("piano",piano);
return "update";
} @RequestMapping("/updatePiano/{id}")
public String updatePiano(Piano piano,Model model,@PathVariable int id){
System.out.println("UpdatePiano:"+piano.toString());
//piano.setId(id);
this.pianoService.update(piano);
model.addAttribute("result","更新成功"+piano.toString());
return "result";
}
}

Service

package com.service;

import com.dao.PianoDaoImpl;
import com.entity.Piano;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource;
import java.util.List; @Service
@Transactional(readOnly = false)
public class PianoServiceImpl { @Resource
private PianoDaoImpl pianoDao; /**
* @param
* @return java.util.List<com.entity.Piano>
* @description
* @date 2020/3/25
* @author Charlotte
*/
public List<Piano> findAll() {
return this.pianoDao.findAllPiano();
} public void del(int id) {
this.pianoDao.delPiano(id);
} public String add(Piano piano) {
return this.pianoDao.save(piano);
} public Piano getById(int id){
return this.pianoDao.getById(id);
} public void update(Piano piano){
System.out.println("updateService:"+piano.getBrand());
this.pianoDao.update(piano);
}
}

Dao

package com.dao;

import com.entity.Piano;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.query.Query;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource;
import java.util.List; //持久层注解
@Repository
public class PianoDaoImpl { @Resource
private SessionFactory sessionFactory; public List<Piano> findAllPiano() {
Query query = this.sessionFactory.getCurrentSession().createQuery("from Piano");
return query.list();
} public void delPiano(int id) {
//Query query = this.sessionFactory.getCurrentSession().createQuery("delete from Piano where id = :id ");
Session session = this.sessionFactory.getCurrentSession();
session.createQuery("delete Piano p where p.id=" + id).executeUpdate();
//Piano piano = this.sessionFactory.getCurrentSession().delete(); } public String save(Piano piano) {
this.sessionFactory.getCurrentSession().save(piano);
return piano.getBrand();
} public Piano getById(int id){
return this.sessionFactory.getCurrentSession().get(Piano.class,id);
} public void update(Piano piano){
System.out.println("updateDao:"+piano.toString());
Session session = this.sessionFactory.getCurrentSession();
session.saveOrUpdate(piano); }
}

Spring+hibernate+JSP实现Piano的数据库操作---2.Controller+Service+Dao的更多相关文章

  1. Spring+hibernate+JSP实现Piano的数据库操作---4.配置文件

    1.applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans ...

  2. Spring+hibernate+JSP实现Piano的数据库操作---5.JSP页面

    1.index.jsp <%-- Created by IntelliJ IDEA. User: lenovo Date: 2020/3/25 Time: 14:09 To change thi ...

  3. Spring+hibernate+JSP实现Piano的数据库操作---3.Piano实体类

    package com.entity; import org.springframework.stereotype.Component; import javax.persistence.*; @Co ...

  4. Spring+hibernate+JSP实现Piano的数据库操作---1.目录结构+展示

    目录结构 界面

  5. jsp数据库连接大全和数据库操作封装到Javabean

    一.jsp连接Oracle8/8i/9i数据库(用thin模式) testOracle.jsp如下: <%@ page contentType="text/html;charset=g ...

  6. jsp JDBC连接MySQL数据库操作标准流程参考

    1. 此案例以帐号密码后台更新维护为例子,对数据库调取数据更新流程进行演示: 代码示例: <%@page import="java.io.IOException"%> ...

  7. spring+hibernate--直接修改数据库,再通过hibernate查询数据不变

    这个问题已经很多天了,一直没有时间解决,不过还好是自己的项目,没什么影响. 刚好今天没事,想好好解决一下这个问题. hibernate主要配置如下: <property name="h ...

  8. 基于Spring和Mybatis拦截器实现数据库操作读写分离

    首先需要配置好数据库的主从同步: 上一篇文章中有写到:https://www.cnblogs.com/xuyiqing/p/10647133.html 为什么要进行读写分离呢? 通常的Web应用大多数 ...

  9. spring boot快速入门 4: jpa数据库操作 实现增删改查

    spring boot jpa逆向生成表 简单实例: 第一步:pom文件: <?xml version="1.0" encoding="UTF-8"?&g ...

随机推荐

  1. caffe的python接口学习(3)训练模型training

    如果不进行可视化,只想得到一个最终的训练model, 那么代码非常简单,如下 : import caffe caffe.set_device(0) caffe.set_mode_gpu() solve ...

  2. Dll的多字节和Unicode

    Dll的多字节和Unicode 分类: MFC2013-10-17 13:00 28人阅读 评论(0) 收藏 举报 dll字符集字符集多字节Unicode 我们定义dll的时候会区分: 字符集:使用多 ...

  3. centos7时间调整

    查看时区是否正确,命令date -R: 不正确先调整时区,命令tzselect: 安装ntp,命令yum install ntp: 同步时间,命令ntpdate cn.pool.ntp.org: 设置 ...

  4. Solaris 10上Oracle 10g安装步骤图解

    文章目录 1. 说明 2. 查看相关包 3. 添加用户和组 4. 设置oracle环境变量 5. 创建Oracle软件目录 6. 修改OS参数 7. 上传Oracle软件包并解压 8. 开始安装 9. ...

  5. JVM源码分析之深入分析Object类finalize()方法的实现原理

      原创申明:本文由公众号[猿灯塔]原创,转载请说明出处标注 ​“365篇原创计划”第十篇. 今天呢!灯塔君跟大家讲: 深入分析Object类finalize()方法的实现原理 finalize 如果 ...

  6. JavaScript动画实例:递归分形图动态展示

    在“JavaScript图形实例:SierPinski三角形” 和“JavaScript图形实例:Levy曲线及其变形”等文章中我们介绍了通过递归生成分形图形的方法.我们可以将绘制的分形图形每隔一定的 ...

  7. css自动省略号...,通过css实现单行、多行文本溢出显示省略号

    网页开发过程中经常会遇到需要把多行文字溢出显示省略号,这篇文章将总结通过多种方法实现文本末尾省略号显示. 一.单行文本溢出显示省略号(…) 省略号在ie中可以使用text-overflow:ellip ...

  8. JAVA基础笔记10-11-12-13-14

    十.今日内容介绍 1.继承 2.抽象类 3.综合案例---员工类系列定义 01继承的概述 *A:继承的概念 *a:继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系 *b:在J ...

  9. SpringCloud组件的停更和替换说明

    SpringCloud的Hoxton版本,和之前的版本相比,用新的组件替换掉了原来大部分的组件,老的组件现在处于 停更不停用 的状况. 详情见下图(× 的表示之前的组件,现在停更了的:√ 的表示新的替 ...

  10. 从零开始学Electron笔记(四)

    在之前的文章我们介绍了一下Electron的这个remote模块,接下来我们继续说一下Electron的右键菜单的制作. 在我们日常我们使用的软件中都会存在右键菜单的情况,比如我们用到的浏览器,开发所 ...