java hibernate详细_Spring、SpringMVC、Hibernate整合 ----超详细教程

一.数据库表

/*

Navicat MySQL Data Transfer

Source Server : 本地连接

Source Server Version : 50720

Source Host : localhost:3306

Source Database : ssh_demo

Target Server Type : MYSQL

Target Server Version : 50720

File Encoding : 65001

Date: 2019-10-07 14:19:04

*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------

-- Table structure for `t_user`

-- ----------------------------

DROP TABLE IF EXISTS `t_user`;

CREATE TABLE `t_user` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`address` varchar(255) DEFAULT NULL,

`username` varchar(50) DEFAULT NULL,

`phone` varchar(50) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;

-- ----------------------------

-- Records of t_user

-- ----------------------------

INSERT INTO `t_user` VALUES ('6', 'GZ', '张三', '13456789487');

INSERT INTO `t_user` VALUES ('7', 'GZ', '张三', '15674635267');

二.使用idea创建一个maven项目,然后创建如下的目录

e23725362396766d611424970daae957.png

三.各种配置文件如下

1.web.xml

/index.jsp

contextConfigLocation

classpath:applicationContext.xml

spring

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:spring-mvc.xml

1

spring

/

org.springframework.web.context.ContextLoaderListener

encodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

UTF-8

forceEncoding

true

encodingFilter

/*

2.applicationContext.xml

http://www.springframework.org/schema/beans/spring-beans-4.1.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-4.1.xsd

http://www.springframework.org/schema/mvc

http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">

${hibernate.hbm2ddl.auto}

${hibernate.dialect}

${hibernate.show_sql}

${hibernate.format_sql}

3.config.properties

#database connection config

jdbc.driver = com.mysql.jdbc.Driver

jdbc.url = jdbc:mysql://localhost:3306/ssh_demo?useUnicode=true&characterEncoding=utf-8

jdbc.username = root

jdbc.password = ???

#hibernate config

hibernate.dialect = org.hibernate.dialect.MySQLDialect

hibernate.show_sql = true

hibernate.format_sql = true

hibernate.hbm2ddl.auto = update

4.spring-mvc.xml

http://www.springframework.org/schema/beans/spring-beans-4.1.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-4.1.xsd

http://www.springframework.org/schema/mvc

http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">

5.UserController.java

packagecom.ssh.controller;importcom.ssh.entity.User;importcom.ssh.service.UserService;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Controller;importorg.springframework.ui.Model;importorg.springframework.web.bind.annotation.RequestMapping;importjava.util.List;

@Controller

@RequestMapping("/user")public classUserController {

@AutowiredprivateUserService userService;

@RequestMapping("/getUsers")publicString findUsers(Model model){

List users =userService.findUsers();

model.addAttribute("users",users);return "user";

}

@RequestMapping("/saveUser")publicString saveUsser(){

User user= newUser();

userService.saveUser(user);return "success";

}

}

6.User.java

packagecom.ssh.entity;import javax.persistence.*;

@Entity

@Table(name= "t_user")public classUser {

@Id

@GeneratedValue(strategy=GenerationType.IDENTITY)privateInteger id;

@Column(name= "username")privateString username;

@Column(name= "address")privateString address;

@Column(name= "phone")privateString phone;publicInteger getId() {returnid;

}public voidsetId(Integer id) {this.id =id;

}publicString getAddress() {returnaddress;

}public voidsetAddress(String address) {this.address =address;

}publicString getUsername() {returnusername;

}public voidsetUsername(String username) {this.username =username;

}publicString getPhone() {returnphone;

}public voidsetPhone(String phone) {this.phone =phone;

}

@OverridepublicString toString() {return "Person{" +

"id=" + id +

", address='" + address + '\'' +

'}';

}

}

7.UserDao.java

packagecom.ssh.dao;importcom.ssh.entity.User;importjava.util.List;public interfaceUserDao {

ListfindUsers();intsaveUser(User entity);

}

8.UserDaoImpl.java

packagecom.ssh.dao.impl;importcom.ssh.dao.UserDao;importcom.ssh.entity.User;importorg.hibernate.Session;importorg.hibernate.SessionFactory;importorg.hibernate.query.Query;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Repository;importjava.util.List;

@Repositorypublic class UserDaoImpl implementsUserDao {

@AutowiredprivateSessionFactory sessionFactory;privateSession getCurrentSession() {return this.sessionFactory.openSession();

}

@Overridepublic intsaveUser(User entity) {int id =(Integer) getCurrentSession().save(entity);returnid;

}

@Overridepublic ListfindUsers() {

Query query= getCurrentSession().createQuery("from User");

List list =query.list();returnlist;

}

}

9.UserService.java

packagecom.ssh.service;importcom.ssh.entity.User;importjava.util.List;public interfaceUserService {

ListfindUsers();intsaveUser(User entity);

}

10.UserServiceImpl.java

packagecom.ssh.service.impl;importcom.ssh.dao.UserDao;importcom.ssh.entity.User;importcom.ssh.service.UserService;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Service;importjava.util.List;

@Servicepublic class UserServiceImpl implementsUserService {

@AutowiredprivateUserDao userDao;

@Overridepublic ListfindUsers() {returnuserDao.findUsers();

}

@Overridepublic intsaveUser(User entity) {

entity.setAddress("GZ");

entity.setUsername("张三");

entity.setPhone("15674635267");returnuserDao.saveUser(entity);

}

}

11.success.jsp

Title

12.user.jsp

用户信息

ID姓名地址电话号码

${obj.id}${obj.username}${obj.address}${obj.phone}

四.启动tomcat

7fd75184e6217ed01eb0f8988c274bef.png

表中数据增加了一个用户

3e060ca50a4a863aaaac72ff83930a3a.png

6836d7da17c59c350a3b44cda02845a6.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值