通用JDBC编程

JDBCJava数据库连接。

一、JDBC驱动程序

1、相应的数据库都有自己的JDBC驱动程序,很多都可以在相应网站上可以下载相应的jar包。在Web项目中安装JDBC驱动程序非常简单,只需要将相应的数据库驱动程序的Jar包拷贝到Web项目的WEB-INF目录下的lib目录下就可以了。安装完成后,就可以在该项目中使用JDBC驱动程序中的相应类和方法来进行数据库连接和CRUD操作。

2、加载JDBC驱动:

 JDBC与数据库建立连接之前必须加载适当的驱动程序。一般使用ClassforName()方法来加载驱动程序。其中Mysql的驱动程序类为com.mysql.jdbc包下的Driver.class.所以,可以使用

Class.forName("com.mysql.jdbc.Driver");

来加载Mysql的驱动程序。或者使用

 String Driver=null;

if(Driver!=null){

System.setProperty("com.mysql.jdbc.Drivers", Driver);

}

其他数据库同理。

二、JDBC连接数据库:JDBC连接数据库只需使用DriverManager类的getConnection()方法来创建一个Connection对象即可。但需给定连接的URL。其中连接的URl的语法格式为:

   主要通讯协议:次要通讯协议://数据来源

 其中,Mysql数据库的URL格式为:  

jdbc.mysql://localhost[:端口号(默认3306)]/数据库名称[?参数1=参数值1&参数2=参数值2]

 为了程序的通用性和灵活性,很多时候用一个资源文件来保存这些参数。

例:用OracleDB.properties来保存相关信息。

db.driver=oracle.jdbc.driver.OracleDriver

db.protocol=jdbc:oracle:thin:@localhost:1521:

db.database=Demo

db.username=scott

db.password=tigger

 此时,我们现在程序要连接的是MSSQL,只需保存相应的参数信息到MSSQLDB.properties

db.driver=com.microsoft.jdbc.sqlserver.SQLServerDriver db.protocol=jdbc:microsoft:sqlserver://127.0.0.1:1433

db.database=db_Job

db.username=sa db.password=

只需在数据库连接类中修改FileInputStream构造函数的参数为相应的资源文件。

FileInputStream in=new FileInputStream("MSSQLDB.properties");

 即可。

三、JDBCCRUD操作:

 数据库连接完成后,就可以对数据库进行CRUD操作了。这里要用到驱动程序包中的类:语句对象Statement。可以通过调用Connection对象的createStatement()方法来获创建并获取Statement对象,然后用Statement对象调用相应方法来执行SQL语句。

1、如果是增加记录、更新记录、删除记录,就调用Statement对象的executeUpdate(String sql)来执行sql.

2、如果是执行查询。则需要调用Statement对象的executeQuery(String sql)来执行查询。并将查询结果返回给一个ResultSet对象。ResultSet对象包含了所有查询得到了记录。可以通过ResultSet对象的next()方法来获取一条记录,同时光标将指向下一条记录。对于一条记录中的字段可以调用ResultSet对象的getXXX(int index)方法获取。XXX为相应字段的数据类型。比如字段id类型为int类型,是第一个查询字段,nameString类型,为第二个查询字段。就可以使用下面的语句来获取  

int id=resultsetObj.getInt(1); String name=resultsetObj.getString(2);

  同理、多条记录可以用循环来完成:

 

ResultSet rs=stat.executeQuery(selcetsql);

if(rs.next())

{

System.out.println(rs.getString(1));

}

 

四、JDBC的资源关闭:

不管是数据库连接对象,流对象,Statement对象和ResultSet对象。都会占用系统资源。我们在访问后,不需要相应的对象时就应该将相应对象进行关闭,释放资源。这里都可以调用close()方法即可。例:statObj.close();rs.close();conn.close();

五、JDBC的预处理语句对象PreparedStatement:对于SQL语句中需要带参数的,我们需要使用JDBC给我们的预处理语句对象PreparedStatement对象来操作SQL中的参数。PreparedStatement接口继承了Statement接口,所以他能够实现Statement的所有功能,但比Statemen更加灵活。PreparedStatement中的SQl语句可以接受一个或多个参数,这些参数值都用"?"来再SQL中代替,在执行SQL钱,必须通过PreparedStatement对象的setXXX()方法来为参数赋值。这里setXXX()方法中的XXX表示类型,方法有两个参数,第一个是int类型,表示SQL中的第几个"?",第二个是对应XXX类型的常量值。

例:String sql="insert into user(userid,username,password) values(null,?,?)";

这里的后面两个值需要在执行SQL之前用PreparedStatement对象的方法来赋值。所以有:

PreparedStatement pstmt=conn.preparedStatement(sql);

//设置参数值

pstmt.setString(1,"WANG");

pstmt.setString(2,"passwd");

//执行SQL

pstmt.executeUpdate();

是查询则是

pstmt.executeQuery();

 

 

注:sql:select * from user  limit 1,3;表示起始位置为第二条记录,一共查询三条记录。

  这样,我们写的数据库连接类就具有通用性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值