java-jdbc1

  今天听从老师的建议,在CSDN上写博客,以后就放弃了新浪博客,有兴趣的可以看看我之前写的新浪博客文章。(http://blog.sina.com.cn/u/5818596139),写的也不咋地。偷笑好嘞,那我们今天开始java-jdbc。

  JDBC是什么那?JAVA DatatBase Connectivity。就是java数据库连接,它主要的作用就是用java语句使用JDBC来操作数据库(各种数据库);

   JAVA中可以对数据库进行数据持久化的有如下的几个类:

                                        JDBC直接访问数据库

                                        JDO技术

                                        第三方的O/R工具,Hibernate ,mybatis等(O/R映射层是持久层的一个特例,它的数据模型是对象模型(Object),存储模型是关系模型(Relational),cmp和Hibernate是对象模型到关系模型之间转换的两种不同实现。百度的解释o/r

那么什么是数据持久化呐?(persistence):把数据保存到可掉电式存储设备中以供之后使用,大多数情况下,特别是企业级应用,持久化的实现过程大多通过各种关系数据库来完成。

  JDBC是java访问数据库的基石,JDO,Hibernate等只是更好的封装了JDBC。

JDBC严格来说就是一种规范,JAVA语言用来访问各种关系型数据库的规范。有关jdbc的还有两个词,JSR和JCP,其中的jsr是java specification requests的缩写,意思是java规范提案,java标准提案(JSR 221)。jcp是java community process是java的一个网站,一个组织,你前端不是也有w3c。

使用JDBC的好处:

他是访问各种数据的一组通用的接口。现在最高版本的jdbc是4.2

JDBC常用的一组接口(类):

①Driver(接口):数据库驱动接口,通常有各个厂商来实现,封装了对各种具体数据操作的代码。

②DriverManager(类):驱动管理器,用来管理已加载的驱动。

③connectio(接口):代表与数据库之间的一个链接。

④statement(接口):声明,它的作用是向数据库发送sql语句

⑤ReuseSet(接口):代表查询的结果;

现在我们知道jdbc中常用的接口或者是类,我们来一起看看怎么操作他们,了解之后再来看看他们的详细说明吧。来来来第一个JDBC栗子:

开发步骤:加载驱动,获得链接(connection),通过连接来创建statement,关闭资源。

        //加载驱动
Class.forName("com.mysql.jdbc.Driver");

//这句话中主要是用来加载驱动的,括号里面的内容是在jar包中找到的,如果括号中的东西写错了将出现classNotFoundException,如果没饮用进来jar包,则会用其自带的教案jar包即可能会报有NO suitable driver found for jdbc的错误字样。
//获得链接
String url="jdbc:mysql://localhost:3306/web1613";
String name="root";
String pwd="";
Connection conn=DriverManager.getConnection(url,name,pwd);
//创建statement,并执行sql语句。

//url:连接字符串,格式是协议,子协议,子名称。

DriverManager是一个驱动程序管理器,根据我们加载的驱动获得链接
Statement st=conn.createStatement();
  st.execute("insert into sc values (1402001,1,98)");

//关闭连接;
st.close();
conn.close();

//关闭的时候注意顺序
System.out.println("连接成功");

(上述的过程中你可必须开启数据库啊,有阿帕奇的启动它,没有的要确定数据库已经连接上了,不是光用你的navicat打开就完事了,连接连接!)

现在来一起了解一哈上面的那几个接口吧!导包的时候注意了,别整错了

1.java.sql中的connection(接口):

   与特定数据库的连接(会话),在连接上下文中执行SQL语句并返回结果,connection对象的数据库可提供描述其表所支持的sql语法,默认情况下,connection对象处于自动提交模式下,这意味着他在执行每个语句后都会自动的提交更改,如果禁用了自动提交模式,那么要提交更改就必须显示的调用commit方法。否则无法保存数据库更改。

connection方法:

close();commit();getTranssctionIsolation();isclosed();prepareStatement();rollback();setAutoCommit();

2.Statement(接口):

其中有两个子接口preparedStatement,callableStatement

statement是用来执行静态sql语句并返回他所生成的结果的对象,默认的情况下,同一时间每个statement对象只可打开一个ResultSet对象。因此,如果读取一个ResultSet对象与读取两一个交叉,则这两个对象必须是由不同的statement对象生成的,如果存在某个语句的打开方法都会隐式的关闭它。

statement代表一个声明,使用其可以表向数据库发送sql语句,

主要提供了三个方法用于执行特定的sql:

Boolean execute(sql);//第一个结果是ResultSet对象即返回true,如果是更新计数或者不存在任何的结果即false,DDL,DML都可以执行。

Boolean b=st.execute("create table tb_m(mid int primary key name varchar(20))");

system.out.println(b);//false

int executeUpdate(sql);//主要用来执行可更新的DML语句(update,delete,insert)返回受影响的记录的条数

int b=st.executeUpdate("delete from book where name="scw"");

system.out.println(b);返回数量;

unknown column ‘name’ in where clause就是拼写有错误了;

ResultSet executeQuery();//记录集(存储记录的集合)比较常用的方法,就是next(),记录集的游标,

while(rs.next()){

system.out.println(rs.getString(2));

}

还有getXXX();要么写列号,要么写列名。

例如说是:

ResultSet rs=st.executeQuery("select ------");

while(rs.next()){

int isbn=rs.getInt();

String name=rs.getString("bookname");

String price=rs.getString("price");

}

rs.close();

statement方法:

close();execute();executeBatch();execteQuery();executeUpdate();getConnection();isclosed();

3.ResultSet(接口):

表示数据库结果集的数据表,通常通过执行查询数据库的语句生成,

ResultSet对象具有指向其当前数据行的光标,最初,光标的位置设置与第一行之前,用next方法来移动光标到下一行,因为该方法在ResultSet对象没有下一行时返回false,即可在while循环中使用它来表示迭代结果集。默认的resultset对象不可更新,仅有一个向前移动的光标,,因此只可以迭代它一次,并且只可按照从第一行到最后一行的顺序进行,下面来个api中的例子,告诉你怎么生成可滚动的不受其他的更新影响的可更新结果集:

Statement sta=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet rs=sta.executeQuery("select a,b from table2");
//rs 将会滚动,将不会展现这个改变给其他的地方,和将会更新。

ResultSet 接口提供用于从当前行获得列值的方法,可以使用列的索引编号或者列名来获取值,一般情况下使用列索引较为高效,列从1开始.

PS:DriverManager类:驱动程序管理器,用来管理驱动并创建连接。

getConnection(url,username,password);connection接口:代表数据库的连接,注意区别Collection接口,connection是连接,Collection是集合。

本站博客用于日常总结笔记,方便携带查找。可能有不足之处,请读者见谅

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值