六个步骤:
1.导入包:需要包含数据库编程所需的JDBC类的包。
2.注册JDBC驱动程序:要求你初始化驱动程序,以便你可以打开与数据库的通信通道。
3.打开链接:需要使用DriverManager.getConnection()方法创建一个Connection对象,该对象表示与数据库的物理连接。
4.执行查询:需要使用类型为Statement的对象来构建和提交SQL语句到数据库。
5.从结果集中提取数据:需要使用相应的ResultSet.getXXX()方法从结果中检索数据。
6.释放资源:需要明确地关闭所有数据库资源,而不依赖与jvm的垃圾收集。
JDBC连接步骤:
建立JDBC连接所涉及的编程需要简单的四个步骤:
1.导入JDBC包:将java语言的import语句添加到java代码中导入所需的类。
2.注册JDBC驱动程序:此步骤将使JVM所需的驱动程序实现加载到内存中,以便它可以满足您的JDBC请求。
3.数据库URL配置:这是为了创建一个格式正确的地址,指向要连接到的数据库。
4.创建连接对象:最后,调用DriverManager对象的getConnection()方法来建立实际的数据库连接。
Class.forName();
注册驱动程序最常见的方法就是使用java的class.forName()方法,将驱动程序的类加载到内存中,并将其自动注册
加入代码为:
1.首先创建一个stu类,其中包括表中的三个属性
public class stu {
//id | name | sid |
private int id;
private String name;
private int sid;
public stu() {
super();
}
public stu(int id, String name, int sid) {
super();
this.id = id;
this.name = name;
this.sid = sid;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
@Override
public String toString() {
return "stu [id=" + id + ", name=" + name + ", sid=" + sid + "]";
}
}
2.创建一个stuUtil工具类
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import com.mysql.jdbc.Connection;
public class stuUtil {//创建增删改查
private static Connection connection=null;
//该对象表示与数据库之间的物理连接
private static PreparedStatement ps=null;//创建一个对象
//创建一个方法专门来获取链接
public static Connection getConnection() {
//先加载驱动
try {
Class.forName("org.gjt.mm.mysql.Driver");
//再获取链接
connection=(Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "root", "123456");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();//打印报错信息
}
return connection;
}
//增
public static void Zeng(stu stu) {
getConnection();//调用方法获取链接
try {
String string="insert student values(?,?,?)";
ps=connection.prepareStatement(string);
ps.setInt(1,stu.getId());
ps.setString(2, stu.getName());
ps.setInt(3, stu.getSid());
int executeUpdate = ps.executeUpdate();
System.out.println(executeUpdate);
} catch (Exception e) {
// TODO: handle exception
}finally {
close();
}
}
//删
public static void shan(int tt) {
getConnection();
try {
String string="delete from student where id="+tt;
ps=connection.prepareStatement(string);
int executeUpdate = ps.executeUpdate();
System.out.println(executeUpdate);
} catch (Exception e) {
// TODO: handle exception
}finally {
close();
}
}
//改
public static void Update(int a,int b) {//将a改成b
getConnection();
try {
String string="update student set id="+b+" where sid="+a;
ps= connection.prepareStatement(string);
int executeUpdate = ps.executeUpdate();
System.out.println(executeUpdate);
} catch (Exception e) {
// TODO: handle exception
}finally {
close();
}
}
//查
public static ArrayList<stu> read(){
getConnection();
ArrayList<stu> arrayList = new ArrayList<stu>();
try {
String string="select * from student";
ps=connection.prepareStatement(string);
//查询
ResultSet rset = ps.executeQuery();
while(rset.next()) {
stu ss=new stu(rset.getInt("id"),rset.getString("name"),rset.getInt("sid"));
arrayList.add(ss);
}
} catch (Exception e) {
// TODO: handle exception
}finally {
close();
}
return arrayList;
}
//关闭
public static void close() {
if(connection!=null) {
try {
connection.close();
} catch (Exception e) {
// TODO: handle exception
}
}
}
}
3.测试类
import java.util.ArrayList;
public class JDBCdemoTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
//stuUtil.Update(3,5);//改
//stuUtil.Zeng(new stu(4, "hua", 8));//增
//stuUtil.shan(4);
stuUtil.read();
ArrayList<stu> stus=stuUtil.read();
System.out.println(stus);
}
}
若调用增、删、改、查的其中一个方法,只将代码前端的注释//删掉即可。