JDBC连接数据库.doc

JDBC连接数据库

一、连接

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

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

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

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

e)      读取结果集   ResultSetset=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 wherename=?”);//预编译的,要带上参数,用?号代替,占位符。

      //给?号 占位符 设置值

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

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

      Rs=Pst.executeQuery();

      //读取结果集

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

     

If(rs.next()){

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

}

 

}catch(SQLExceptione){

      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)      读取数据,使用输入流

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

Int index=1;

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

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

FileReader reader=newFileReader(file);

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

If(ps.executeUpdate()>0){

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

}

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

If(rs.nett()){

Readerreader=rs.getCharacterStream(2);

Writer writer =newFileWriter(“test.txt”);

Char[] buf=new char[1024];

Int len;

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

Writer.writer(buf,0,len);

Reader.close();

Writer.close();

      }

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值