为什么需要JDBC?
在现实编程中,我们不可能永远编写的程序就是计算1到100之和之类计算的程序,面对对象编程的思想就是将现实世界的“对象”模拟到程序中,在程序中对现实世界的对象进行操作,那么现实世界中的“对象”数据模拟到程序中存放到哪里呢?我们将现实世界的“对象”数据以表的形式存放在数据库中(MySQL,SQLSer,oracle等数据库中),那么我们编写的程序如何操作数据库中的数据呢?JDBC技术就是帮助程序操作数据库的,JDBC连接数据库时,需要数据库厂商提供驱动,这些驱动是由java代码编写的,这些java类存放在jar包中,通过改变数据库驱动,以及j连接数据的java语句,我们编写的java程序能连接到MySQL,SQLServer等数据库中,根据SQl语句对数据库进行操作,从而使使用java程序编写的应用程序可以再任何支持java平台上运行,而不必在不同的平台上编写不同的应用,Java和JDBC的结合可以让开发人员在开发数据库应用时真正实现“一次编写,处处运行”。
什么是JDBC技术?
通俗来说:JDBC技术就是操作数据库的技术
常用JDBC类和接口:
Java语言提供了丰富的类和接口用于数据编程,利用他们可以方便的进行数据的访问和处理,使用JDBC的主要操作有与数据库建立数据连接,执行SQl语句,处理结果等
主要涉及DriverManager类、Connection接口、Statement接口、PrepareStatement接口,
ResultSet接口的使用
代码如下:
/**
*
* 学生类
*
*/
public class Student {
/*声明属性*/
private String name;
private String age;
private String sex;
/*getter,setter方法*/
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
/*构造方法*/
public Student(String name, String age, String sex) {
super();
this.name = name;
this.age = age;
this.sex = sex;
}
}
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
*
* 封装连接数据库方法类
*
*/
public class BaseDAO {
/*数据源设置*/
public static final String DRIVER="com.mysql.jdbc.Driver";
public static final String URL="jdbc:mysql://localhost:3306/demo";
public static final String USER="root";
public static final String PWD="123123";
/*jdbc对象*/
protected Connection conn=null;
protected PreparedStatement pstmt=null;
protected ResultSet rs=null;
/*数据库连接方法*/
protected Connection getConn(){
try {
Class.forName(DRIVER);
conn=DriverManager.getConnection(URL,USER,PWD);
} catch (ClassNotFoundException e) {
System.out.println("没有找到相关驱动。。。。。。");
e.printStackTrace();
} catch (SQLException e) {
System.out.println("连接数据库出错。。。");
e.printStackTrace();
}
return conn;
}
/**
* 释放连接方法
*/
protected void releaseALL(Connection conn,PreparedStatement pstmt,ResultSet rs){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(pstmt!=null){
try {
pstmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
/**
*
* 封装对数据库操作类
*
*/
public class MangerDAO extends BaseDAO {
/**
* add方法
*/
public int addStu(Student stu){
int result=0;
String inserSql="insert into student(name,age,sex)values(?,?,?)";
try {
conn=getConn();
pstmt=conn.prepareStatement(inserSql);
pstmt.setString(1, stu.getName()) ;
pstmt.setString(2, stu.getAge());
pstmt.setString(3, stu.getSex());
result=pstmt.executeUpdate();
} catch (SQLException e) {
System.out.println("添加方法出错");
e.printStackTrace();
}finally{
releaseALL(conn,pstmt,null);
}
return result;
}
}
public class test {
/**
* 测试类
*/
public static void main(String[] args) {
/*声明张三对象*/
Student zhangsan=new Student("张三","21","男");
/*调用MangerDAO内add方法*/
MangerDAO test=new MangerDAO();
test.addStu(zhangsan);
}
}