package student;
import java.sql.*;
import java.util.Set;
class method {
/* * 获得statement对象后,可以使用executeUpdate(),executeQuery();等方法来执行sql语句, * a).executeUpdate()是用来执行create table,insert,drop table,alter table等会改变数据库 * 内容的sql语句,它会返回int结果,表示记录变动数目 * b).executeQuery()方法是用于select等查询语句,结果返回java.sql.Result对象代表查询的结果, * 查询的结果会是一条条的记录,然后可以使用getString(),getInt()...得到结果 * 下面首先是connect方法,目的是将繁琐重复的连接数据库代码封装到一个方法里面,方便在下面的插入查询等方法中调用 */
public static Connection connect(){
Connection ct=null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
ct=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl",
"scott", "sinstar");
} catch (Exception e) {
System.err.println("连接数据库出现错误!");
}
return ct;
}
/* * 最简单的插入方法,不带参数 */
public void insert(){
Connection ct=connect();
ResultSet rs=null;
String sql="insert into student values('9501','丁文峰','男',19,'计算机')";
try {
Statement st= ct.createStatement();
int count=st.executeUpdate(sql);
System.out.println("成功插入一条数据!"+count);
} catch (Exception e) {
System.out.println("插入数据出现错误!");
}
}
/* * 带了参数的方法,刚开始学习的时候,只会statement,不会prepareStatement, * 只能使用字符串的加法来组成一条查询语句 * statement用于执行静态的sql语句 */
public void insert(String sno,String sname,String sex,int age,String sdept){
Connection ct=connect();
ResultSet rs=null;
String sql;
String str1="insert into student values('";
String str2="','";
String str3="',";
String str4=",'";
String str5="')";
Integer i=new Integer(age);
String ageString=i.toString();
sql=str1+sno+str2+sname+str2+sex+str3+ageString+str4+sdept+str5;
//String sql="insert into student values('9501','丁文峰','男',19,'计算机')";
try {
Statement st= ct.createStatement();
int count=st.executeUpdate(sql);
System.out.println("成功插入一条数据!"+count);
} catch (Exception e) {
System.out.println("插入数据出现错误!");
}
}
/* * insert方法的升级版,运用prepareStatement,在方法中添加了参数后 * 可以使用setInt(列,值);等方法来灵活的插入语句, */
public void superInsert(String sno,String sname,String sex,int age,String sdept){
Connection ct=connect();
ResultSet rs=null;
String sql;
Integer i=new Integer(age);
String ageString=i.toString();
//String sql="insert into student values('9501','丁文峰','男',19,'计算机')";
try {
PreparedStatement st= ct.prepareStatement("insert into student values(?,?,?,?,?)");
st.setString(1, sno);
st.setString(2, sname);
st.setString(3, sex);
st.setInt(4, age);
st.setString(5, sdept);
int count=st.executeUpdate();
System.out.println("成功插入一条数据!"+count);
} catch (Exception e) {
System.out.println("插入数据出现错误!");
}
}
public void del(){
}
public void select(){
Connection ct=connect();
try {
Statement sm = ct.createStatement();
ResultSet rs = sm.executeQuery("select * from student");
/* * Statement用于向数据库发送语句;ResultSet代表结果集,它封装了查询到的数据 */
while (rs.next()) {
System.out.print("学号:"+rs.getString("sno"));//rs.getString(1)
System.out.print("姓名:" + rs.getString("sname"));//rs.getString(2)
System.out.print("性别:" + rs.getString(3));
System.out.print("年龄:" + rs.getInt(4));
System.out.println("系别:"+rs.getString(5));
/* * 获取查询结果有两种方法! * 1,使用rs.getInt("列名");或者rs.getString("列名"); * 2,使用rs.getString(1);代表获取第一列,2代表第二列,他是从1开始的,不是0 */
}
rs.close();
sm.close();
ct.close();
} catch (Exception e) {
System.out.println("查询错误!");
e.printStackTrace();
}
}
}