日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

hibernate h2变mysql_struts2-hibernate-mysql开发案例 -解道Jdon

發布時間:2023/11/29 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hibernate h2变mysql_struts2-hibernate-mysql开发案例 -解道Jdon 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Hibernate專題

struts2-hibernate-mysql開發案例與源碼

源碼下載

本案例展示使用Struts2,Hibernate和MySQL數據庫開發一個個人音樂管理器Web應用程序。,可將您的音樂收藏添加到數據庫中。功能有:顯示一個添加記錄的表單和所有的音樂收藏的列表。每行的記錄可通過點擊“刪除”鏈接刪除。Struts2靈活的J2EE框架之一,數據庫是MySQL,使用Hibernate作為ORM工具。

工具:

Eclipse Indigo Java EE IDE for Web開發者

Struts 2

Hibernate 3

Hibernate Tools Eclipse Plugin Version 3.5.1

mysql JDBC jar (mysql-connector-java-5.1.23)

Tomcat 7

Step 1: 準備數據庫

使用phpMyAdmin?作為MySQL數據庫管理:

創建數據庫music_manager?,加入下面SQL創建表?albumtbl:

CREATE TABLE IF NOT EXISTS `albumtbl` (

`music_id` INT(4) NOT NULL AUTO_INCREMENT,

`album_title` VARCHAR(255) NOT NULL,

`album_genre` VARCHAR(255) NOT NULL,

`album_artists` text NOT NULL,

`no_of_tracks` INT(2) NOT NULL,

PRIMARY KEY (`music_id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;

INSERT INTO `albumtbl` (`music_id`, `album_title`, `album_genre`, `album_artists`, `no_of_tracks`) VALUES

(1, 'Trouble-Akon', 'Hip Hop', 'Akon', 11),

(3, 'Savage Island', 'Contemporary R&B', 'Savage, Ganxstardd, Soulja Boy, David Dallas, Sean P, Pitbull', 16),

(4, 'Kiss (Carly Rae Jepsen album)', 'Pop', 'Carly Rae Jepsen, Justin Bieber, Owl City', 12),

(5, 'Taylor Swift (album)', 'Pop', 'Taylor Swift', 15);

Step 2: 在Eclipse創建項目

‘businessobjects’ 包含了映射數據庫表的POJO java beans

在 ‘dao’包下包含數據訪問層的Java類,操作數據表

‘hbm’ 包含 *.hbm 用于 hibernate xml 到 數據表的字段映射

‘utils’包包含工具類

‘actions’ 是 Struts 2 action 類

‘delegates’ 扮演前端和Hibernate后端的橋梁。

‘forms’ 包是Struts 2可選,包含界面的表單對象

Step 3: 拷貝 jar文件到lib目錄

從Tomcat安裝目錄拷貝servlet-api.jar 到項目lib目錄。

Step 4: 增加Struts 2支持

在web.xml加入:

03

04

index.jsp

05

06

07

08

struts2

09

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

10

11

12

struts2

13

*.action

14

15

創建struts.xml內容:

/p>

"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

"http://struts.apache.org/dtds/struts-2.0.dtd">

index.jsp

class="com.tctalk.apps.mmgr.web.actions.MusicManagerAction" method="getAllAlbumList" >

/WEB-INF/web/jsps/musicmgr.jsp

class ="com.tctalk.apps.mmgr.web.actions.MusicManagerAction" method="addAlbumToCollection" >

listAlbum

listAlbum

class ="com.tctalk.apps.mmgr.web.actions.MusicManagerAction" method="delAlbumFromCollection" >

listAlbum

Step 5: 增加 Hibernate 支持

增加Eclipse的Hibernate插件:

創建hibernate.cfg.xml

/p>

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

com.mysql.jdbc.Driver

jdbc:mysql://localhost:3306/music_manager

root

org.hibernate.dialect.MySQLDialect

創建一個AlbumBO.java類,可由Hibernatw插件輸出:

// Generated by Hibernate Tools 3.4.0.CR1

/**

* AlbumtblBO generated by hbm2java

*/

public class AlbumtblBO implements java.io.Serializable {

private static final long serialVersionUID = -1445059679188116334L;

private int musicId;

private String albumTitle;

private String albumGenre;

private String albumArtists;

private int noOfTracks;

public AlbumtblBO() {

}

public AlbumtblBO(int musicId, String albumTitle, String albumGenre,

String albumArtists, int noOfTracks) {

this.musicId = musicId;

this.albumTitle = albumTitle;

this.albumGenre = albumGenre;

this.albumArtists = albumArtists;

this.noOfTracks = noOfTracks;

}

Albumtbl.hbm.xml是AlbumBO和數據表Album的映射文件:

/p>

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

創建HibernateUtils.java 專門用于Hibernate的操作:

package com.tctalk.apps.mmgr.utils;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;

public class HibernateUtils {

private static SessionFactory hbmSessionFactory;

static {

try {

Configuration cfg = new Configuration()

.configure(MusicMgrConstant._HIBERNATE_CONFIG_LOCATION);

hbmSessionFactory = cfg.buildSessionFactory();

} catch (RuntimeException ex) {

System.out.println("********* Error occurred while reading config file *********");

ex.printStackTrace();

}

}

/**

* getSession creates hibernate Session & returns it

*/

public static Session getSession() {

return hbmSessionFactory.openSession();

}

/**

* closeSession closes the session, if it exists

*/

public static void closeSession(Session inSession) {

if (inSession != null) {

inSession.close();

}

}

}

創建MusicManagerDao.java and MusicManagerDaoImpl.java?,代碼可見源碼下載包。

Step 6:創建UI界面

Musicmngr.jsp:

pageEncoding="ISO-8859-1"%>

TechcubeTalk.com - Let's build apps from scratch series - Personal Music Manager Application

:: TechcubeTalk.com - Personal Music Manager ::

Album TitleMusic GenreArtist NamesTotal No of TracksDelete
">delete

Step 7: 增加 action類

MusicManagerAction.java

package com.tctalk.apps.mmgr.web.actions;

import java.util.List;

import com.tctalk.apps.mmgr.db.businessobjects.AlbumtblBO;

import com.tctalk.apps.mmgr.web.delegates.MusicManagerDelegate;

import com.tctalk.apps.mmgr.web.forms.MusicManagerForm;

public class MusicManagerAction extends MusicManagerForm {

private static final long serialVersionUID = 9168149105719285096L;

private MusicManagerDelegate musicMgrDelegate = new MusicManagerDelegate();

public String getAllAlbumList(){

List albumList = musicMgrDelegate.getAllMusicAlbums();

String returnString = ERROR;

if(albumList != null) {

setAlbumList(albumList);

returnString = SUCCESS;

}

return returnString;

}

public String addAlbumToCollection(){

String returnString = ERROR;

AlbumtblBO album = getAlbum();

if(musicMgrDelegate.addAlbumToCollection(album)){

returnString = SUCCESS;

}

return returnString;

}

public String delAlbumFromCollection(){

String returnString = ERROR;

int albumId = getMusicId();

if(musicMgrDelegate.delAlbumFromCollection(albumId)) {

returnString = SUCCESS;

}

return returnString;

}

}

MusicManagerForm.java:

package com.tctalk.apps.mmgr.web.forms;

import java.util.List;

import com.opensymphony.xwork2.ActionSupport;

import com.tctalk.apps.mmgr.db.businessobjects.AlbumtblBO;

public class MusicManagerForm extends ActionSupport {

private static final long serialVersionUID = 706337856877546963L;

private List albumList ?? ?? = null;

private AlbumtblBO album? ?? ?? ?? ?? = null;

private int musicId;

public AlbumtblBO getAlbum() {

return album;

}

public void setAlbum(AlbumtblBO album) {

this.album = album;

}

public List getAlbumList() {

return albumList;

}

public void setAlbumList(List albumList) {

this.albumList = albumList;

}

public int getMusicId() {

return musicId;

}

public void setMusicId(int musicId) {

this.musicId = musicId;

}

}

Step 8: 增加委托類

MusicManagerDelegate.java

public class MusicManagerDelegate {

MusicManagerDao mmgrDao = (MusicManagerDao) new MusicManagerDaoImpl();

public List getAllMusicAlbums() {

return mmgrDao.getAllMusicAlbumsFromCollection();

}

public boolean addAlbumToCollection(AlbumtblBO albumobj) {

return mmgrDao.addAlbum(albumobj);

}

public boolean delAlbumFromCollection(int albumId) {

return mmgrDao.delAlbum(albumId);

}

}

Step 9: 最后

在Eclipse點按項目,右鍵中選擇?Export as war 文件,將項目輸出一個WAR文件。也可以使用Gradle建立一個Java 項目,然后輸出War文件。

將war文件拷貝到tomcat/webapps目錄下,在瀏覽器訪問http://localhost:8080/PersonalMusicManagerApp

.

總結

以上是生活随笔為你收集整理的hibernate h2变mysql_struts2-hibernate-mysql开发案例 -解道Jdon的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。