import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.ParseException;
import java.util.Date;
import com.betasoft.util.InputData;
public class InsertDemo {
//驱动程序就是之前在classpath中配置的jdbc的驱动程序的jar包中
public static final String DBDRIVER = "oracle.jdbc.driver.OracleDriver";
//连接地址是由各个数据库生产商单独提供的,所以需要单独记住
public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:orcl";
//连接数据库的用户名
public static final String DBUSER = "system";
//连接数据库的密码
public static final String DBPASS = "orcl";
public static void main(String[] args) throws ParseException{
Connection conn = null; //表示数据库的连接对象
//Statement stmt = null; //表示数据库的更新操作 输入特殊内容 拼接会报错 比如单引号 为了避免类似的事情发生 使用其子接口
PreparedStatement pst = null;
InputData inputData = new InputData(); //表示接收数据库的查询结果
String name = inputData.getString("请输入姓名:");
int age = inputData.getInt("请输入年龄:","年龄必须是数字!");
//String date = inputData.getString("请输入生日:");
Date date = inputData.getDate("请输入生日:");
float salary = inputData.getFloat("请输入工资:","工资必须是数字!");
//String sql = "INSERT INTO person(pid,name,age,birthday,salary) VALUES (perseq.nextval,'"+name+"',"+age+",TO_DATE('"+date+"','yyyy-mm-dd'),"+salary+")";
String sql = "INSERT INTO person(pid,name,age,birthday,salary) VALUES (perseq.nextval,?,?,?,?)";
System.out.println(sql);
//1.使用Class类加载驱动程序
try {
Class.forName(DBDRIVER);
//2.连接数据库
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
System.out.println(conn);
//3.Statement接口需要通过Connetion接口进行实例化操作
//stmt = conn.createStatement();
pst = conn.prepareStatement(sql);
pst.setString(1,name);
pst.setInt(2,age);
pst.setDate(3,new java.sql.Date(date.getTime()));
pst.setFloat(4,salary);
//执行sql语句,更新数据库
//stmt.executeUpdate(sql);
pst.executeUpdate();
//执行sql语句,更新数据库
//4.关闭数据库
pst.close();
conn.close();
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
}
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class InputData {
private static Scanner scanner = new Scanner(System.in);
public char getChar(){
Scanner scanner = new Scanner(System.in);
return scanner.next().charAt(0);
}
public String getString(String name){
Scanner scanner = new Scanner(System.in);
System.out.print(name);
return scanner.next();
}
public Date getDate(String date) throws ParseException{
Scanner scanner = new Scanner(System.in);
System.out.print(date);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String str = scanner.next();
return sdf.parse(str);
}
public int getInt(String age,String condition){
int num=0;
/*boolean flag;
do{
flag = false;
System.out.print(age);
try{
Scanner scanner = new Scanner(System.in);
num = scanner.nextInt();
}catch(Exception e){
System.err.println(condition);
flag=true;
}
}while(flag);*/
/*System.out.print(age);
try{
//Scanner scanner = new Scanner(System.in);
num = scanner.nextInt();
}catch(Exception e){
System.err.println(condition);
this.getInt(age, condition);
}*/
System.out.print(age);
while(!scanner.hasNextInt()){
scanner.next();
System.out.print(age);
}
num=scanner.nextInt();
return num;
}
public float getFloat(String age,String condition){
float num=0f;
System.out.print(age);
while(!scanner.hasNextFloat()){
scanner.next();
System.out.print(age);
}
num=scanner.nextFloat();
return num;
}
}