数据库操作
1.connection接口:
与特定数据库连接,在连接上下文中执行SQL语句并返回结果。
2.statement接口:
在已建立连接的基础上向数据库发送SQL语句。
statement对象:用于执行不同参数的简单SQL语句
preparement对象继承statement,用于执行动态SQL语句
callablestatement对象继承preparement,执行对数据库的存储过程调用
3.preparementstatement接口:
用于执行动态SQL语句。
4.drivermanger类:
管理数据库中所有驱动程序。
5.resultset接口:
类似于一个临时表,用于暂时存放数据库查询操作所获得的结果集。
package test;
import java.sql.*;
public class Conn {
static Connection con;
static Statement sql;
static PreparedStatement sql1; //预处理语句
static ResultSet res;
public Connection getcConnection() {
try { //加载数据库驱动类
Class.forName("com.mysql.jdbc.Driver");
System.out.println("数据库加载成功");
}catch (ClassNotFoundException e) {
e.printStackTrace();
System.err.println("数据库加载失败");
}
try { //通过访问数据库的URL获取数据库连接对象
con = DriverManager.getConnection("jdbc:mysql:"+"//localhost:3306/test","root","1234");
System.out.println("数据库连接成功");
}catch (SQLException e) {
e.printStackTrace();
}
return con; //按方法要求返回一个connection对象
}
public static void main(String[] args) {
Conn c = new Conn();
c.getcConnection(); //调用连接数据库的方法
try {
// sql = con.createStatement();//获得statement对象,向数据库发送sql语句
// sql1 = con.prepareStatement("select *from information where id= ?");//实例化预处理对象
sql1 = con.prepareStatement("select *from information ");//实例化预处理对象
// sql1.setInt(1,2);//设置参数,查询编号为2的学生
// res = sql.executeQuery("select *from information");//对数据库对象查询和修改,并将查询结果放在resultset类的对象
// res = sql.executeQuery("select *from information where name like'张%'");//模糊查询%代替0个或多个字符,_代替一个字符
res = sql1.executeQuery();//执行预处理语句
System.out.println("执行增删改前数据");
while(res.next()) {
String id = res.getString("id");
String name = res.getString("name");
String sex = res.getString("sex");
String birthday = res.getString("birthday");
System.out.print("编号:"+id+"----");
System.out.print("姓名:"+name+"----");
System.out.print("性别:"+sex+"----");
System.out.println("生日:"+birthday);//切记最后一个用println
}
//预处理添加数据
sql1 = con.prepareStatement("insert into information values (?,?,?)");
sql1.setString(1,"张扬");
sql1.setString(2,"女");
sql1.setString(3,"2000");
sql1.executeUpdate();
//预处理更新数据
sql1 = con.prepareStatement("update information set birthday = ? where id =(select min(id) from information)");
sql1.setString(1,"2020");
sql1.executeUpdate();
//预处理删除数据
Statement stmt=con.createStatement();
stmt.executeUpdate("delete from information where id =(select min(id) from information)");
sql1.setInt(1,1);
sql1.executeUpdate();
//执行sql语句
sql1 = con.prepareStatement("select *from information");
res = sql1.executeQuery();
System.out.println("执行增删改后的数据");
while(res.next()) {
String id = res.getString("id");
String name = res.getString("name");
String sex = res.getString("sex");
String birthday = res.getString("birthday");
System.out.print("编号:"+id+"----");
System.out.print("姓名:"+name+"----");
System.out.print("性别:"+sex+"----");
System.out.println("生日:"+birthday);//切记最后一个用println
}
}catch (Exception e) {
e.printStackTrace();
}
}
}