JavaWeb 프로그램에서 SQLserver 데이터베이스에 대한 삭제 및 수정 작업

37091 단어
성명: 며칠 배웠더니 드디어 첨삭 개찰의 조작을 파악했고 몇 가지 문제점도 발견했으니 총괄해 보겠습니다.
중점: 조작 데이터베이스는 주로 SQL 문장을 사용하는데 다른 것과 무관하다.
 
1: 사전 요구 사항: PreparedStatement
PreperedStatement는 Statement의 하위 클래스로, 실례 대상은 Connection을 호출할 수 있습니다.preparedStatement () 방법은 Statement 대상에 비해 PreperedStatement는 SQL 주입 문제를 피할 수 있습니다.Statement는 데이터베이스로 하여금 SQL을 빈번하게 컴파일하게 하여 데이터베이스 버퍼가 넘칠 수 있습니다.PreparedStatement는 SQL을 사전 컴파일하여 데이터베이스의 실행 효율을 높일 수 있습니다.또한PreperedStatement는 sql의 매개 변수에 대해 자리 차지 문자의 형식으로 교체를 허용하고 sql 문장의 작성을 간소화합니다.
예:
1 PreperedStatement mi = Connection.preparedStatement();
2 try{
3 i = mi.executeUpdate();
4  }catch(Exception e){
5  if(i != 1)
6 {
7  System.out.println("     ");
8  }
9  }

예:
1: index를 작성합니다.jsp 파일은 JSTL의 탭을 통해 servlet을 가리킵니다
  1 package com.ll;
  2 
  3 import java.io.IOException;
  4 import java.sql.*;
  5 import java.util.ArrayList;
  6 import java.util.List;
  7 
  8 import javax.servlet.ServletException;
  9 import javax.servlet.annotation.WebServlet;
 10 import javax.servlet.http.HttpServlet;
 11 import javax.servlet.http.HttpServletRequest;
 12 import javax.servlet.http.HttpServletResponse;
 13 
 14 import dao.Studentdao2;
 15 
 16 /**
 17  * Servlet implementation class GoodsServlet
 18  */
 19 @WebServlet("/GoodsServlet")
 20 public class GoodsServlet extends HttpServlet {
 21     private static final long serialVersionUID = 1L;
 22        
 23     /**
 24      * @see HttpServlet#HttpServlet()
 25      */
 26     public GoodsServlet() {
 27         super();
 28         // TODO Auto-generated constructor stub
 29     }
 30 
 31     /**
 32      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 33      */
 34     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 35         // TODO Auto-generated method stub
 36         String action = request.getParameter("action");
 37         if(action.equals("zongjin")){
 38             
 39             try {
 40                 query(request,response);
 41             } catch (Exception e) {
 42                 // TODO Auto-generated catch block
 43                 e.printStackTrace();
 44             }
 45         }
 46         
 47         
 48         
 49     }
 50 
 51     /**
 52      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
 53      */
 54     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 55         // TODO Auto-generated method stub
 56     }
 57     
 58     
 59     public void query(HttpServletRequest request, HttpServletResponse response) throws Exception{
 60         Studentdao2 conn = new Studentdao2();
 61         String sql = "Select *from Student";
 62     
 63          /*
 64         //              
 65           String addsql = "  -19-  1501- ";
 66           conn.addsql(addsql);
 67          */ 
 68         
 69         
 70         /*
 71          //         
 72         String strdelete = "Delete from Student Where    = '  '";
 73         conn.deletesql(strdelete);
 74         */
 75         
 76         /*
 77          //         
 78         String update = "Update Student set   ='  ' Where    = '  ' ";
 79         conn.updateSql(update);
 80         */
 81         
 82         
 83         ResultSet rs =conn.executeQuery1(sql);//              
 84         List list = new ArrayList();
 85         while(rs.next())
 86         {
 87             Student f = new Student();
 88             //equals      false               "            "    
 89             f.setBanji(rs.getString("  "));
 90             f.setName(rs.getString("  "));
 91             f.setSex(rs.getString("  "));
 92             f.setTime(rs.getString("  "));        
 93             
 94             list.add(f);
 95             
 96         }
 97         
 98         request.setAttribute("list", list);
 99         request.getRequestDispatcher("sql2.jsp").forward(request, response);
100         
101         
102         
103         
104     }
105     public String cat(String str){
106         String[] arr = str.split(" ");
107         String s = arr[0];
108         return s;
109         
110     }
111 
112 }

3. 서브렛의 웹.xml 파일
 1 "1.0" encoding="UTF-8"?>
 2 "http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp" 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">
 3   JSTL
 4   
 5     index.html
 6     index.htm
 7     index.jsp
 8     default.html
 9     default.htm
10     default.jsp
11   
12   
13     
14       http://java.sun.com/jstl/fmt
15       /WEB-INF/tld/fmt.tld
16     
17     
18       http://java.sun.com/jstl/core
19       /WEB-INF/tld/c.tld
20     
21     
22       http://java.sun.com/jstl/sql
23       /WEB-INF/tld/sql.tld
24     
25     
26       http://java.sun.com/jstl/x
27       /WEB-INF/tld/x.tld
28     
29   
30   
31   
32       GoodsServlet
33       class>com.ll.GoodsServletclass>
34   
35   
36   
37        GoodsServlet
38        /com.ll.GoodsServlet
39   
40   
47   
48 

4. 데이터베이스 연결 및 처리에 사용할 클래스 만들기
 1 package dao;
 2 
 3 import java.io.InputStream;
 4 import java.sql.Connection;
 5 import java.sql.DriverManager;
 6 import java.sql.PreparedStatement;
 7 import java.sql.ResultSet;
 8 import java.sql.SQLException;
 9 import java.sql.Statement;
10 import java.util.Properties;
11 
12 public class Studentdao2 {
13      public Connection conn = null;
14      public String url = null;
15      public Statement stmt = null;
16      public ResultSet rs = null;
17      public static String propFilename = "Studentdao2.properties";
18      private static Properties prop = new Properties();
19      private static String  dbClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
20      private static String dbUrl = "jdbc:sqlserver://localhost:1433;DatabaseName=StudentManagement";
21      private static String  addSql = "insert into Student values(?,?,?,?)";
22      private static String updateSql = "update Student set   =?,  =?,  =?,  =?";//            
23      public Studentdao2(){
24          try{
25             // InputStream in = getClass().getResourceAsStream(propFilename);
26             // prop.load(in);
27             // dbClassName = prop.getProperty("DB_URL",dbUrl);
28             // dbUrl = prop.getProperty("DB_URL", dbUrl);
29              Class.forName(dbClassName);
30              conn = DriverManager.getConnection(dbUrl, "sa", "zongjin123");
31              if(conn != null)
32              {
33                  System.out.println("    ");
34              }
35              else{
36                  System.out.println("    ");
37              }
38              stmt = conn.createStatement();
39              
40          }catch(Exception e){
41              e.printStackTrace();
42          }
43          
44      }
45     public ResultSet executeQuery1(String sql) throws Exception {
46         // TODO Auto-generated method stub
47         this.rs = this.stmt.executeQuery(sql);
48         return this.rs;
49     }
50     public void addsql(String sql) throws Exception{
51         PreparedStatement add = conn.prepareStatement(addSql);
52         String[] shuju = sql.split("-");
53         System.out.println(shuju[0]);
54         add.setString(1, shuju[0]);
55         add.setString(2,shuju[1]);
56         add.setString(3,shuju[2]);
57         add.setString(4, shuju[3]);
58         add.executeUpdate();
59         add.close();    
60     }
61     public void deletesql(String sql) throws Exception{
62         int i = 0;
63         PreparedStatement delete = conn.prepareStatement(sql);
64         try{
65            i = delete.executeUpdate();
66         }catch(Exception e){
67             if(i != 1)
68             {
69                 System.out.println("    ");
70             }
71         }
72         delete.close();
73     }
74     public void updateSql(String sql)throws Exception
75     {
76         PreparedStatement update = conn.prepareStatement(sql);
77         //            ,       sq          
78         //update.setString(2, str);
79         //String[] shuju = sql.split("-");
80         //System.out.println(shuju[0]);
81         //update.setString(1, shuju[0]);
82         //update.setString(2,shuju[1]);
83         //update.setString(3,shuju[2]);
84         //update.setString(4, shuju[3]);
85         update.executeUpdate();
86         update.close();
87     }
88     
89 }

5. 데이터 저장에 사용되는 학생류 작성
 1 package com.ll;
 2 
 3 public class Student {
 4     private String name;
 5     private String time;
 6     private String banji;
 7     private String sex;
 8     public String getBanji() {
 9         return banji;
10     }
11     public void setBanji(String banji) {
12         this.banji = banji;
13     }
14     
15     public String getName() {
16         return name;
17     }
18     public void setName(String name) {
19         this.name = name;
20     }
21     public String getTime() {
22         return time;
23     }
24     public void setTime(String time) {
25         this.time = time;
26     }
27     
28     public String getSex() {
29         return sex;
30     }
31     public void setSex(String sex) {
32         this.sex = sex;
33     }
34     
35 
36 }

6 index를 실행합니다.jsp 파일로 실행
전재 대상:https://www.cnblogs.com/zongjin/p/7511762.html

좋은 웹페이지 즐겨찾기