`
壹頁書
  • 浏览: 392 次
文章分类
社区版块
存档分类
最新评论

111

    博客分类:
  • 111
 
阅读更多
package ${package};

import java.io.IOException;
import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONObject;


@WebServlet("/${classname}")
public class ${classname} extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");
		String type = request.getParameter("type");

		try {
			if (type.equals("getAll")) {
				getAll(request, response);
			} else if (type.equals("remove")) {
				delete(request, response);
			} else if (type.equals("modify")) {
				update(request, response);
			} else if(type.equals("insert")){
				insert(request,response);
			}
		} catch (ClassNotFoundException | SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	private void delete(HttpServletRequest request, HttpServletResponse response)
			throws SQLException, ClassNotFoundException {
		

		Connection con = getConnection();
		StringBuilder sb=new StringBuilder(100);
		sb.append("delete from ${tablename} where ");
		<#list primaryKey as key>
			<#if (key_index=0)>
		sb.append("${key.name}=? ");
			</#if>
			<#if (key_index!=0)>
		sb.append(" and ${key.name}=? ");
			</#if>
		</#list>
		PreparedStatement cmd = con.prepareStatement(sb.toString());
		<#list primaryKey as key>
		cmd.setString(${key_index+1}, request.getParameter("${key.name}"));
		</#list>
		cmd.executeUpdate();
		con.close();

	}

	<#assign curIndex=0/>

	private void update(HttpServletRequest request, HttpServletResponse response)
			throws SQLException, ClassNotFoundException {
		Connection con = getConnection();
		StringBuilder sb=new StringBuilder(100);
		sb.append("update ${tablename} set ");
		<#list keys as key>
		sb.append("${key.name}=?<#if key_has_next>,</#if>");
		<#assign curIndex=key_index+1 />
		</#list>

		sb.append(" where ");

		<#list primaryKey as key>
		sb.append("${key.name}=?<#if key_has_next>,</#if>");
		</#list>
		
		PreparedStatement cmd = con.prepareStatement(sb.toString());
		<#list keys as key>
		cmd.setObject(${key_index+1},request.getParameter("${key.name}"));
		</#list>
		
		<#list primaryKey as key>
		cmd.setObject(${curIndex+1},request.getParameter("${key.name}"));
		<#assign curIndex=curIndex+1/>
		</#list>
		cmd.executeUpdate();

		con.close();

	}

	private void insert(HttpServletRequest request, HttpServletResponse response)
			throws SQLException, ClassNotFoundException {
		Connection con = getConnection();
		StringBuilder sb=new StringBuilder(100);
		sb.append("insert into ${tablename} (");
		<#list keys as key>
		sb.append("${key.name}<#if key_has_next>,</#if>");
		</#list>
		sb.append(") values(");
		<#list keys as key>
		sb.append("?<#if key_has_next>,</#if>");
		</#list>
		sb.append(")");
		PreparedStatement cmd = con.prepareStatement(sb.toString());

		<#list keys as key>
		cmd.setObject(${key_index+1},request.getParameter("${key.name}"));
		</#list>

		cmd.executeUpdate();
		con.close();

	}

	private void getAll(HttpServletRequest request, HttpServletResponse response)
			throws SQLException, ClassNotFoundException, IOException {
		Connection con = getConnection();
		List<Map> list = new ArrayList<Map>();
		ResultSet rs = con.createStatement().executeQuery("select * from ${tablename}");
		while (rs.next()) {
			Map map=new HashMap();
			<#list keys as key>
			map.put("${key.name}",rs.getString("${key.name}"));
			</#list>
			
			list.add(map);
		}
		JSONObject obj = new JSONObject();
		obj.put("total", list.size());
		obj.put("rows", list);

		con.close();

		response.getWriter().print(obj.toString());

	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

	private Connection getConnection() throws SQLException, ClassNotFoundException {
		String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

		String dbURL = "jdbc:sqlserver://101.251.209.184:24876;DatabaseName=roomdb";

		String userName = "sa";

		String userPwd = "6JYDrwXsDkuBhQ}M";
		Class.forName(driverName);

		Connection dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
		dbConn.setAutoCommit(true);
		return dbConn;
	}

}

 

分享到:
评论

相关推荐

    西门子111报文 SINAMICS 111 SIEMENS telegram 111, PZD-12/12

    西门子111报文 SINAMICS 111 SIEMENS telegram 111, PZD-12/12 接通就绪 运行准备就绪 运行使能 故障存在 "滑行下降"未激活 "快速停止"未激活 "禁止开关接通"激活 报警存在(1级报警) 下面的报警在允许范围内(3级...

    ZCU111_PDF.rar

    《Xilinx Zynq UltraScale+ RFSoC ZCU111评估套件官方文档详解》 Xilinx的Zynq UltraScale+ RFSoC ZCU111 Evaluation Kit是一款高度集成的开发平台,用于测试和验证Zynq UltraScale+系列的RF系统级芯片(RFSoC)的...

    爱普生L111清零

    爱普生L111系列打印机是一款经济实惠的喷墨打印机,主要面向家庭和小型办公室用户。该系列打印机以其高质量的打印效果、低运行成本和长久的使用寿命而受到青睐。然而,随着时间的推移,打印机可能会出现“墨盒计数器...

    4-20mA XTR111正式版_PCBSTM32电流信号频率_XTR111_xtr111stm32_4-20MA_stm32p

    标题 "4-20mA XTR111正式版_PCBSTM32电流信号频率_XTR111_xtr111stm32_4-20MA_stm32p" 指向了一个基于STM32微控制器的硬件设计,其中涉及到的关键技术是使用XTR111集成电路来生成4-20mA的电流信号,并进行频率信号的...

    4~20mA电流输出芯片XTR111完整电路

    XTR111是一款专为这种电流输出设计的芯片,它能够将电压信号转换成相应的电流信号。XTR111是由德州仪器公司(Texas Instruments)开发的,其线性度好,成本低廉,因此成为了工业应用中的首选。 为了构建一个简单的4...

    西门子111报文详解.pdf

    "西门子111报文详解" 西门子111报文是西门子公司的工业自动化控制系统中使用的一种报文协议。该报文协议用于在工业控制系统中传输数据,实现设备之间的通信和控制。下面是对西门子111报文的详细解释: 1. 报文结构...

    mt9d111 user guide

    《MT9D111:高清晰度图像传感器的创新技术与应用》 一、MT9D111概述 MT9D111是一款由Aptina Imaging Corporation设计的1/3.2英寸200万像素系统级芯片(SOC)CMOS数字图像传感器。该产品基于Aptina独特的Digital ...

    TR-111(属于TR069协议族)

    TR-111是TR-069协议族的一个重要组成部分,主要应用于家庭网络设备的远程管理。TR-069(Technical Report 069)是由DSL论坛(现为Broadband Forum)制定的一套标准,旨在提供一种安全、自动化的远程配置和管理家庭...

    Quectel-HCM111Z-AT-Commands-Manual-V1.0.0-Preliminary-20230916

    ### 移远 HCM111Z 蓝牙模块指令手册知识点解析 #### 一、前言 移远通信(Quectel)是一家全球领先的物联网(IoT)技术和服务提供商,专注于为客户提供全面的无线解决方案和服务。在《Quectel-HCM111Z-AT-Commands-...

    MT9D111的三种寄存器配置参考

    MT9D111是一款常见的CMOS图像传感器,广泛应用于各种设备中的摄像头模块。这款传感器提供了灵活的配置选项,可以通过编程其内部的寄存器来调整图像质量、分辨率和其他性能参数。以下是关于MT9D111寄存器配置的一些...

    类比半导体ADX111驱动程序

    类比半导体(Analog Devices)的ADX111驱动程序是专为集成ADC(模数转换器)设计的软件组件,用于将模拟信号转化为数字信号,以便计算机或其他数字系统能够处理。这款驱动程序同时兼容德州仪器(TI)的ADS1115和ADS1118,...

    navicat111_mysql_cs_x64

    navicat111_mysql_cs_x64navicat111_mysql_cs_x64navicat111_mysql_cs_x64navicat111_mysql_cs_x64navicat111_mysql_cs_x64navicat111_mysql_cs_x64navicat111_mysql_cs_x64navicat111_mysql_cs_x64navicat111_mysql...

    torch==1.9.0+cu111&amp;torchaudio==0.9.0 &amp;torchvision==0.10.0+cu111

    可以使用迅雷进行接管下载,也可以在浏览器下载,下载完成以后使用pip install +文件路径名进行安装(实例 pip install E:\anacondalib\torch-1.9.0+cu111-cp38-cp38-win_amd64.whl)即可,如若遇见报错的情况如安装...

    jdk1.8.0_111.rar

    **Java Development Kit (JDK) 1.8.0_111** JDK(Java Development Kit)是Oracle公司提供的用于开发和运行Java应用程序的重要工具集。版本1.8.0_111是Java 8的一个更新版本,它包含了Java编译器、Java虚拟机(JVM...

    S120通过111报文来实现Basic Position功能

    本主题聚焦于S120如何利用“111报文”来实现“Basic Position”(基本定位)功能,这是一种核心的运动控制技术。以下将详细介绍这一功能的实现原理、步骤以及相关的文件内容。 1. **111报文详解**: 111报文是...

    LMS111指令集

    《LMS111指令集详解》 LMS111指令集是针对LMS111设备或系统设计的一套操作指令,主要用于控制、配置和优化LMS111的功能。这一指令集是开发者进行LMS111平台开发的关键工具,能够帮助他们高效地实现各种功能和应用。...

    CT111C_CS_CN_v4_UG-web.pdf

    摩托罗拉CT111C有线录音电话是一款具备多项功能的电话机,它为用户提供了方便的录音、播放、呼叫管理等功能。以下是对CT111C电话机主要功能的详细介绍: 1. 基本配置:CT111C电话机的标准配置包括电话机本身、听筒...

    4-20mA方案_20ma_4~20ma_slopeahy_XTR111_4-20MA_

    标题中的“4-20mA方案”和描述中提到的“XTR111工业通信4-20mA解决方案”都是关于工业自动化领域中的一个重要通信标准——4-20mA电流环路。这个标准广泛应用于远程传感器和控制器之间的通信,因为它的抗干扰能力强,...

    V90PN伺服驱动器常用报文介绍(1号报文+111报文等).pdf

    本篇内容将深入探讨V90PN伺服驱动器中的常用报文,特别是1号报文和111报文。 1号报文,也称为标准报文1,是伺服驱动器最基础的通信报文之一。它通常包含驱动器的状态信息,如运行模式、错误代码、电机速度和位置等...

    博途FB284的应用及使用111报文实现电机位置定位.pdf

    博途FB284的应用及使用111报文实现电机位置定位 本文档详细介绍了西门子S120使用PLC进行位置控制的两种方法,并详细解释了111报文在定位中的应用。下面是相关知识点的总结: 一、硬件配置 * 博途FB284是一种高...

Global site tag (gtag.js) - Google Analytics