JavaWeb开发接口-Struts2开发
1.创建一个Struts2的工程
这边是以2.16位核心架包如下所示
2.赋值web.xml和Strutsxml
红色框部分表示需要返回值为json时,其依赖的架包如下所示,如果不引用会报错程序无法跑起来
此时运行程序效果:简单的Struts2工程搭建完毕
3.进行数据库连接
我用的是sqlserver2008需要引用sqljdbc4架包
数据库连接成功后需要见一个表用于进行接口的增删改查
4.在struts.xml中配置好接口用方法
4.这边按照action,dao,vo见了三个文件夹
public class ModelInfoListAction extends ActionSupport implements Preparable, ModelDriven {
private ModelInfoListVO lvo;
ModelInfoListDAO dao = new ModelInfoListDAO();
/**
* 用于展示json数据显示
*/
private List result1;
public List getResult1() {
return result1;
}
public void setResult1(List<ModeCodeListVO> result1) {
this.result1 = result1;
}
/**
* 用于获取查询信息
* @return
* @throws Exception
*/
public String scHogiQuery() throws Exception {
result1 = dao.list1(lvo);
if(result1.size()>0)
{
JSONObject jsonObject = new JSONObject();
jsonObject.put("msg","查询成功!!");
jsonObject.put("code",200);
jsonObject.put("data", result1);//将查询的信息放入JSONObject
HttpServletResponse resp = ServletActionContext.getResponse();
PrintWriter out = null;
resp.setContentType("text/html;charset=UTF-8");//用于设定为可以中文显示
out = resp.getWriter();
out.print(jsonObject);
out.close();
out=null;
}
else
{
JSONObject jsonObject = new JSONObject();
jsonObject.put("msg","查询失败!!");
jsonObject.put("code",502);
}
return NONE;
}
/**
* add by xld 20210412用于保存hogi实绩
* @return
* @throws Exception
*/
public String scHogiSave() throws Exception {
String matnr = lvo.getKmatn();
String hogi = lvo.getHogi();
String workPart = lvo.getArbpl();
String plnal = lvo.getPlnal();
int result = 0;
if(plnal== null)plnal="";
if(matnr!=null && hogi != null && workPart != null) {
result = ModelInfoListDAO.getSaveHogiInfo(matnr,hogi,workPart,plnal);
}
if(result > 0)
{
JSONObject jsonObject = new JSONObject();
jsonObject.put("msg","保存成功!!");
jsonObject.put("code",200);
//jsonObject.put("msg", URLEncoder.encode((String) jsonObject.get("msg"), "UTF-8"));
HttpServletResponse resp = ServletActionContext.getResponse();
PrintWriter out = null;
resp.setContentType("text/html;charset=UTF-8");//用于设定为可以中文显示
out = resp.getWriter();
out.print(jsonObject);
out.close();
out=null;
// out.flush();
}
else
{
System.out.println(“error”);
}
return NONE;
}
/**
* add by xld 20210412用于删除hogi实绩
* @return
* @throws Exception
*/
public String scHogiDel() throws Exception {
String kmatn = lvo.getKmatn();
String hogi = lvo.getHogi();
String arbpl = lvo.getArbpl();
int result = 0;
if(kmatn!=null && hogi != null && arbpl != null) {
result = ModelInfoListDAO.getDelHogiInfo(kmatn,hogi,arbpl);
}
if(result > 0)
{
JSONObject jsonObject = new JSONObject();
jsonObject.put("msg","删除成功!!");
jsonObject.put("code",200);
//jsonObject.put("msg", URLEncoder.encode((String) jsonObject.get("msg"), "UTF-8"));
HttpServletResponse resp = ServletActionContext.getResponse();
PrintWriter out = null;
resp.setContentType("text/html;charset=UTF-8");//用于设定为可以中文显示
out = resp.getWriter();
out.print(jsonObject);
out.close();
out=null;
// out.flush();
}
else
{
JSONObject jsonObject = new JSONObject();
jsonObject.put(“msg”,“删除失败,数据已删除或不存在!”);
jsonObject.put(“code”,410);
//jsonObject.put(“msg”, URLEncoder.encode((String) jsonObject.get(“msg”), “UTF-8”));
HttpServletResponse resp = ServletActionContext.getResponse();
PrintWriter out = null;
resp.setContentType("text/html;charset=UTF-8");//用于设定为可以中文显示
out = resp.getWriter();
out.print(jsonObject);
out.close();
out=null;
}
return NONE;
}
/* (non-Javadoc)
* @see com.opensymphony.xwork2.Preparable#prepare()
*/
@Override
public void prepare() throws Exception {
lvo = new ModelInfoListVO();
}
/* (non-Javadoc)
* @see com.opensymphony.xwork2.ModelDriven#getModel()
*/
@Override
public ModelInfoListVO getModel() {
return lvo;
}
}
6.后台数据查询保存,删除源码
public class ModelInfoListDAO {
ArrayList list = new ArrayList();
/**
* 用于查询
* @param kmatn
* @return
*/
public List list1(ModelInfoListVO lvo)
{
Connection conn = null;
ResultSet rs = null;
PreparedStatement pstmt = null;
String query = “”;
try
{
conn = new DBConn().dbConn();
query = "SELECT KMATN,HOGI,ARBPL,PLNAL FROM dbo.DI_CHK_HOGI_INFO WHERE KMATN=? ";
pstmt = conn.prepareStatement(query);
pstmt.setString(1, lvo.getKmatn());
rs = pstmt.executeQuery();
while(rs.next()){
String kmatn = rs.getString( "KMATN" );
String hogi = rs.getString( "HOGI");
String arbpl = rs.getString("ARBPL");
ModeCodeListVO data = new ModeCodeListVO();
data.setKmatn(kmatn);
data.setHogi(hogi);
data.setArbpl(arbpl);
list.add( data );
}
if(rs.isBeforeFirst()) {
lvo.setGetQueryInfoList(CM.resultSetToArrayList(rs));
} else {
lvo.setGetQueryInfoList(null);
}
rs.close();
pstmt.close();
}
catch(Exception e)
{
}
finally
{
if ( rs != null ) try{rs.close();}catch(SQLException e){}
if ( pstmt != null ) try{pstmt.close();}catch(SQLException e){}
if ( conn != null ) try{conn.close();}catch(SQLException e){}
}
return list;
}
/**
*
* @param matnr
* @param hogi
* @param arbpl
* @param plnal
* @return
*/
public static int getCkHogiInfo(String matnr,String hogi,String arbpl) {
int rst = 0;
Connection conn = null;
ResultSet rs = null;
PreparedStatement pstmt = null;
String query = "";
try {
conn = new DBConn().dbConn();
query = "SELECT COUNT(*) AS CNT FROM dbo.DI_CHK_HOGI_INFO ";
query += "WHERE KMATN=? AND HOGI = ? AND ARBPL=? ";
pstmt = conn.prepareStatement(query);
pstmt.setString(1, matnr);
pstmt.setString(2, hogi);
pstmt.setString(3, arbpl);
rs = pstmt.executeQuery();
if(rs.next())
{
rst = rs.getInt("CNT");//svo.getLastLoginTime();
}
}
catch(Exception e) {
} finally {
if ( rs != null ) try{rs.close();}catch(SQLException e){}
if ( pstmt != null ) try{pstmt.close();}catch(SQLException e){}
if ( conn != null ) try{conn.close();}catch(SQLException e){}
}
return rst;
}
/**
* 用于保存数据
* @param matnr
* @param hogi
* @param arbpl
* @param plnal
* @return
*/
public static int getSaveHogiInfo(String matnr,String hogi,String arbpl,String plnal) {
int llt = 0;
Connection conn = null;
ResultSet rs = null;
PreparedStatement pstmt = null;
String query = "";
int ckcnt = 0;
int cnt = 0;
try {
//SessionVO svo = (SessionVO)SM.getSession().get("SessionVO");
conn = new DBConn().dbConn();
ckcnt = getCkHogiInfo(matnr,hogi,arbpl);
if(ckcnt>0)
{
query = "UPDATE dbo.DI_CHK_HOGI_INFO SET UPDDTTM=GETDATE() ";
query += "WHERE KMATN=? AND HOGI = ? AND ARBPL=? ";
pstmt = conn.prepareStatement(query);
pstmt.setString(1, matnr);
pstmt.setString(2, hogi);
pstmt.setString(3, arbpl);
}
else
{
query = "INSERT INTO dbo.DI_CHK_HOGI_INFO( KMATN ,HOGI ,ARBPL ,PLNAL ,USERID , INSDTTM )VALUES (?,?,?,?,?,?) ";
pstmt = conn.prepareStatement(query);
pstmt.setString(1, matnr);
pstmt.setString(2, hogi);
pstmt.setString(3, arbpl);
pstmt.setString(4, plnal);
pstmt.setString(5, null);
pstmt.setString(6, CM.formattedDate(new Date(), "yyyy-MM-dd HH:mm:ss"));
}
llt = pstmt.executeUpdate();
} catch(Exception e) {
} finally {
if ( rs != null ) try{rs.close();}catch(SQLException e){}
if ( pstmt != null ) try{pstmt.close();}catch(SQLException e){}
if ( conn != null ) try{conn.close();}catch(SQLException e){}
}
return llt;
}
/**
*
* @param kmatn
* @param hogi
* @param arbpl
* @return
*/
public static int getDelHogiInfo(String kmatn,String hogi,String arbpl) {
int llt = 0;
Connection conn = null;
ResultSet rs = null;
PreparedStatement pstmt = null;
String query = "";
int ckcnt = 0;
int cnt = 0;
try
{
conn = new DBConn().dbConn();//数据库连接
query = "DELETE FROM dbo.DI_CHK_HOGI_INFO ";
query += "WHERE KMATN=? AND HOGI = ? AND ARBPL=? ";
pstmt = conn.prepareStatement(query);
pstmt.setString(1, kmatn);
pstmt.setString(2, hogi);
pstmt.setString(3, arbpl);
llt = pstmt.executeUpdate();
}
catch(Exception e)
{
System.out.println("Delete Failure");
}finally {
if ( rs != null ) try{rs.close();}catch(SQLException e){}
if ( pstmt != null ) try{pstmt.close();}catch(SQLException e){}
if ( conn != null ) try{conn.close();}catch(SQLException e){}
}
return llt;
}
}
7.效果图
查询效果:
保存效果:
删除效果:
成功了