Spring + Hibernate实现简单增删改查

一、准备工作:

1.建立数据库think,建立数据表user,里面有两个字段name和pwd,均为varchar类型。

2.在eclipse中创建SH工程,在lib目录下导入相关包:

            

二、Hibernate的相关准备工作

1.建立com.zt包,在包下建立持久化类User.java:

   

package com.zt;

import java.io.Serializable;

public class User implements Serializable {
    
   
    
    private String name;//姓名
    
    private String pwd;//密码
    
    

    

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
    	this.pwd=pwd;
    }

}

2.配置这个持久化类,在com.zt包下建立User.hbm.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 <!-- 产品信息字段配置信息 -->
 <hibernate-mapping>
 	<class name="com.zt.User" table="user">
 		<composite-id>
            <key-property name="name" type="java.lang.String">
                <column name="name" length="200" />
            </key-property>
            <key-property name="pwd" type="java.lang.String">
                <column name="pwd" length="200" />
            </key-property>
           
        </composite-id>
		
 	</class>
 </hibernate-mapping>

三、将hibernate与Spring整合:

1.在com.zt包下建立UserDAO.java类,并在src目录下编写总的配置文件bean.xml

            

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
	<!-- 配置数据源 -->
	<bean id="dataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName">
			<value>com.mysql.jdbc.Driver</value>
		</property>
		<property name="url">
			<value>jdbc:mysql://localhost:3306/think
			</value>
		</property>
		<property name="username">
			<value>root</value>
		</property>
		<property name="password">
			<value>****</value>
		</property>
	</bean>
	<!-- 定义Hibernate的sessionFactory -->
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
		<property name="hibernateProperties">
			<props>
				<!-- 数据库连接方言 -->
				<prop key="dialect">org.hibernate.dialect.SQLServerDialect</prop>
				<!-- 在控制台输出SQL语句 -->
				<prop key="hibernate.show_sql">true</prop>
				<!-- 格式化控制台输出的SQL语句 -->
				<prop key="hibernate.format_sql">true</prop>
			</props>
		</property>
		<!--Hibernate映射文件 -->
		<property name="mappingResources">
			<list>
				<value>com/zt/User.hbm.xml</value>
			</list>
		</property>
	</bean>
	<!-- 注入SessionFactory -->
	<bean id="userDAO" class="com.zt.UserDAO">
		<property name="sessionFactory">
			<ref local="sessionFactory" />
		</property>
	</bean>
</beans>

2.在UserDAO中编写具体的增删改查方法:

3.编写AddUser.java类实现增:

       

package com.zt;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;

import com.zt.UserDAO;
import com.zt.User;

public class AddUser {
    //添加用户信息
    public static void main(String[] args) {
        Resource resource = new ClassPathResource("bean.xml");//获取配置文件
        BeanFactory factory = new XmlBeanFactory(resource);
        UserDAO userDAO = (UserDAO)factory.getBean("userDAO");//获取UserDAO
        User user = new User();
        user.setName("爬爬");//设置姓名
        user.setPwd("123");//设置密码
        userDAO.insert(user);//执行用户添加的方法
        System.out.println("添加成功!");
    }
}
4.编写DeleteUser.java实现删:

5.编写UpdateUser.java实现改:

6.编写FindUser.java实现查:





这里提供一个简单的示例,涉及到基于 Spring、Struts2 和 Hibernate增删改查操作。 首先,我们需要创建一个实体类 User,并使用注解定义它的属性和表格映射: ``` @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; private String name; private String email; private String password; // getters and setters } ``` 接下来,我们需要创建一个 DAO 接口和实现类,以便进行数据库操作。这里使用 Hibernate 的 API 来实现增删改查操作: ``` public interface UserDao { void save(User user); void delete(int id); User getById(int id); List<User> getAll(); } @Repository public class UserDaoImpl implements UserDao { @Autowired private SessionFactory sessionFactory; @Override public void save(User user) { Session session = sessionFactory.getCurrentSession(); session.save(user); } @Override public void delete(int id) { Session session = sessionFactory.getCurrentSession(); User user = session.byId(User.class).load(id); session.delete(user); } @Override public User getById(int id) { Session session = sessionFactory.getCurrentSession(); return session.get(User.class, id); } @Override public List<User> getAll() { Session session = sessionFactory.getCurrentSession(); CriteriaQuery<User> criteriaQuery = session.getCriteriaBuilder().createQuery(User.class); criteriaQuery.from(User.class); return session.createQuery(criteriaQuery).getResultList(); } } ``` 然后,我们需要创建一个 Service 层,以便在控制器中使用它来进行数据库操作: ``` @Service @Transactional public class UserService { @Autowired private UserDao userDao; public void save(User user) { userDao.save(user); } public void delete(int id) { userDao.delete(id); } public User getById(int id) { return userDao.getById(id); } public List<User> getAll() { return userDao.getAll(); } } ``` 接下来,我们需要创建一个控制器类,以便处理用户请求,并调用 UserService 来进行数据库操作: ``` @Controller public class UserController { @Autowired private UserService userService; @RequestMapping("/") public String index(Model model) { List<User> users = userService.getAll(); model.addAttribute("users", users); return "index"; } @RequestMapping("/add") public String add(Model model) { model.addAttribute("user", new User()); return "add"; } @PostMapping("/save") public String save(@ModelAttribute("user") User user) { userService.save(user); return "redirect:/"; } @RequestMapping("/edit/{id}") public String edit(@PathVariable int id, Model model) { User user = userService.getById(id); model.addAttribute("user", user); return "edit"; } @PostMapping("/update") public String update(@ModelAttribute("user") User user) { userService.save(user); return "redirect:/"; } @RequestMapping("/delete/{id}") public String delete(@PathVariable int id) { userService.delete(id); return "redirect:/"; } } ``` 最后,我们需要创建视图文件(JSP 或 Thymeleaf)来渲染 HTML 页面,以便用户可以进行操作。 这就是一个基于 Spring、Struts2 和 Hibernate增删改查示例。当然,这只是一个简单的示例,实际应用中可能需要更多的配置和代码来实现更复杂的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w_t_y_y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值