在网页对数据库进行增删改查

首先要对项目导jar包                              编写页面代码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="js/jquery.js" ></script>
</head>
<body>

	姓名:<input id="input_1" type="text" style="width:100px;"  /> <br/>
	性别:男:<input id="radio_1" name="sex" type="radio" value="1" /> 女<input id="radio_2" name="sex" type="radio" value="2" /> <br/>
	工作:<input id="input_2" type="text" style="width:100px;"  /> <br/>
	肤色:<input id="input_4" type="text" style="width:100px;"  /> <br/>
	年龄:<input id="select_1">	
	<!--   	<option value="100">A级</option>
			  <option value="90">B级</option>
			  <option value="80">C级</option>
			  <option value="70">D级</option>
			  <option value="60">E级</option>
	-->
		</select>
		<br/><br/><br/><br/><br/><br/>
	
	<input id="btn_1" type="button" value="提交" onclick="submit()"  />

</body>

	<script>
		
	function submit(){
		
		var name = $("#input_1").val();
		var sex = $('input[name="sex"]:checked').val();
		var job = $("#input_2").val();
		var fuse = $("#input_4").val();
	//	var store = $("#select_1 option:selected").text();
		var age = $("#select_1").val();
		
	//	console.log(name+classname+sex+major+store);
		
		var data={
				
			"name":name,
			"sex":sex,
			"job":job,
			"fuse":fuse,
			"age":age
				
		}
		
		var url = "Ser2";
		 $.ajax({
		        type: "post",
		        url: url,
		        data: data,
		        cache: false,
		        async : false,
		      //  dataType: "JSON",
		        success: function (data ,textStatus, jqXHR)
		        {
		        	if(data.code == 200){
		        		alert("插入成功了");
		        	}else{
		        		alert(data.message);
		        	}
		        },
		        error:function (XMLHttpRequest, textStatus, errorThrown) {      
		           
		            alert(typeof(errorThrown));
		        }
		     });
		
	}
	
 

	</script>

</html>

package com.web;

import java.io.IOException;
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 com.mysql.MysqlUtil;

/**
 * Servlet implementation class Ser2
 */
@WebServlet("/Ser2")
public class Ser2 extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Ser2() {
        super();
        // TODO Auto-generated constructor stub
    }

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

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		
		response.setCharacterEncoding("utf-8");
		response.setContentType("application/json; charset=utf-8");
		
		String name = request.getParameter("name");
		String sex = request.getParameter("sex");
		String job = request.getParameter("job");
		String fuse = request.getParameter("fuse");
		String age = request.getParameter("age");
		
		String addsql = "insert into person (pername,sex,job,fuse,age) values ('"+name+"','"+sex+"','"+job+"','"+fuse+"',"+age+")";
		System.out.println("addsql:"+addsql);
		int result = MysqlUtil.add(addsql);
		
		String rep = "";
		if( result == 1) {
			
			rep = "{\"code\":\"200\",\"message\":\"成功插入数据库\"}";
		}else {
			
			rep = "{\"code\":\"999\",\"message\":\"插入失败了\"}";
		}
		
	
		response.getWriter().write(rep);
		
		
	}
package com.mysql;

import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.model.Person;

public class MysqlUtil {

//	public static void main(String[] args) {
//		// TODO Auto-generated method stub
//		String sqlstr = "INSERT  INTO student  (stuname,class,sex,major,mathstore,engstore,yuwenstore) VALUES('";
//		
//		sqlstr += "赵大众','大四1班','2','计算机专业','50','80','100')";
//	
//		String delstr = " insert into student (stuname,class,sex,major,mathstore) values ('彭小杰','初三','1','全专业',90) ";
//		
//	
//		System.out.println(add(delstr));
//	}
//	
	
    
    //插入操作
    public static int add(String sql) {
        int i=0;
     
        DBConnection db = new DBConnection();
        try {        
            PreparedStatement preStmt = (PreparedStatement) db.conn.prepareStatement(sql);
            preStmt.executeUpdate();
            //Statement statement = (Statement) db.conn.createStatement();
            //statement.executeUpdate(sql);
            
            preStmt.close();
            db.close();//关闭连接 
            i = 1;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return i;//返回影响的行数,1为执行成功
    }
    
    //查找操作
    public static List< Map<String,String> > show(String sql, String[] params){
        // String sql ="select * from employee";
    	
    	
    	List< Map<String,String> > listmap = new ArrayList<>();
    	
         DBConnection db = new DBConnection();
         ResultSet rs = null;
         System.out.println("-----------------");
         System.out.println("姓名" +"\t"+ "邮箱" +"\t"+ "日期");
         System.out.println("-----------------");
         
         try {
            Statement stmt = (Statement) db.conn.createStatement();
            rs = (ResultSet) stmt.executeQuery(sql);
            while(rs.next()){
            	
            	Map<String,String> map = new HashMap<String,String>();
            	for(int i = 0; i < params.length; i++) {
            		
            		map.put(params[i], rs.getString(params[i]));
            	}
            	listmap.add(map);
            }
            rs.close();
            db.close();//关闭连接 
        } catch (SQLException e) {
            e.printStackTrace();
        }
		return listmap; 
         
     
    }
    //更新操作
    public static int update( String sql ) {
        int i =0;
       // String sql="update employee set email=?,pwd=? where name=?";
        DBConnection db = new DBConnection();
        
        try {
            PreparedStatement preStmt = (PreparedStatement) db.conn.prepareStatement(sql);
//            preStmt.setString(1, uemail);
//            preStmt.setString(2, upwd);
//            preStmt.setString(3, uname);
            preStmt.executeUpdate();
            
            preStmt.close();
            db.close();//关闭连接 
            i = 1;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return i;//返回影响的行数,1为执行成功
    }
    //删除操作
    public static int del(String sql) {
        int i=0;
      //  String sql="delete from employee where name=?";
        DBConnection db = new DBConnection();
        try {    
            PreparedStatement preStmt = (PreparedStatement) db.conn.prepareStatement(sql);
         
            preStmt.executeUpdate();
            
            preStmt.close();
            db.close();//关闭连接 
            
            i = 1;
        } catch (SQLException e){
            e.printStackTrace();
        }
        return i;//返回影响的行数,1为执行成功
    }
    
    
    public static List<Object> query(Class<?> obj, String sql) throws SQLException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{
        Statement  st=null;
        List<Object> list=new ArrayList<>();
   
        DBConnection db = new DBConnection();
        		Statement stmt = (Statement) db.conn.createStatement();
                ResultSet rs=st.executeQuery(sql);
                //获取传入类中的方法
                Method[] methods=obj.getMethods();
                //设置一个方法的list集合,下面将方法放入其中,以便调用
                List<Method> list_m= new ArrayList<>();
                //类中有许多方法,过滤一些方法,获取自己想要的方法
                for(int i=0;i<methods.length;i++){ //过滤方法
                    //判断方法名字中是否有set这个提取
                    if (methods[i].getName().contains("set")) {
                        //将方法添加到list中
                        list_m.add(methods[i]);
                    }
                }
                //创建字符串string集合,获取下面的字段名存入
                List<String> fieldname=new ArrayList<>();
                //获取类中的属性,其属性对应数据库中的字段
                Field[]    f=obj.getDeclaredFields();
                //循环将字段中的名字首个变大写
                for (int i = 0; i < f.length; i++) {
                    //获取名字
                    String field=f[i].getName();
                    //变大小写,存入fieldname集合
                    fieldname.add(upperCase(field));
                }
                //获取得到结果集(rs)的结构,比如字段数、字段名等。
                ResultSetMetaData  rsmd=  rs.getMetaData();
                //循环读取结果集中的数据添加到list集合中
                while (rs.next()) {
                    //创建一个传入类对象user
                    Object user=obj.newInstance();
                    //遍历方法的集合
                    for (Method m : list_m) {
                        //遍历字段的集合
                        for (int i = 0; i < f.length; i++) {
                            //方法和字段作比较,查看方法名中是否含有这个字段名,两者匹配
                            if (m.getName().contains("set"+fieldname.get(i))) {
                                //匹配成功 ,则去得到rsmd去获取数据库中的字段名,rs.getObject,再根据获取的这个字段名去得到这个字段值
                                Object value=rs.getObject(rsmd.getColumnName(i+1));
                                //获取这个字段的类型,以便去储存这个值的类型
                                Class<?> type=f[i].getType();
                                //是int类型的转化
                                if (type==int.class) {
                                    value=new Integer(value.toString());
                                }
                                //string类型的转化
                                if (type==String.class) {
                                    value=value.toString();
                                }
                                //m是user对象中的方法,设置其值
                                m.invoke(user, value);
                            }
                        }
                    }
                    //将的到的user对象实例添加到list集合中
                    list.add(user);
                   
                }
                return list;
  }


	public static String upperCase(String str) {  
	    //先将字符串转换为字符数组
	    char[] ch = str.toCharArray();  
	    //将数组的第一个元素     即字符串首字母,进行ASCII 码前移,ASCII 中大写字母从65开始,小写字母从97开始,所以这里减去32。
	    if (ch[0] >= 'a' && ch[0] <= 'z') {  
	        ch[0] = (char) (ch[0] - 32);  
	    }  
	    return new String(ch);  
	}  

}

 加载数据库驱动

package com.mysql;

import java.sql.Connection;
import java.sql.DriverManager;

public class DBConnection {
	static String driver = "com.mysql.jdbc.Driver";
	static String url= "jdbc:mysql://localhost:3306/mydatabase01?useUnicode=true&characterEncoding=utf-8";
	static  String user = "root";
	static  String password = "root";
	    
	    public Connection conn;
	    
	    static {
	    	
	    	try {
	    		System.out.println("驱动加载开始=====================");
				Class.forName(driver);
				System.out.println("驱动加载完毕==================");
				
			} catch (ClassNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}// 加载驱动程序
	    }

	    public DBConnection() {

	        try {
	            
	            conn = (Connection) DriverManager.getConnection(url, user, password);// 连续数据库
	            
	            if(!conn.isClosed())
	                System.out.println("Succeeded connecting to the Database!"); 
	        } catch (Exception e) {
	            e.printStackTrace();
	        }
	    }
	    
	    public void close() {
	        try {
	            this.conn.close();
	        } catch (Exception e) {
	            e.printStackTrace();
	        }
	    }

}

猜你喜欢

转载自blog.csdn.net/weixin_42630877/article/details/81223992
今日推荐