jdbc技术(一)

来源:互联网 发布:淘宝联盟——我的舞台 编辑:程序博客网 时间:2024/05/23 19:37

JDBC(Java Data Base Connectivity,java数据库连接),由一些接口和类构成的API
JAVA SE的一部分,由java.sql,javax.sql包组成。

jdbc驱动分类

    ①jdbc-odbc桥连接

   ②本地协议纯java驱动程序(也能实现网络开发)

   ③网络协议纯java驱动程序

   ④本地API

jdbc不足

   尽管jdbc在java语言层面实现了统一,但不同数据库仍旧有许多差异。为了更好地实现跨数据库操作,于是诞生了Hibernate项目,它是对jdbc的再封装,实现了对数据库操作更宽泛的统一和更好地可移植性。

一、使用jdbc-odbc桥接方式操作数据库

     1.配置数据源   开始-面板-管理工具-数据源-odbc数据源管理器-用户dsn-添加
     2.在程序中去连接数据源

      Connection ct=null;
      Statement sm=null;

      try {
//1.加载驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");


//2.得到连接[指定连接到那个数据源,用户和密码]
ct=DriverManager.getConnection("jdbc:odbc:学生信息","sa","123456");

//3.创建Statement或者PreparedStatement[区别]
//Statement用处是:主要用于发送sql语句,得到数据库
sm=ct.createStatement();


                       //4.执行(crud,创建数据库,备份数据库,删除数据...)

                       //exectueUpdate可以执行cud操作(添加,删除,修改)
int i=sm.executeUpdate("insert into StudentInfo values('1','1','1','1')");
if(i==1)
{
System.out.println("添加ok");
}
else
{
System.out.println("添加error");
}

                        

                       //ResultSet结果集,大家把它可以理解一个表行的结果集
ResultSet rs=sm.executeQuery("select* from StudentInfo");
//因为rs指向结果集的第一行的前一行
//循环取出
while(rs.next())
{
  String stuID=rs.getString(1);
  String name=rs.getString(2);
  String sex=rs.getString(3);
  String specialy=rs.getString(4);
  System.out.println(stuID+" "+name+" "+sex+""+specialy );
}catch (Exception e) {
// TODO: handle exception
}finally
{
//关闭资源
//关闭资源顺序是,谁后创建,则先关闭
try {
//为了程序健壮性
if(sm!=null){
sm.close();
}
if(ct!=null){
ct.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

 PreparedStatement 可以提高执行效率(因为它有预编译的功能)

 PreparedStatement 可以防止sql注入,但是要求用?赋值的方式才可以。

命令:netstat -an 

        功能是显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。

二、jdbc方式去操作数据库

         需要引入jar包,这里连接sqlserver2008引入sqljdbc4.jar包

 Connection cn=null;
             PreparedStatement ps=null;
             ResultSet rs=null;
             
             try {
           
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
cn=DriverManager.getConnection("jdbc:sqlserver://192.168.1.101:1433;databaseName=StuManaget","sa","123456");
ps=cn.prepareStatement("select *from StudentInfo");
rs=ps.executeQuery();
while(rs.next())
{
String id=rs.getString(1);
String id1=rs.getString(2);
String id2=rs.getString(3);
String id3=rs.getString(4);
System.out.println(id+" "+id1+" "+id2+" "+id3);
}
} catch (ClassNotFoundException e) {

e.printStackTrace();
}finally{
if(rs!=null)
{
rs.close();
}
if(ps!=null)
{
ps.close();
}
if(cn!=null)
{
cn.close();
}
}

0 0
原创粉丝点击