用Struts2技术实现【增,删,改,查】操作

来源:互联网 发布:手机精确定位软件 编辑:程序博客网 时间:2024/06/05 20:05
程序的整个思路采用三层架构搭建(下面我一一列举)
1.实体层    Music.java
 package com.zwb.model.entity;
public class Music {
      private int musicNO;
      private String musicName;
      private String singer ;
      private String size;
public int getMusicNO() {
return musicNO;
}
public void setMusicNO(int musicNO) {
this.musicNO = musicNO;
}
public String getMusicName() {
return musicName;
}
public void setMusicName(String musicName) {
this.musicName = musicName;
}
public String getSinger() {
return singer;
}
public void setSinger(String singer) {
this.singer = singer;
}
public String getSize() {
return size;
}
public void setSize(String size) {
this.size = size;
}
      
}  

2. 数据层    
   (1)JDBC.java
package com.zwb.model.dao;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;


public class JDBC {
static Connection con = null;
static PreparedStatement ps = null;
static ResultSet rs = null;
//MySQL
static String driver = "com.mysql.jdbc.Driver";
static String url = "jdbc:mysql://localhost:3306/db_music";
//Oracle
// static String driver = "oracle.jdbc.driver.OracleDriver";
// static String url = "jdbc:oracle:thin:@localhost:1521:ORCL";

private static Connection getConnect() {
try {
Class.forName(driver);
con = DriverManager.getConnection(url, "root", "zwb123456");
// con = DriverManager.getConnection(url, "scott", "tiger");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}

public static ResultSet getResultSet(String sql) {
con = getConnect();
try {
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
} catch (SQLException e) {
//e.printStackTrace();
}
return rs;
}

public static ResultSet getResultSet(String sql, Object[] params) {
con = getConnect();
try {
ps = con.prepareStatement(sql);
for (int i = 0; i < params.length; i++)
ps.setObject(i + 1, params[i]);
rs = ps.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}

public static int modifyEntiy(String sql, Object[] params) {
int num = 0;
con = getConnect();
try {
ps = con.prepareStatement(sql);
for (int i = 0; i < params.length; i++) {
ps.setObject(i + 1, params[i]);// ռλ�����ֵ
}
num = ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return num;
}
public static void closeAll() {
if (ps != null) {
try {
ps.close();
ps = null;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (con != null) {
try {
con.close();
con = null;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
    (2)MusicDao.java
package com.zwb.model.dao;


import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.zwb.model.entity.Music;


public class MusicDao {
     //添加
public boolean addMusic(Music music) {
boolean bl = false;
String sql = "insert into t_music(musicNO,musicName,singer,size) values(null,?,?,?)";
Object[] params = {music.getMusicName(),music.getSinger(),music.getSize()};
try {
int num = JDBC.modifyEntiy(sql,params);
if (num>0) {
bl=true; 
}
} catch (Exception e) {
// TODO: handle exception
}finally{
JDBC.closeAll();
}
return bl;
}
//删除
public boolean deleteMusic(int id) {
boolean bl = false;
String sql = "delete from t_music where musicNO = ?";
Object[] params = {id};
try {
int num = JDBC.modifyEntiy(sql,params);
if (num>0) {
bl=true; 
}
} catch (Exception e) { 
// TODO: handle exception
}finally{
JDBC.closeAll();
}
return bl;
}

public boolean updateSinger() {
boolean bl = false;

return bl;
}
//查询
public List<Music> selectAllSinger() {
List<Music> list = new ArrayList<Music>();
String sql = "select musicNo,musicName,singer,size from t_music"; 
try {
ResultSet rs = JDBC.getResultSet(sql);
while (rs.next()) {
Music music = new Music();
music.setMusicNO(rs.getInt("musicNo"));
music.setMusicName(rs.getString("musicName"));
music.setSinger(rs.getString("singer"));
music.setSize(rs.getString("size"));
list.add(music);
}
} catch (Exception e) {
e.getStackTrace();
}finally{
JDBC.closeAll();
}
return list;
}
}

3.业务逻辑层   MusicManager.java
package com.zwb.struts2.action;


import java.util.List;


import com.zwb.model.dao.MusicDao;
import com.zwb.model.entity.Music;


public class MusicManager {
     MusicDao musicDao = new MusicDao();
     Music music ;
     List<Music>  musicList ;
     private int mid;
     
public Music getMusic() {
return music;
}


public void setMusic(Music music) {
this.music = music;
}


public int getMid() {
return mid;
}


public void setMid(int mid) {
this.mid = mid;
}


public List<Music> getMusicList() {
return musicList;
}


public void setMusicList(List<Music> musicList) {
this.musicList = musicList;
}
//查询
public String queryMusic(){
musicList = musicDao.selectAllSinger();
return "queryMusic";
}
    //删除
public String deleteMusic(){
musicDao.deleteMusic(mid);
musicList = musicDao.selectAllSinger();
return "deleteMusic";
}
//添加
public String addMusic(){
musicDao.addMusic(music);
return "addMusic";
}
}
     *struts.xml配置*
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "struts-2.1.dtd" >
<struts>


<!-- <package name="helloworld" namespace="/" extends="struts-default">
<action name="HelloWorld" class="com.zwb.struts2.action.HelloWorld">
<result name="success">/index.jsp</result>
</action>
<action name="UserManagerAction" class="com.zwb.struts2.action.UserManagerAction">
<result name="success">/login.jsp</result>
</action>
</package> -->


<!-- 必须引用 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<package name="musiclist" namespace="/" extends="struts-default">
<!-- <action name="musicListAction" method="queryMusic"
class="com.zwb.struts2.action.MusicManager">
<result name="queryMusic">/musicList.jsp</result>
</action>
<action name="deleteMusicAction" method="deleteMusic"
class="com.zwb.struts2.action.MusicManager">
<result name="deleteMusic">/musicList.jsp</result>
</action> -->
<!-- 动态生成 -->
<action name="musicManager" class="com.zwb.struts2.action.MusicManager">
<result name="queryMusic">/musicList.jsp</result>
<result name="addMusic" type="redirectAction">
    <param name="actionName">musicManager</param>
    <param name="method">queryMusic</param>
</result>

</action>
         
<!-- 通配符 -->
<!-- <action name="musicManager_*" class="com.zwb.struts2.action.MusicManager" 
method="{1}"> <result name="{1}">/musicList.jsp</result> </action> -->
</package>
</struts>
  4. 界面层  musicLits.jsp    (其他的界面就不一一列举了,如果有需要联系本人)
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib  prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib  prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>音乐列表页面</title>
    <link rel="stylesheet" type="text/css" href="css/list.css">
  </head>
<body>




<div>
<table width="700" cellspacing="0" cellpadding="0" class="tong">
<tr height="24px">
  <th align="center" width="56"  id="bortop1">
    <div class="liTi"><div class="neiDiv">序号</div></div>
  </th>
  <th align="center" width="80" id="bortop1">
    <div class="liTi"><div class="neiDiv">歌曲名</div></div>
  </th>
  <th align="center" width="80"  id="bortop1">
    <div class="liTi"><div class="neiDiv">歌手名</div></div>
  </th>
  <th align="center" width="80"  id="bortop1">
    <div class="liTi"><div class="neiDiv">歌曲大小</div></div>
  </th>
  <th align="center" width="120" id="bortop1">
    <div class="liTi"><div class="neiDiv">试听</div></div>
  </th>
  <th align="center" width="120" id="bortop1">
    <div class="liTi"><div class="neiDiv">下载</div></div>
  </th>
  <th align="center" width="120" id="bortop2">
    <div class="liTi"><div class="neiDiv">操作</div></div>
  </th>
</tr>
<c:forEach var="item" items="${musicList}" varStatus="status"> 
 <tr onMouseOver="this.bgColor='#E8F7FF'" onMouseOut="this.bgColor='#FFFFFF'" height="20px">
 <td  id="bor1" align="center">${item.musicNO }</td>
 <td  id="bor1" align="center">${item.musicName }</td>
 <td  id="bor1" align="center">${item.singer }</td>
 <td  id="bor1" align="center">${item.size }</td>
 <td  id="bor1" align="center"><img src="images/st.png"></td>
 <td  id="bor1" align="center"><img src="images/xz.png"></td>
 <td  id="bor2" align="center">
   <a href="musicManager!deleteMusic.action?mid=${item.musicNO}" style="text-decoration: none">删除</a>
   <a href="musicManager!querySpecifiedMusic.action?music.musicNo=${music.musicNo}" style="text-decoration: none">修改</a>
 </td>
 </tr>
        </c:forEach> 
</table>
</div>
<body>
</html>

0 1
原创粉丝点击