JDBC操作数据库

 

为什么需要JDBC?

在现实编程中,我们不可能永远编写的程序就是计算1100之和之类计算的程序,面对对象编程的思想就是将现实世界的“对象”模拟到程序中,在程序中对现实世界的对象进行操作,那么现实世界中的“对象”数据模拟到程序中存放到哪里呢?我们将现实世界的“对象”数据以表的形式存放在数据库中(MySQLSQLSeroracle等数据库中),那么我们编写的程序如何操作数据库中的数据呢?JDBC技术就是帮助程序操作数据库的,JDBC连接数据库时,需要数据库厂商提供驱动,这些驱动是由java代码编写的,这些java类存放在jar包中,通过改变数据库驱动,以及j连接数据的java语句,我们编写的java程序能连接到MySQLSQLServer等数据库中,根据SQl语句对数据库进行操作,从而使使用java程序编写的应用程序可以再任何支持java平台上运行,而不必在不同的平台上编写不同的应用,JavaJDBC的结合可以让开发人员在开发数据库应用时真正实现“一次编写,处处运行”。

什么是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);
 
        
 
                
                
        }
 

}
 


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值