Hibernate访问数据库,HibernateTemplate操作数据库,实现增删改查

1、首先创建封装Hibernate的Dao类

import java.io.Serializable;
import java.util.List;

import javax.annotation.Resource;

import org.springframework.orm.hibernate5.HibernateTemplate;
import org.springframework.stereotype.Component;

@Component
public class UserDao<T> {
    
    @Resource(name="hibernateTemplate")
    private HibernateTemplate hibernateTemplate;
    
    public void add(Object o){
        hibernateTemplate.save(o);
    }
    public List<T> select(String  hql){
        List<T> stus=(List<T>) hibernateTemplate.find(hql);
        return stus;
    }
    
    public Object get(Class clazz,Serializable id) {
        Object obj = hibernateTemplate.get(clazz, id);
        return obj;
    }
    public Object getbyid(Class class1,Long id){
        Object object = hibernateTemplate.get(class1, id);
        return object;
    }
    
    public void delete(Class clazz,Serializable id) {
        hibernateTemplate.delete(this.get(clazz, id));
    }
    
    public void update(Object o) {
        hibernateTemplate.update(o);
    }
    
}

2、中间服务类

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.ssh.bean.Student;
import com.ssh.bean.Userinfodz;
import com.ssh.dao.UserDao;


@Transactional
@Service
public class UserService {
    
    @Resource(name="userDao")
    private UserDao userDao;
    
    public void add(Student stu){
        userDao.add(stu);
    }
    
    public List<Student> showUser(){
//        List<Student> stus = userDao.select("from Student");//查询所有
        List<Student> stus = userDao.select("from Student where pword LIKE  '%1%'");//条件查询
        /*users=(List<Student>)hibernateTemplate.find("from User where uname=?","秦维");*/
        return stus;
    }
    public List<Userinfodz> showinfo(){
        
        List<Userinfodz> inList = userDao.select("from Userinfodz");
        
        return inList;
    }
    public Userinfodz getobjUserinfodzbyid (Long ab){
        Userinfodz userinfodz = (Userinfodz) userDao.getbyid(Userinfodz.class,ab );
        
        return userinfodz;
    }
    public void adduserinfo(Userinfodz userinfodz){
        userDao.add(userinfodz);
    }
}

3、测试类:

    @Resource(name="userService")
    private UserService userService;

Userinfodz userinfodz2 = userService.getobjUserinfodzbyid(11L);

(1)、查询

//        List<Student> stus = userDao.select("from Student");//查询所有
        List<Student> stus = userDao.select("from Student where pword LIKE  '%1%'");//条件查询

 

根据id查询

    public Userinfodz getobjUserinfodzbyid (Long ab){
        Userinfodz userinfodz = (Userinfodz) userDao.getbyid(Userinfodz.class,ab );
        
        return userinfodz;
    }

(2)、插入数据

        Userinfodz userinfodz = new Userinfodz();
        userinfodz.setUsername("sqlname");
        userinfodz.setUserno(999);
        userinfodz.setUserpwd("sqlpwd");
        userService.adduserinfo(userinfodz);

@Resource(name="hibernateTemplate")
    private HibernateTemplate hibernateTemplate;

hibernateTemplate.save(userinfodz);

(3)删除数据

dao方法

    public Object getbyid(Class class1,Long id){
        Object object = hibernateTemplate.get(class1, id);
        return object;
    }
    
    public void deletebyid(Class class1,Long id){
        hibernateTemplate.delete(this.getbyid(class1, id));
    }

中间服务

    public void deletebyid(Long ab){
        userDao.deletebyid(Userinfodz.class, ab);
    }

测试

userService.deletebyid(10L);

(4)修改数据

    public void updatebyid(Class class1,String uname,String upwd,Long id){
        Userinfodz userinfodz = (Userinfodz) this.getbyid(class1,id );
        userinfodz.setUsername(uname);
        userinfodz.setUserpwd(upwd);
        hibernateTemplate.update(userinfodz);
    }

    public void updatebyid(Class class1,String uname,String upwd,Long id){
        userDao.updatebyid(class1,uname,upwd, id);
    }

userService.updatebyid(Userinfodz.class,"修改的铭2","修改的pwd2", 7L);

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/414778.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端学习(2713):重读vue电商网站33之实现首页路由重定向

我们想要在登录之后重定向到 /welcome 路径&#xff0c;于是需要添加子路由children 属性&#xff0c;然后设置 redirect重定向到我们的子路由。 然后在我们组件 Home.vue 的右侧主体区域&#xff0c;放置一个路由占位符 router-view 即可。

@Value(${xxxx})注解的配置及使用

代码中的用法 Spring 通过Value注解获取*.porperties文件code的内容&#xff0c;然后赋值给使用该注解的Code属性上。 Value("${code}") private String Code; 看一下这个resource.properties文件&#xff08;resource为文件名称&#xff09; code002 spring中的配置…

国家语言,语言代码,locale id对应表

国家语言&#xff0c;语言代码&#xff0c;locale id对应表。比如 en_US对应的id为1033&#xff0c; 中文的localezh_CN&#xff0c;id2052. LocaleLanguagecodeLCIDstringLCIDDecimalLCIDHexadecimalCodepageAfrikaansafaf10784361252Albaniansqsq1052 1250Amharicamam1118 A…

myeclipse链接数据库,SQL语句实现增删改查

1、创建properties文件 #oracle #driveroracle.jdbc.OracleDriver #urljdbc\:oracle\:thin\:localhost\:1521\:xe #usernamesystem #passwordmanager #mysql drivercom.mysql.jdbc.Driver urljdbc\:mysql\://192.168.0.121\:3306/test?user\root&password\root&chara…

前端学习(2714):重读vue电商网站34之侧边栏路由改造

通过给侧边栏设置 router 属性为 true&#xff0c;我们就能开启 vue-router 路由模式&#xff0c;然后将我们二级菜单的 index 属性绑定我们的数据 path 即可。

(转)spring中的拦截器(HandlerInterceptor+MethodInterceptor)

1. 过滤器跟拦截器的区别 在说拦截器之前&#xff0c;不得不说一下过滤器&#xff0c;有时候往往被这两个词搞的头大。 其实我们最先接触的就是过滤器&#xff0c;还记得web.xml中配置的<filter>吗~ 你应该知道spring mvc的拦截器是只拦截controller而不拦截jsp,html 页…

ASP.NET Core源码学习(一)Hosting

ASP.NET Core源码的学习&#xff0c;我们从Hosting开始&#xff0c; Hosting的GitHub地址为&#xff1a;https://github.com/aspnet/Hosting.git 朋友们可以从以上链接克隆或是下载。 为什么是从Hosting开始学习呢&#xff1f;我们来看看ASP.NET Core MVC项目中的Pragram.CS中的…

前端学习(2715):重读vue电商网站35之在sessionStorage保存左侧菜单栏的激活状态

为了让我们点击二级菜单时&#xff0c;会有一个激活效果&#xff0c;而且是保持状态&#xff0c;我们需要将利用 element-ui 菜单栏相关 default-active 属性&#xff0c;来让菜单保持激活。 由于每个二级菜单都有一个路由链接&#xff0c;不妨将路由路径 path 存储在 sessionS…

Struts2的通配符配置方式

Struts2的Action类很有意思&#xff0c;你可以使用3种方式来实现具体的Action类&#xff1a; 让你的Action类继承自ActionSupport类&#xff08;项目中最常用这种方式&#xff0c;因为ActionSupport类中定义了很多帮助方法&#xff09;让你的Action类实现Action接口使用POJO的…

spring拦截器-过滤器的区别

1. 理解 拦截器 &#xff1a;是在面向切面编程的时候&#xff0c;在你的 service 或者一个方法前调用一个方法&#xff0c;或者在方法后调用一个方法&#xff1b;比如动态代理就是拦截器的简单实现&#xff0c;在你调用方法前打印出字符串&#xff08;或者做其它业务逻辑的操作…

前端学习(2716):重读vue电商网站36之slot插槽使用

项目需求&#xff1a;由于用户列表状态后台返回的是 true/false&#xff0c;无法进行渲染&#xff0c;而我们需要的是有一个Switch开关来控制我们的状态。添加一个template 模板后&#xff0c;此时就可以用 slot-scope 作用域插槽来获取我们数据列表中的每一行数据&#xff0c;…

jsp调用struts,jsp调用action,action获取表单提交的参数

自定义action类。LgqAction&#xff1a; Component Scope(value"prototype") public class LgqAction { private Connection conn null; private PreparedStatement pstmt null; private ResultSet rs null; public String execut…

员工信息增删改查

1 #Author guixin2 def find():3 4 查询语法如下&#xff1a;5 find name,age from staff_table where age > 226 find * from staff_table where dept IT7 find * from staff_table where enroll_date like 20138 9 data input("查询:&…

springmvc.xml 中 url-pattern/url-pattern节点详解

1. 先来上段常见的代码 1 <!-- MVC Servlet -->2 <servlet>3 <servlet-name>springServlet</servlet-name>4 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>5 <…

前端学习(2717):重读vue电商网站37之通过switch开关更改用户状态

首先&#xff0c;在 switch 开关添加一个 change 事件&#xff0c;并且通过作用域插槽的形式&#xff0c;将该行数据作为参数传入&#xff0c;目的是为了后续的修改。 在函数内我们将传递过来的参数作为我们请求的参数&#xff0c;通过 put 方式修改我们的后台数据 。

边框回归(Bounding Box Regression)详解

原文地址&#xff1a;http://blog.csdn.net/zijin0802034/article/details/77685438 Bounding-Box regression 最近一直看检测有关的Paper, 从rcnn&#xff0c; fast rcnn, faster rcnn, yolo, r-fcn, ssd&#xff0c;到今年cvpr最新的yolo9000。这些paper中损失函数都包含了边…

前端学习(2718):重读vue电商网站38之通过input输入框优化

通过增加 clearable 属性&#xff0c;我们的输入框就可以多一个 x&#xff0c;然后通过绑定 clear 事件&#xff0c;当我们进行清除 &#xff08;即点击由 clearable 属性生成的清空按钮时触发)时&#xff0c;就会重新获取我们的用户列表&#xff0c;不再需要用户再次点击搜索按…

web项目Servlet配置及jsp访问Servlet

方法1&#xff1a;单一方法请求servlet 1、创建Servlet WebServlet("/HelloForm") public class HelloForm extends HttpServlet { private static final long serialVersionUID 1L; /** * see HttpServlet#HttpServlet() */ publi…

php与数据库的连接用法 (签到一)

注册页面 //插入js验证 <script type"text/javascript"> window.onload function(){ var hid document.getElementById("id"); if(hid.value !""){ //当用户名已存在数据…

Oracle不连续的值,如何实现查找上一条、下一条

1. 遇到的问题 已知一个题库&#xff0c;希望实现当前页切换上一题&#xff0c;下一题的需求。 查看得知&#xff0c;数据库中用于查询的字段(主键)是不连续的。如上图所示&#xff1a;stxh为主键number类型。 2. 实现方式lead over 2.1 实现代码 下一条 select nowId, afte…