jdbc

 20110914

JDBC连接数据库

一、连接

a)       载入驱动 第一种方法  Class.forName(com.mysql.jdbc.Driver);(建议)   第二种方法  com.mysql.jdbc.Driver driver=new com.mysql.jdbc.Driver();   DriverManager.rigister(driver);

b)      建立连接 Connection con=DriverManager.getConnection(“jdbc:mysql://localhost:3306//mysql”,”root”.”123456”)

c)       生成语句对象  Statement st=con.createStatement();

d)      提交SQL语句 executeUpdate()  完成插入,修改insert ,  excute("sql的create语句或drop语句等");  ResultSet set=stat.excuteQuery("查询语句");//结果集

e)       读取结果集   ResultSet set=stat.excuteQuery("查询语句");//结果集                  if(set.next){  set.getString(1); set.getInt(2);};

f)        利用面向对象来改进  set.excuteUpdate(“insert into student(name,sex,birthday) values(‘“+对象.getName()1+”’,’”+对象.getSex()+”’,’”+对象.getBrithday()+”’);”);

g)       解决字符串拼接问题   代码如下

Public viod retrieve(){

      PreparedStatement pst=null;  //语句对象,实现数据安全。提高服务器性能.利用占位符,然后调用方法给占位符赋值。

      ResultSet rs=null;

      //载入驱动

      Try{

     

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

      Connection con=DriverManager.getConnection(“jdbc:mysql://localhost:3306//mysql”,”root”.”123456”);

      Pst=con.prepareStatement(“select * from where name=?”);//预编译的,要带上参数,用?号代替,占位符。

      //给?号 占位符 设置值

      Pst.setString(int Index,值);//两个参数。第一个是在SQL语句中第几个占位符,后一个参数为值

      //提交SQL语句.直接调用executeQuery方法提交,将结果给了ResultSet对象

      Rs=Pst.executeQuery();

      //读取结果集

      Rs.next(); //返回真假。移动结果集的指针。可以用if while来选择使用

     

If(rs.next()){

      Rs.getString(1); 结果集中的第一列

}

 

}catch(SQLException e){

      e.printStackTrace();

}finally{

       If(pst!=null){

              Pst.close();

       }

       If(rs!=null){

              Rs.close();

       }

       If(con!=null){

              Con.close();

       }

}

 

}

二、         在类外建立包。定义接口并实现。 对应的实现类的操作。

a)       定义接口。 实现此类所用的功能。 每个功能都要定义方法。

b)      定义实现接口类,定义静态变量Connection对象连接数据库. 在静态初始块中给connection对象赋值。

c)       实现每一个方法,利用preparestatement预编译对象来操作数据。

d)      关闭对象的操作。定义方法,在每一个方法执行完在finnally块中关闭。

三、         读取结果集

a)       Absolute(int row); 绝对定位指针的位置 定位到第几行

b)      First() 定义到第一个数据上面 Last(); 最后

c)       Next(); 将指针向下移动   previous() 将指针向前移动

d)      afterLast(); 将指针移动到最后一行的后面

e)       getXXX(int index);获取第几个位置的数据  getXXX(String ss); ss是指列的名字;

四、         JDBC对LOB的读写

a)       BLOB 用于存储大量二进制数据

b)      CLOB 用于存储大量文本数据

c)       读取数据,使用输入流

PreparedStatement ps=conn.prepareStatement(“insert into student(name,resume) value(?,?)”);

Int index=1;

Ps.setString(index++,”张三”);

File file=new File(“2.txt”);

FileReader reader=new FileReader(file);

Ps.setCharacterStream(index++,reader,(int )file.length());

If(ps.executeUpdate()>0){

System.out.println(“执行成功”);

}

//读取的操作。使用输出流

If(rs.nett()){

Reader reader=rs.getCharacterStream(2);

Writer writer =new FileWriter(“test.txt”);

Char[] buf=new char[1024];

Int len;

While((len=reader.read(buf))!=-1)

Writer.writer(buf,0,len);

Reader.close();

Writer.close();

      }

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值