hibernate pom mysql_Hibernate+maven+mysql

最近在研究hibernate,想建立一个简单的Hibernate+maven+mysql工程,网上找了一大堆的示例,要么看不懂结构,要么就是缺少必要文件。总之都没有成功,结果无意在一个外文网上找了一个实例,惊叹于人家的排版。也不得不感叹的说下浩瀚的百度里,想找到自己想要的东西是多么难啊!

以下借鉴人家文章和内容并做部分补充,以供初学者一起分享:

(准备工作myeclipse的安装+maven的下载+mysql的配置略过)

1.mysql中建一个mkyong的数据库,其下面新建一个stock的空表格。

//启动mysql服务器

sudo service mysql start

//进入mysql

mysql -uroot -p

输入mysql密码

//创建数据库mkyong

>create database mkyong;

//使用数据库mkyong

>use mkyong;

//在数据库mkyong中创建表stock。请直接copy。

>create table stock (

`STOCK_ID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,

`STOCK_CODE` VARCHAR(10) NOT NULL,

`STOCK_NAME` VARCHAR(20) NOT NULL,

PRIMARY KEY (`STOCK_ID`) USING BTREE,

UNIQUE KEY `UNI_STOCK_NAME` (`STOCK_NAME`),

UNIQUE KEY `UNI_STOCK_ID` (`STOCK_CODE`) USING BTREE

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2.在myeclipse中创建一个maven工程,自己取一个名字。

New --> Project --> Maven Project --> Next --> 在(New Maven Project )中选择创建一个webapp项目

3.创建源文件(Source Folder)

在 “src/main”目录下创建 “/src/main/resources” , 之后所有的Hibernate’s xml配置文件都将放置在该文件下。

在“src/main”目录下创建“/src/main/java”文件,其中放置java源代码文件。

4.现在该工程的结构看起来如下:

8936e117a819e6e3c4c43c27a600bc66.png

5.添加Hibernate和Mysql依赖

修改项目的pom.xml配置文件,它将支持Hibernate和mysql的连接,Hibernate项目需要dom4j, commons-logging, commons-collections和 cglib文件,mysql需要连接jdbc的文件。将原来的内容更换为如下代码。

文件:pom.xml

4.0.0

com

Hibernate

war

0.0.1-SNAPSHOT

Hibernate Maven Webapp

http://maven.apache.org

junit

junit

3.8.1

test

mysql

mysql-connector-java

5.1.9

dom4j

dom4j

1.6.1

commons-logging

commons-logging

1.1.1

org.hibernate

hibernate

3.2.6.ga

commons-collections

commons-collections

3.2.1

cglib

cglib-nodep

3.1

javax.transaction

jta

1.1

Hibernate

6.创建Hibernate类表映射文件

新建一个Stock.hbm.xml映射文件,路径为:“src/main/resources/com/mkyong/common/Stock.hbm.xml“

文件:Stock.hbm.xml

/p>

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

7.创建一个Stock的POJO  java文件,路径为:“src/main/java/com/mkyong/common/Stock.java”

文件:Stock.java

package com.mkyong.common;

/**

* Model class for Stock

*/

public class Stock implements java.io.Serializable {

private static final long serialVersionUID = 1L;

private Stock stock;

private Integer stockId;

private String stockCode;

private String stockName;

public Stock() {

}

public Stock(String stockCode, String stockName) {

this.stockCode = stockCode;

this.stockName = stockName;

}

public Integer getStockId() {

return this.stockId;

}

public void setStockId(Integer stockId) {

this.stockId = stockId;

}

public String getStockCode() {

return this.stockCode;

}

public void setStockCode(String stockCode) {

this.stockCode = stockCode;

}

public String getStockName() {

return this.stockName;

}

public void setStockName(String stockName) {

this.stockName = stockName;

}

public Stock getOper() {

return stock;

}

public void setOper(Stock stock) {

this.stock = stock;

}

}

8.创建Hibernate配置文件

创建一个Hibernate配置文件,路径为:“src/main/resources/hibernate.cfg.xml“。(注意修改其中的“数据库密码”,mkyong即为数据库的名称)

文件:hibernate.cfg.xml

/p>

"-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

false

com.mysql.jdbc.Driver

数据库的密码

jdbc:mysql://localhost:3306/mkyong

root

org.hibernate.dialect.MySQLDialect

true

9.创建Hibernate会话文件

创建一个java类型的Hibernate会话文件,路径为:“src/main/java/com/mkyong/persistence/HibernateUtil.java”。

文件:HibernateUtil.java

package com.mkyong.persistence;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;

public class HibernateUtil {

private static final SessionFactory sessionFactory = buildSessionFactory();

private static SessionFactory buildSessionFactory() {

try {

// Create the SessionFactory from hibernate.cfg.xml

return new Configuration().configure().buildSessionFactory();

}

catch (Throwable ex) {

// Make sure you log the exception, as it might be swallowed

System.err.println("Initial SessionFactory creation failed." + ex);

throw new ExceptionInInitializerError(ex);

}

}

public static SessionFactory getSessionFactory() {

return sessionFactory;

}

public static void shutdown() {

// Close caches and connection pools

getSessionFactory().close();

}

}

10.创建测试文件

创建一个名为App.java的测试文件,路径为:“src/main/java/com/mkyong/common/App.java”.

文件:App.java

package com.mkyong.common;

import org.hibernate.Session;

import com.mkyong.persistence.HibernateUtil;

public class App

{

public static void main( String[] args )

{

System.out.println("Maven + Hibernate + MySQL");

Session session = HibernateUtil.getSessionFactory().openSession();

session.beginTransaction();

Stock stock = new Stock();

stock.setStockCode("4715");

stock.setStockName("GENM");

session.save(stock);

session.getTransaction().commit();

}

}

11.再来看看工程的结构

创建和修改的六个文件结构如下:

d0a33c8ac1c6e65eb33ffa91c900f2c9.png

12.运行结果

运行App.java这个程序,它将会插入一条数据到mysql数据库中去。我们可以在myeclipse中看到该结果,也可以去mysql数据库中查看是否已经插入成功。以下是运行结果:

Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=gasp

Maven + Hibernate + MySQL

.......

五月 24, 2016 5:31:56 上午 org.hibernate.impl.SessionFactoryImpl

信息: building session factory

五月 24, 2016 5:31:56 上午 org.hibernate.impl.SessionFactoryObjectFactory addInstance

信息: Hibernate: insert into mkyong.stock (STOCK_CODE, STOCK_NAME) values (?, ?)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的示例。 首先,在 pom.xml 文件中添加如下依赖: ```xml <dependencies> <!-- Spring Boot Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- MySQL Connector --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- Spring Data JPA --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-jpa</artifactId> </dependency> </dependencies> ``` 然后在 application.properties 文件中配置数据库信息: ``` spring.datasource.url=jdbc:mysql://localhost:3306/db_name spring.datasource.username=root spring.datasource.password=123456 spring.jpa.hibernate.ddl-auto=update ``` 其中,db_name 是你的数据库名,root 和 123456 是你的 MySQL 用户名和密码。 接下来,创建一个实体类,比如 User: ```java @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false) private String name; @Column(nullable = false) private Integer age; // 省略 getter 和 setter } ``` 然后,创建一个 UserRepository 接口,继承自 JpaRepository: ```java @Repository public interface UserRepository extends JpaRepository<User, Long> { } ``` 接下来,创建一个 UserController 类,处理用户的增删改查请求: ```java @RestController @RequestMapping("/users") public class UserController { @Autowired private UserRepository userRepository; @GetMapping("/") public List<User> getAllUsers() { return userRepository.findAll(); } @PostMapping("/") public User createUser(@RequestBody User user) { return userRepository.save(user); } @PutMapping("/{id}") public User updateUser(@PathVariable Long id, @RequestBody User user) { User existingUser = userRepository.findById(id) .orElseThrow(() -> new ResourceNotFoundException("User not found with id " + id)); existingUser.setName(user.getName()); existingUser.setAge(user.getAge()); return userRepository.save(existingUser); } @DeleteMapping("/{id}") public ResponseEntity<?> deleteUser(@PathVariable Long id) { User existingUser = userRepository.findById(id) .orElseThrow(() -> new ResourceNotFoundException("User not found with id " + id)); userRepository.delete(existingUser); return ResponseEntity.ok().build(); } } ``` 其中,@GetMapping("/") 处理获取所有用户的请求,@PostMapping("/") 处理创建用户的请求,@PutMapping("/{id}") 处理更新用户的请求,@DeleteMapping("/{id}") 处理删除用户的请求。 最后,启动应用程序,访问 http://localhost:8080/users 即可查看所有用户的信息。可以使用 Postman 等工具测试其他请求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值