zoukankan      html  css  js  c++  java
  • 数据库查询

    package net.jiaxiang.dao;

    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;
    import net.jiaxiang.entity.Book;


    public class ChaXunShuJu {
    //【向表中插入数据==添加数据】
    public int addList(Book b) throws ClassNotFoundException, SQLException{
    LianJieKu ljk=new LianJieKu();//new实例化连接类
    Connection cn=ljk.openonn();//调用链接库方法

    String sql = "insert into tb_books(name,price,bookCount,author) values(?,?,?,?)";//添加图书信息的SQL语句
    PreparedStatement ps=cn.prepareStatement(sql);// 获取PreparedStatement 占位符

    ps.setString(1, b.getName());// 对SQL语句中的第1个参数赋值
    ps.setDouble(2, b.getPrice());// 对SQL语句中的第2个参数赋值
    ps.setInt(3,b.getBookCount());// 对SQL语句中的第3个参数赋值
    ps.setString(4, b.getAuthor());// 对SQL语句中的第4个参数赋值

    int row=ps.executeUpdate();// 执行更新操作,返回所影响的行数

    return row;// 判断返回更新的是否更新成功
    }


    //【查询表中的所有数据】
    public List<Book>listbook() throws ClassNotFoundException, SQLException{
    List<Book> list=new ArrayList<Book>();//创建ArrayList列表
    LianJieKu ljk=new LianJieKu();//new实例化连接类

    //【方法一】
    String sql="select * from tb_books";
    /* Connection cn=ljk.openonn();//直接调用openonn方法返回数据库的链接。
    PreparedStatement ps=cn.prepareStatement(sql);
    ResultSet rs=ps.executeQuery();//结果集对象rest
    */

    //【方法二】
    Connection cn=ljk.openonn();//调用链接库方法
    Statement st=cn.createStatement();//创建一个不带参数的方法 为一条Sql语句生成执行计划
    ResultSet rs=st.executeQuery("select * from tb_books");//利用st执行语句,结果防到结果集.

    while(rs.next()){//循环是每一条语句
    Book bk=new Book();//实例化book对象
    bk.setId(rs.getInt("id"));//对id属性赋值
    bk.setName(rs.getString("name"));//对name属性赋值
    bk.setPrice(rs.getDouble("price"));//对price属性赋值
    bk.setBookCount(rs.getInt("bookCount"));//对bookCount属性赋值
    bk.setAuthor(rs.getString("author"));//对author属性赋值
    list.add(bk); //将图书信息添加到集合中

    }
    rs.close(); //关闭ResultSet
    st.close(); //关闭Statement
    cn.close(); //关闭Connection

    return list; //返回列表参数

    }
    //【查询含不确定字段的数值】
    public List<Book> ListbookString(String text) throws ClassNotFoundException, SQLException { //查询书籍名称含有a串的书籍 这里面可以是多行


    List<Book> list=new ArrayList<Book>();//创建ArrayList列表
    LianJieKu ljk=new LianJieKu();//new实例化连接类
    Connection cn=ljk.openonn();//调用连接库方法
    Statement st=cn.createStatement();//创建一个不带参数的方法 为一条Sql语句生成执行计划
    //【这一句【可能是】在MYSQL】中使用的模糊查询 ResultSet rs=st.executeQuery("select * from tb_books where name like '%'+" + textname + "+'%'"); //利用st执行语句,结果防到结果集.
    // 【这表示着 是在SQL server】中的语句代码
    // select * from tb_books where name like '%ps%'
    // select * from tb_books where name like '%'+'q'+'%'

    //【这一句【可能是】在SQL server】中使用的模糊查询 这里面不能进行【+号】进行连接 '%"+textname+"%'符号要严格
    ResultSet rs=st.executeQuery("select * from tb_books where name like '%"+text+"%'");//利用st执行语句,结果防到结果集.
    while(rs.next()){
    Book bk=new Book();
    bk.setId(rs.getInt("id"));
    bk.setName(rs.getString("name"));
    bk.setPrice(rs.getDouble("price"));
    bk.setBookCount(rs.getInt("bookCount"));
    bk.setAuthor(rs.getString("author"));
    list.add(bk);
    }
    rs.close();
    st.close();
    cn.close();
    return list;

    }
    //【查询ID号的数据】
    public Book ListbookInt(int a) throws ClassNotFoundException, SQLException {//查询(输入的ID)编号书籍信息 这里面只能是一行
    Book bk=new Book();
    LianJieKu ljk=new LianJieKu();//new实例化连接类
    Connection cn=ljk.openonn();//调用链接库方法
    Statement st=cn.createStatement();//创建一个不带参数的方法 为一条Sql语句生成执行计划
    ResultSet rs=st.executeQuery("select * from tb_books where id=" + a); //利用st执行语句,结果防到结果集.

    if(rs.next()){
    bk.setId(rs.getInt("id"));
    bk.setName(rs.getString("name"));
    bk.setPrice(rs.getDouble("price"));
    bk.setBookCount(rs.getInt("bookCount"));
    bk.setAuthor(rs.getString("author"));

    }
    rs.close();
    st.close();
    cn.close();
    return bk;

    }
    //【修改数据】
    public int XiuGaiList(Book b) throws ClassNotFoundException, SQLException{
    LianJieKu ljk=new LianJieKu();//new实例化连接类
    Connection cn=ljk.openonn();//调用链接库方法

    String sql="update tb_books set name=?,price=?,bookCount=?,author=? where id=?";//更新数据条件是ID号
    PreparedStatement ps=cn.prepareStatement(sql);// 获取PreparedStatement 占位符

    ps.setString(1, b.getName());// 对SQL语句中的第1个参数赋值
    ps.setDouble(2, b.getPrice());// 对SQL语句中的第2个参数赋值
    ps.setInt(3,b.getBookCount());// 对SQL语句中的第3个参数赋值
    ps.setString(4, b.getAuthor());// 对SQL语句中的第4个参数赋值
    ps.setInt(5, b.getId());
    int row=ps.executeUpdate();// 执行更新操作,返回所影响的行数 注意这里面是不能进行返回参数
    ps.close(); //关闭PreparedStatement 占位符
    cn.close(); //关闭Connection
    return row;// 判断返回更新的是否更新成功 这里面进行返回的是无效的

    }
    //【删除数据方法三】 使用的是占位符,采用带参数的方法
    public int ShanChuList(int id) throws ClassNotFoundException, SQLException{
    LianJieKu ljk=new LianJieKu();//new实例化连接类
    Connection cn=ljk.openonn();//调用链接库方法
    String sql="delete from tb_books where id=?";//删除一行数据
    PreparedStatement ps=cn.prepareStatement(sql);// 获取PreparedStatement 占位符

    ps.setInt(1,id);// 对SQL语句中的第3个参数赋值

    int row=ps.executeUpdate();// 执行更新操作,返回所影响的行数
    ps.close(); //关闭PreparedStatement 占位符
    cn.close(); //关闭Connection
    return row;// 判断返回更新的是否更新成功
    }
    //【删除方法一】:这是直接采用 实体类进行传递参数 进行删除
    public int DeleteList(Book book) throws ClassNotFoundException, SQLException{
    LianJieKu ljk=new LianJieKu();//new实例化连接类
    Connection cn=ljk.openonn();//调用链接库方法
    String sql="delete from t_bl_canton_code where CTN_CODE="+book.getId();//删除传递过来的那一行数据
    Statement st=cn.createStatement();//创建的是一个不带参数的的 方法
    int row=st.executeUpdate(sql);// 执行更新操作,返回所影响的行数
    st.close(); //关闭PreparedStatement 占位符
    cn.close(); //关闭Connection
    return row;// 判断返回更新的是否更新成功

    }
    //【删除方法二】采用传递过来的参数ID进行 删除
    public int deleteList(long listID) throws ClassNotFoundException, SQLException{
    LianJieKu ljk=new LianJieKu();//new实例化连接类
    Connection cn=ljk.openonn();//调用链接库方法
    String sql="delete from t_bl_canton_code where CTN_CODE="+listID;//删除传递过来的那一行数据
    Statement st=cn.createStatement();//创建的是一个不带参数的的 方法
    int row=st.executeUpdate(sql);// 执行更新操作,返回所影响的行数
    st.close(); //关闭PreparedStatement 占位符
    cn.close(); //关闭Connection
    return row;// 判断返回更新的是否更新成功

    }
    }

  • 相关阅读:
    ArcGIS API for JavaScript 学习笔记 (一) --第一个WebGIS应用程序
    C#学习之数据类型-(一:简介)
    用vs发布网站,IIS部署浏览网站的具体步骤。
    载入内存,让程序运转起来。
    placeholder的使用
    京东商城注册页使用的正则表达式(转)
    网站列表页竖直栏目图片灰色背景导航菜单代码
    CSS定义鼠标悬浮,图片出现边框
    生成虚线代码(小白自留)
    划过或点击下面带框的文本
  • 原文地址:https://www.cnblogs.com/caidupingblogs/p/6091457.html
Copyright © 2011-2022 走看看