JDBC练习1 从控制台向数据库的表customers中插入一条数据

从控制台向数据库的表customers中插入一条数据:

表结构如下:
在这里插入图片描述
代码示例:

package com.atguigu4.exer;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.Scanner;

import org.junit.Test;

import com.atguigu3.util.JDBCUtils;

/*
 * 
 * 
 */
public class Exer1Test {
	@Test
	public void testInsert() {
		Scanner scanner=new Scanner(System.in);
		System.out.println("请输入用户名:");
		String name = scanner.next();
		System.out.println("请输入邮箱::");
		String email = scanner.next();
		System.out.println("请输入生日:");
		String birthday = scanner.next();//birth在数据库中是Data类型,这里是String,其实有一个隐式转换
		
		String sql="insert into customers(name,email,birth)values(?,?,?)";
		int insertCount=update(sql, name,email,birthday);
		if (insertCount>0) {
			System.out.println("添加成功");
		}else {
			System.out.println("添加失败");
		}
			
	}
	
	
	//通用的增删改操作(前提是在同一个数据库中)
		public int update(String sql,Object ...args)  {//sql中占位符的个数与可变形参的长度相同
			
			Connection conn=null;
			PreparedStatement ps=null;
			try {
				//1、获取数据库的连接
				 conn = JDBCUtils.getConnectio();
				//2、预编译sql语句,返回PrepareStatement的实例
				ps = conn.prepareStatement(sql);			
				//3、填充占位符
				for(int i=0;i<args.length;i++) {
					ps.setObject(i+1,args[i]);//小心参数声明错误
				}
				//4、执行
				/*
				 * ps.execute()
				 * 如果执行的是查询操作,有返回结果,则此方法返回true
				 * 如果执行增删改操作,没有返回结果,则此方法返回false
				 * 方式一:
				 */
				 //ps.execute();
				//方式二:
				return ps.executeUpdate();
			} catch (Exception e) {
				e.printStackTrace();
			}finally {
				//5、资源的关闭
				JDBCUtils.closeResource(conn, ps);
			}
				return 0;	
		}
	
}

输出结果:
在这里插入图片描述
数据库表更新结果:
在这里插入图片描述

posted @ 2020-06-03 19:08  秋弦  阅读(341)  评论(0编辑  收藏  举报