首先要对项目导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();
}
}
}