欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-21 09:01:53
...

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

表结构如下:
JDBC练习1 从控制台向数据库的表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;	
		}
	
}

输出结果:
JDBC练习1 从控制台向数据库的表customers中插入一条数据
数据库表更新结果:
JDBC练习1 从控制台向数据库的表customers中插入一条数据

相关标签: JDBC