JAVA连接数据库后,对数据库进行增删改查

 

1.Statement

增删改:

方法:execute(String SQL)

    String url="jdbc:Access:///E://A//shop.mdb";

    Connection con=null; //数据库连接对象

    Statement st = null;//数据库操作对象

    //SQL语句

    //String sql="insert into goods values('7','鬼王','男','鬼王宗','伏龙鼎')";

    String sql="update goods set 门派='青云门' where 姓名='张小凡'";

    Class.forName("com.hxtt.sql.access.AccessDriver");

    con = DriverManager.getConnection(url,"","");

    System.out.println("连接成功");

    //为数据库创建一个操作对象          

    st=con.createStatement();//作用为,将数据库连接对象与数据库操作对象连接           

      st.execute(sql);  //此方法用于执行insert  update delete语句

    System.out.println("插入操作成功");

查找:

方法:executeQuery(String  SQL)返回ResultSet对象

    String url="jdbc:Access:///E://A//shop.mdb";

    Connection con=null;

    Statement st = null;//执行查询的对象

    String sql="select * from goods";

    Class.forName("com.hxtt.sql.access.AccessDriver");

    con = DriverManager.getConnection(url,"","");

    System.out.println("连接成功");

    st = con.createStatement();//创建查询对象

    ResultSet rs;

    rs = st.executeQuery(sql);//执行查询语句,并返回一个结果

     //查询结果是以指针的形式出现的,指针指向第一条记录,通过移动指针来查看结果

    while(rs.next()){//通过循环依次读取查询结果

    //与数据库访问有关的索引都是从1开始

             System.out.println(rs.getString(2)+":"+rs.getString(3)+":"+rs.getString(4));

                }

 

2. 预编译方式PreparedStatement 

 

预编译(PreparedStatement)与Statement的不同点

 

1.预编译在与数据库连接对象建立连接时,就将SQL语句传入对象中,再次调用时就不需要传入SQL

 

2.预编译可以在SQL中传入参数

 

查询:executeQuery()

 

Connection con=null;

 

String url="jdbc:Access:///E://A//shop.mdb";

 

PreparedStatement ps = null;

 

//?就是设置的未知参数,方便传入参数

 

String sql = "select name,性别,门派,武器  from goods where name=?" ;

 

ResultSet rs = null;         

 

Class.forName("com.hxtt.sql.access.AccessDriver");

 

con = DriverManager.getConnection(url);

 

System.out.println("连接成功!");

 

ps = con.prepareStatement(sql);

 

//通过setString来传入参数“1”表示未知数处于SQL语句中的位置

 

 ps.setString(1, "鬼王");

 

rs=ps.executeQuery();   

 

while(rs.next()){ System.out.println(rs.getString(1)+":"+rs.getString(2)+":"+rs.getString(3)+":"+rs.getString(4));

 

           }

 

增删改:executeUpdate()

 

Connection con=null;

 

       String url="jdbc:Access:///E://A//shop.mdb";

 

       PreparedStatement ps = null;

 

       String sql="insert into goods values(?,?,?,?,?)";

 

        Class.forName("com.hxtt.sql.access.AccessDriver");

 

        con = DriverManager.getConnection(url);

 

        System.out.println("连接成功!");

 

        //将prepareStatement与数据库连接对象建立连接

 

           ps = con.prepareStatement(sql);

 

           ps.setInt(1, 9);

 

           ps.setString(2, "金铃儿");

 

           ps.setString(3, "女");

 

           ps.setString(4, "合欢派");

 

           ps.setString(5, "不详");

 

           //用于执行insert delete update语句

 

           //返回一个int的值,代表通过此方法修改的数据库的行数

 

           int i = ps.executeUpdate();

 

           if(i>0)System.out.println("操作成功");

 

           else System.out.println("操作失败");

 

3. 存储方式连接CallableStatement

 

区别:只有调用的接口方式不同,其他操作均相同

无参

Connection con=null;

       //调用存储函数的接口

       CallableStatement cs = null;

       ResultSet rs;

       String url="jdbc:Access:///E://A//shop.mdb";

       try {

           Class.forName("com.hxtt.sql.access.AccessDriver");

           con = DriverManager.getConnection(url);

           System.out.println("Connected!");

           //输入要执行的存储过程的名称

           cs =  con.prepareCall("{call proPlayFilm}");

           rs = cs.executeQuery();

           while(rs.next()){

           System.out.println(rs.getString(1)+":"+rs.getString(2)+":"+rs.getString(3)+":"+rs.getString(4));

           }

 带参

?就是存储过程的参数

 

posted @ 2016-08-30 20:11  兔子只吃胡萝卜  阅读(489)  评论(0编辑  收藏  举报