java sqlite使用小记


加载sqlite jdbc驱动:
 static{
  try {
   Class.forName("org.sqlite.JDBC");
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  }
 }

获取数据库连接:
private Connection conn = getConn();
 public Connection getConn(){
  if(conn==null){
   try {
    conn = DriverManager.getConnection("jdbc:sqlite:message.db");
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
  return conn;
 
 }

创建表:
/**
  * 创建message表
  *
  * @author cjianquan
  * 2015-8-4
  */
 public void createTableMsg(){
  try {
   Statement stat = conn.createStatement();
   StringBuilder createSql = new StringBuilder();
   createSql.append("create table message( msg_id text primary key not null,")
   .append("msg_type text ,")
   .append("msg_direction text ,")
   .append("msg_from text,")
   .append("msg_to text,")
   .append("msg_msg text,")
   .append("msg_url text,")
   .append("msg_sound text,")
   .append("msg_time text );");
   stat.executeUpdate(createSql.toString());
   stat.close();
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }


插入表数据:
/**
  *  判断是否存在表message
  * @return
  * @author cjianquan
  * 2015-8-4
  */
 public boolean isTableExists(){
  boolean flag = false;
  try {
   Statement stat = conn.createStatement();
   String sql = "select count(1) from message ";
   stat.executeQuery(sql);
   flag = true;
   stat.close();
  } catch (SQLException e) {
   flag = false;
  }
  return flag;
 }
 public void insertMessage(Message msg){
  boolean flag = isTableExists();
  if(flag){
   try {
    StringBuilder insertSql = new StringBuilder();
    insertSql.append("insert into message(msg_id,")
    .append("msg_type,msg_direction,msg_from,")
    .append("msg_to,msg_msg,msg_url,msg_sound,msg_time) ")
    .append("values (?,?,?,?,?,?,?,?,?);");
    PreparedStatement stat = conn.prepareStatement(insertSql.toString());
   
    stat.setString(1, msg.getId());
    stat.setString(2, msg.getType());
    stat.setString(3, msg.getDirection());
    stat.setString(4, msg.getFrom());
    stat.setString(5, msg.getTo());
    stat.setString(6, msg.getMsg());
    stat.setString(7, msg.getMsgUrl());
    stat.setString(8, msg.getSound());
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    if(msg.getTime()==null || "".equals(msg.getTime())){
     msg.setTime(sdf.format(new Date()));
    }
    stat.setString(9, msg.getTime());
   
    stat.execute();
    stat.close();
    //conn.commit();
    conn.close();
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   
  }else{
   createTableMsg();
   insertMessage(msg);
  }
 }

查询表数据:
 public List<Message> queryMessage(Page page){
  boolean flag = isTableExists();
  List<Message> rtnList = new ArrayList<Message>();
  if(flag){
   int offset = (page.getCurPage()-1)*page.getPageSize();
   
   String querySql = "select * from ( select * from message order by msg_time desc) limit "+page.getPageSize()+" offset "+offset+" ;";
   try {
    Statement statement = conn.createStatement();
    ResultSet rs = statement.executeQuery(querySql);
    while(rs.next()){
     Message msg = new Message();
     msg.setId(rs.getString("msg_id"));
     msg.setType(rs.getString("msg_type"));
     msg.setDirection(rs.getString("msg_direction"));
     msg.setFrom(rs.getString("msg_from"));
     msg.setTo(rs.getString("msg_to"));
     msg.setMsg(rs.getString("msg_msg"));
     msg.setMsgUrl(rs.getString("msg_url"));
     msg.setSound(rs.getString("msg_sound"));
     msg.setTime(rs.getString("msg_time"));
     rtnList.add(msg);
    }
   
    rs = null;
    rs = statement.executeQuery("select count(*) cnt from message");
    if(rs.next()){
     page.setTotal(Integer.parseInt(rs.getString("cnt")));
    }
   
    rs.close();
    statement.close();
    conn.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }
  }else{
   createTableMsg();
  }
  return rtnList;
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值