大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專(zhuān)注Java教育14年 全國(guó)咨詢(xún)/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) hot資訊 Java接口開(kāi)發(fā)入門(mén)示例

Java接口開(kāi)發(fā)入門(mén)示例

更新時(shí)間:2021-05-10 13:43:17 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1133次

小編最近在測(cè)試中發(fā)現(xiàn)mysql數(shù)據(jù)庫(kù)保存測(cè)試用例,測(cè)試結(jié)果是一種不錯(cuò)的選擇,為了后期方便在客戶端展示測(cè)試,便寫(xiě)了個(gè)接口。此次接口開(kāi)發(fā)不使用任何框架,需下載gson.jar,mysql-connector.jar,servlet-api.jar,以下為接口的開(kāi)發(fā)思路。

1.創(chuàng)建數(shù)據(jù)表,我這邊使用的是mysql數(shù)據(jù)庫(kù)

/*
SQLyog 企業(yè)版 - MySQL GUI v8.14 
MySQL - 5.5.49 : Database - test
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;
/*!40101 SET SQL_MODE=''*/;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`test` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `test`;
/*Table structure for table `testcase` */
DROP TABLE IF EXISTS `testcase`;
CREATE TABLE `testcase` (
  `caseId` INT(11) NOT NULL AUTO_INCREMENT,
  `caseName` VARCHAR(255) CHARACTER SET latin1 NOT NULL,
  `caseDetail` VARCHAR(255) CHARACTER SET latin1 NOT NULL,
  `caseDevice` VARCHAR(255) CHARACTER SET latin1 NOT NULL,
  PRIMARY KEY (`caseId`)
) ENGINE=INNODB AUTO_INCREMENT=48 DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC;
/*Data for the table `testcase` */
INSERT  INTO `testcase`(`caseId`,`caseName`,`caseDetail`,`caseDevice`) VALUES (2,'2','233','444'),(16,'dsf','sf','sfd'),(17,'safd','sadf','asf'),(18,'saf','ggd','sdf'),(19,'dsaf','sdf','sdf'),(20,'sfd','sfd','(NfdsULL)'),(21,'sdf','v','v'),(22,'f','f','e'),(23,'w','r3','rt'),(24,'er','rtrt','sfad'),(25,'sf','sdf','fds'),(26,'sa','s','s'),(27,'e','e','e'),(28,'sa','rt','rt'),(29,'we','ew','qw'),(30,'we','(NULfL)','dsf'),(31,'fd','s','g'),(32,'s','g','f'),(33,'sf','f','f'),(34,'c','c','c'),(35,'e','e','e'),(36,'d','d','q'),(37,'q','e','r'),(38,'f','r','g'),(39,'g','(NULgL)','g'),(40,'gg','g','d'),(41,'f','f','f'),(42,'f','f','f'),(43,'f','f','f'),(44,'v','f','g'),(45,'e','e','r'),(46,'4','rt','fg'),(47,'dsf','ds','sdf');
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

2.編寫(xiě)數(shù)據(jù)庫(kù)工具類(lèi)

package model;
import java.sql.*;
public class DBconn {
    static String url = "jdbc:mysql://localhost:3306/test?useunicuee=true& characterEncoding=utf8"; 
    static String username = "root"; 
    static String password = "123456"; 
    static Connection  conn = null;
    static ResultSet rs = null;
    static PreparedStatement ps =null;
    public static void init(){
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection(url,username,password);
        } catch (Exception e) {
            System.out.println("init [SQL驅(qū)動(dòng)程序初始化失敗!]");
            e.printStackTrace();
        }
    }
    public static int addUpdDel(String sql){
        int i = 0;
        try {
            PreparedStatement ps =  conn.prepareStatement(sql);
            i =  ps.executeUpdate();
        } catch (SQLException e) {
            System.out.println("sql數(shù)據(jù)庫(kù)增刪改異常");
            e.printStackTrace();
        }
        
        return i;
    }
    public static ResultSet selectSql(String sql){
        try {
            ps =  conn.prepareStatement(sql);
            rs =  ps.executeQuery(sql);
        } catch (SQLException e) {
            System.out.println("sql數(shù)據(jù)庫(kù)查詢(xún)異常");
            e.printStackTrace();
        }
        return rs;
    }
    public static void closeConn(){
        try {
            conn.close();
        } catch (SQLException e) {
            System.out.println("sql數(shù)據(jù)庫(kù)關(guān)閉異常");
            e.printStackTrace();
        }
    }
}

3.編寫(xiě)實(shí)體類(lèi)

package model;
public class TestCase {
     private int id;
     private String caseName;
     private String caseDetail;
     private String caseDevice;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getCaseName() {
        return caseName;
    }
    public void setCaseName(String caseName) {
        this.caseName = caseName;
    }
    public String getCaseDetail() {
        return caseDetail;
    }
    public void setCaseDetail(String caseDetail) {
        this.caseDetail = caseDetail;
    }
    public String getCaseDevice() {
        return caseDevice;
    }
    public void setCaseDevice(String caseDevice) {
        this.caseDevice = caseDevice;
    }   
}

4.新建一個(gè)分頁(yè)實(shí)體類(lèi),以便后期數(shù)據(jù)做分頁(yè)

package model;
import java.util.List;
public class TestCaseTotal {
    private int total; 
    private List<TestCase> rows;         
    public TestCaseTotal() {
    }
    public TestCaseTotal(int total, List<TestCase> rows) {
        this.total = total;
        this.rows = rows;
    }
    public int getTotal() {
        return total;
    }
    public void setTotal(int total) {
        this.total = total;
    }
    public List<TestCase> getRows() {
        return rows;
    }
    public void setRows(List<TestCase> rows) {
        this.rows = rows;
    }    
}

5.基礎(chǔ)操作寫(xiě)到一個(gè)接口里

package model;
import java.util.List;
public interface TestCaseDao {
    public List<TestCase> getCaseAll();
    public boolean addCase(TestCase testCase) ;
    public boolean deleteCase(int id) ;
    public boolean updateCase(TestCase testCase) ;
}

6.實(shí)現(xiàn)Dao接口

package model;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class TestCaseDaoImpl implements TestCaseDao {
    private PreparedStatement ptmt = null;  
    private ResultSet rs = null;
    @Override
    public List<TestCase> getCaseAll() {
        // TODO Auto-generated method stub
        List<TestCase> list = new ArrayList<TestCase>();
        try {
            DBconn.init();
            ResultSet rs = DBconn.selectSql("select * from testcase");
            while(rs.next()){
                TestCase testCase=new TestCase();
                testCase.setId(rs.getInt("caseId"));
                testCase.setCaseName(rs.getString("caseName"));
                testCase.setCaseDetail(rs.getString("caseDetail"));
                testCase.setCaseDevice(rs.getString("caseDevice"));                
                list.add(testCase);
            }
            DBconn.closeConn();
            return list;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;        
    }
    @Override
    public boolean addCase(TestCase testCase) {
        // TODO Auto-generated method stub
        boolean flag = false;
        DBconn.init();
        int i =DBconn.addUpdDel("insert into user(caseName,caseDetail,caseDevice) " +
                "values('"+testCase.getCaseName()+"','"+testCase.getCaseDetail()+"','"+testCase.getCaseDevice()+"')");
        if(i>0){
            flag = true;
        }
        DBconn.closeConn();
        return flag;
    }
    @Override
    public boolean deleteCase(int id) {
        // TODO Auto-generated method stub
        boolean flag = false;
        DBconn.init();
        String sql = "delete from testcase where caseId="+id;               
        int i =DBconn.addUpdDel(sql);
        if(i>0){
            flag = true;
        }
        DBconn.closeConn();
        return flag;    
    }
    @Override
    public boolean updateCase(TestCase testCase) {
        // TODO Auto-generated method stub
        return false;
    }
}

7.新建JsonServlet

package model;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.gson.Gson;
public class JsonServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {       
        TestCaseDaoImpl testCaseDaoImpl=new TestCaseDaoImpl();
        List<TestCase> list=testCaseDaoImpl.getCaseAll();
        List<TestCase> list1 =new ArrayList<>();
        int size =list.size();
        TestCase testCase;
        for(int i=0;i<size;i++){
            testCase=new TestCase();
            testCase.setId(list.get(i).getId());
            testCase.setCaseName(list.get(i).getCaseName());
            testCase.setCaseDetail(list.get(i).getCaseDetail());
            list1.add(testCase);           
        }       
        String page = req.getParameter("page");
        // 將數(shù)據(jù)添加到數(shù)組
        List<TestCase> caselist = new ArrayList<TestCase>();        
        //以下代碼做分頁(yè),寫(xiě)的不好,不喜勿噴
        if (page == null || page.equals("0")) {
            if(list1.size()>9){
                for(int i=0;i<10;i++){
                    caselist.add(list1.get(i));
                }
            }
            else{
                for(int i=0;i<list1.size();i++){
                    caselist.add(list1.get(i));
                }
            }           
        }
        else {
            int caseSize=list1.size();
            int page1 =caseSize/10;
            
            int pageNum=Integer.parseInt(page);
            //String parm=Integer.toString(a);
            if(pageNum<page1){
                for(int i=10*pageNum;i<10*pageNum+10;i++){
                    caselist.add(list1.get(i));
                }
            }
            else{
                for(int i=10*pageNum;i<list1.size();i++){
                    caselist.add(list1.get(i));
                }
            }            
        }
        
        TestCaseTotal nt = new TestCaseTotal(caselist.size(), caselist);
        // 調(diào)用GSON jar工具包封裝好的toJson方法,可直接生成JSON字符串
        Gson gson = new Gson();
        String json = gson.toJson(nt);
        // 輸出到界面
        System.out.println(json);
        resp.setContentType("text/plain");
        resp.setCharacterEncoding("gb2312");
        PrintWriter out = new PrintWriter(resp.getOutputStream());
        out.print(json);
        out.flush();        
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doGet(req, resp);
    }
}

8.新建index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
     <base href="<%=basePath%>">    
    <title>Test Json1</title>        
    <meta http-equiv="Content-Type" content="text/html"; charset=UTF-8>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">        
  </head>
  <body >
  <form action="getJson" method="get">
        <input type="submit" value="點(diǎn)擊獲取測(cè)試用例數(shù)據(jù)"/>
     </form>
  </body>
</html>

9.修改web.xml文件如下

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>JsonTest</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>  
  <servlet>
      <servlet-name>JsonServlet</servlet-name>
      <servlet-class>model.JsonServlet</servlet-class>
  </servlet>
  <servlet-mapping>
      <servlet-name>JsonServlet</servlet-name>
      <url-pattern>/getJson</url-pattern>
  </servlet-mapping>
</web-app>

10.右擊項(xiàng)目名-->選擇Run as-->選擇Run on Server

11.運(yùn)行成功后如下:

點(diǎn)擊按鈕展示接口數(shù)據(jù)如圖

每頁(yè)只展示10條數(shù)據(jù),若需要查看第二頁(yè)數(shù)據(jù)傳入?yún)?shù)page =1即可

以上就是動(dòng)力節(jié)點(diǎn)小編介紹的"Java接口開(kāi)發(fā)入門(mén)示例",希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢(xún),有專(zhuān)業(yè)老師隨時(shí)為您服務(wù)。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-10-10 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 中国日韩欧美中文日韩欧美色 | 国内精品99 | 久久精品国产亚洲高清 | 免费成人高清视频 | 免费视频爱爱太爽在线观看 | 一级毛片免费完整视频 | 国产欧美在线视频免费 | 一区二区三区不卡免费视频97 | 欧美日韩国产另类一区二区三区 | 久久久久久综合 | 亚洲人和日本人hd | 国产免费一区二区三区在线 | 欧美色婷婷 | 元龙第三季动漫在线观看免费版 | 亚洲自拍成人 | 四虎在线永久免费观看 | 国内主播大秀福利视频在线看 | 九九精品国产兔费观看久久 | 影视先锋av资源噜噜 | 特黄特级a级黄毛片免费观看多人 | 成人在线一区二区 | 婷婷尹人香蕉久久天堂 | 精品成人免费一区二区在线播放 | 欧美精品成人 | 日本一级毛片一级裸片 | 一级毛片私人影院 | 久99频这里只精品23热 视频 | 69性影院在线观看国产精品87 | 九九九精品视频 | 亚欧美视频 | 日本在线观看www鲁啊鲁视频 | 日韩99在线| 久久艹在线观看 | 私人影院免费 | 四虎影院国产精品 | 久久午夜精品 | 4虎永免费最新永久免费地址 | a级亚洲片精品久久久久久久 | 精品成人免费视频 | 中文字幕免费在线观看 | 人人艹在线 |