1. 程式人生 > >JDBC實現增刪改查、模糊查詢、分頁查詢、子查詢以及體現單例設計模式連線資料庫

JDBC實現增刪改查、模糊查詢、分頁查詢、子查詢以及體現單例設計模式連線資料庫

package com.csdn.dao;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
* 單例模式
*
* @author Administrator
*
*/
public class ConfigManager {
// 1.建立私有屬性
private static ConfigManager configManager;
private static Properties properties;

// 2.建立私有構造器
private ConfigManager() {
    // 3.獲取配置檔案
    properties = new Properties();
    InputStream is = ConfigManager.class.getClassLoader()
            .getResourceAsStream("database.properties");
    try {
        properties.load(is);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

// 4.公有的方法(雙重鎖)
public static synchronized ConfigManager getConfigManager() {
    if (configManager == null) {
        synchronized (ConfigManager.class) {
            configManager = new ConfigManager();
        }
    }
    return configManager;
}
//5.拿到鍵值
public String getValues(String key){
    return properties.getProperty(key);
}

}

package com.bdqn.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 基類
* @author Administrator
*
*/
public class BaseDao {
public Connection connection=null;
public PreparedStatement ps=null;
//獲取資源
public Connection getConnection(){
String driver = ConfigManager.getConfigManager().getValues(“driver”);
String url = ConfigManager.getConfigManager().getValues(“url”);
String user = ConfigManager.getConfigManager().getValues(“user”);
String pwd = ConfigManager.getConfigManager().getValues(“pwd”);
try {
Class.forName(driver);
connection = DriverManager.getConnection(url, user, pwd);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}

//關閉資源
public void close(Connection connection,Statement st,ResultSet rs){
    try {
        if (rs != null) {
            rs.close();
        }
        if (st != null) {
            st.close();
        }
        if (connection !=null) {
            connection.close();
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

//增刪改
public int mySql(String sql,Object[] objs){
    int num=0;
    try {
        connection = getConnection();
        ps = connection.prepareStatement(sql);
        if (objs !=null && objs.length>0) {
            for (int i = 0; i < objs.length; i++) {
                ps.setObject((i+1), objs[i]);
            }
        }
        num = ps.executeUpdate();
    } catch (SQLException e) {
        e.printStackTrace();
    }finally{
        this.close(connection, ps, null);
    }
    return num;
}

//查詢
public ResultSet getResultSet(String sql,Object[] objs){
    ResultSet rs = null;
    try {
        connection = getConnection();
        ps = connection.prepareStatement(sql);
        if (objs != null && objs.length>0) {
            for (int i = 0; i < objs.length; i++) {
                ps.setObject((i+1), objs[i]);
            }
        }
        rs = ps.executeQuery();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return rs;
}

}

package com.bdqn.util;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.bdqn.dao.BaseDao;
import com.bdqn.entity.Grade;
import com.bdqn.entity.Student;
import com.bdqn.entity.TableImlp;

public class Table extends BaseDao implements TableImlp {

@Override
public int insert(Student stu) {
    String sql="insert into student values(?,?,?,?,?)";
    Object[] objs={stu.getSid(),stu.getSname(),stu.getSage(),stu.getShobby(),stu.getGid()};
    int num = this.mySql(sql, objs);
    return num;
}

@Override
public int update(Student stu) {
    String sql="update student set sname=? where sid=?";
    Object[] objs={stu.getSname(),stu.getSid()};
    int num = this.mySql(sql, objs);
    return num;
}

@Override
public int delete(Student stu) {
    String sql="delete from student where sid=?";
    Object[] objs={stu.getSid()};
    int num = this.mySql(sql, objs);
    return num;
}

@Override
public List<Student> select() {
    String sql="select * from student";
    ResultSet rs = this.getResultSet(sql, null);
    List<Student> list=null;
    try {
        list = new ArrayList<Student>();
        while(rs.next()){
            int sid = rs.getInt("sid");
            String sname = rs.getString("sname");
            int sage = rs.getInt("sage");
            String shobby = rs.getString("shobby");
            int gid = rs.getInt("gid");
            Student stu=new Student(sid, sname, sage, shobby, gid);
            list.add(stu);
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return list;
}

@Override
public List<Student> select(Student stu) {
    String sql="select * from student where sid=?";
    Object[] objs={stu.getSid()};
    ResultSet rs = this.getResultSet(sql, objs);
    List<Student> list=null;
    try {
        list=new ArrayList<Student>();
        while(rs.next()){
            int sid = rs.getInt("sid");
            String sname = rs.getString("sname");
            int sage = rs.getInt("sage");
            String shobby = rs.getString("shobby");
            int gid = rs.getInt("gid");
            Student student=new Student(sid, sname, sage, shobby, gid);
            list.add(student);
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }finally{
        this.close(this.connection, this.ps, rs);
    }
    return list;
}

@Override
public int insert(Grade grade) {
    String sql="insert into grade values(?,?)";
    Object[] objs={grade.getGid(),grade.getGname()};
    int num = this.mySql(sql, objs);
    return num;
}

@Override
public int update(Grade grade) {
    String sql="update grade set gname=? where gid=?";
    Object[] objs={grade.getGname(),grade.getGid()};
    int num = this.mySql(sql, objs);
    return num;
}

@Override
public int delete(Grade grade) {
    String sql="delete from grade where gid=?";
    Object[] objs={grade.getGid()};
    int num = this.mySql(sql, objs);
    return num;
}

@Override
public List<Grade> selectGrade() {
    String sql="select * from grade";
    ResultSet rs = this.getResultSet(sql, null);
    List<Grade> list=null;
    try {
        list=new ArrayList<Grade>();
        while(rs.next()){
            int gid = rs.getInt("gid");
            String gname = rs.getString("gname");
            Grade grade=new Grade(gid, gname);
            list.add(grade);
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }finally{
        this.close(this.connection, this.ps, rs);
    }
    return list;
}

@Override
public List<Grade> select(Grade grade) {
    String sql="select * from grade where gid=?";
    Object[] objs={grade.getGid()};
    ResultSet rs = this.getResultSet(sql, objs);
    List<Grade> list=null;
    try {
        list=new ArrayList<Grade>();
        while(rs.next()){
            int gid = rs.getInt("gid");
            String gname = rs.getString("gname");
            Grade grad=new Grade(gid, gname);
            list.add(grad);
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }finally{
        this.close(this.connection, this.ps, rs);
    }
    return list;
}

@Override
//分頁查詢
public List<Student> find(int index,int page) {
    String sql="select * from student limit ?,?";
    Object[] objs={index,page};
    List<Student> list = new ArrayList<Student>();
    ResultSet rs = null;
    try {
        rs = this.getResultSet(sql, objs);
        while(rs.next()){
            int sid = rs.getInt("sid");
            String sname = rs.getString("sname");
            int sage = rs.getInt("sage");
            String shobby = rs.getString("shobby");
            int gid = rs.getInt("gid");
            Student student = new Student(sid, sname, sage, shobby, gid);
            list.add(student);
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }finally{
        this.close(this.connection, this.ps, rs);
    }
    return list;
}
//模糊查詢
public List<Student> likeSelect(Student stu){
    String sql="select * from student where sname like  \"%\" ? \"%\" ";
    Object[] objs={stu.getSname()};
    List<Student> list=new ArrayList<Student>();
    ResultSet rs = null;
    try {
        rs = this.getResultSet(sql, objs);
        while(rs.next()){
            int sid = rs.getInt("sid");
            String sname = rs.getString("sname");
            int sage = rs.getInt("sage");
            String shobby = rs.getString("shobby");
            int gid = rs.getInt("gid");
            Student student = new Student(sid, sname, sage, shobby, gid);
            list.add(student);
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }finally{
        this.close(connection, ps, rs);
    }
    return list;
}

//根據主表查詢子表
public List<Student> getSql(Grade grade){
    String sql="select * from student where gid in(select gid from grade where gid=?)";
    Object[] objs={grade.getGid()};
    ResultSet rs = this.getResultSet(sql, objs);
    List<Student> list=new ArrayList<Student>();
    try {
        while(rs.next()){
            Student stu=new Student(rs.getInt("sid"),rs.getString("sname"),rs.getInt("sage"),rs.getString("shobby"),rs.getInt("gid"));
            list.add(stu);
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }finally{
        this.close(connection, ps, rs);
    }
    return list;
}

}

package com.bdqn.entity;

import java.util.List;

/**
* 介面
* @author Administrator
*
*/
public interface TableImlp {

/**
 * student表
 * @param stu
 * @return
 */
//增加資料
public int insert(Student stu);
//修改資料
public int update(Student stu);
//刪改資料
public int delete(Student stu);
//查詢資料
public List<Student> select();
//條件查詢
public List<Student> select(Student stu);

/**
 * grade表
 */
public int insert(Grade grade);
//修改資料
public int update(Grade grade);
//刪改資料
public int delete(Grade grade);
//查詢資料
public List<Grade> selectGrade();
//條件查詢
public List<Grade> select(Grade grade);

//分頁查詢
public List<Student> find(int index,int page);
//模糊查詢
public List<Student> likeSelect(Student stu);

}

package com.bdqn.entity;

public class Grade {
private int gid;
private String gname;
public int getGid() {
return gid;
}
public void setGid(int gid) {
this.gid = gid;
}
public String getGname() {
return gname;
}
public void setGname(String gname) {
this.gname = gname;
}
public Grade(int gid, String gname) {
this.gid = gid;
this.gname = gname;
}
public Grade() {
}
@Override
public String toString() {
return “Grade [gid=” + gid + “, gname=” + gname + “]”;
}

}

package com.bdqn.entity;
/**
* 實體類
* @author Administrator
*
*/
public class Student {
private int sid;
private String sname;
private int sage;
private String shobby;
private int gid;
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public int getSage() {
return sage;
}
public void setSage(int sage) {
this.sage = sage;
}
public String getShobby() {
return shobby;
}
public void setShobby(String shobby) {
this.shobby = shobby;
}
public int getGid() {
return gid;
}
public void setGid(int gid) {
this.gid = gid;
}
public Student(int sid, String sname, int sage, String shobby, int gid) {
this.sid = sid;
this.sname = sname;
this.sage = sage;
this.shobby = shobby;
this.gid = gid;
}
public Student() {
}
@Override
public String toString() {
return “Student [sid=” + sid + “, sname=” + sname + “, sage=” + sage
+ “, shobby=” + shobby + “, gid=” + gid + “]”;
}

}

package com.bdqn.test;

import java.util.List;

import com.bdqn.entity.Grade;
import com.bdqn.entity.Student;
import com.bdqn.util.Table;

public class Test {
public static void main(String[] args) {
Table table=new Table();
//grade表新增資料測試

/*  Grade grade=new Grade(1,"NO_1");
    table.insert(grade);
    Grade grade1=new Grade(2,"NO_2");
    table.insert(grade1);
    Grade grade2=new Grade(3,"NO_3");
    table.insert(grade2);*/

    //student表新增資料測試
    /*Student stu=new Student(1, "Tom_A", 25, "baseketBall", 1);
    table.insert(stu);
    Student stu1=new Student(2, "Tom_B", 20, "Ball", 2);
    table.insert(stu1);
    Student stu2=new Student(3, "Tom_C", 29, "footBall", 3);
    table.insert(stu2);*/

    //修改student表
    /*Student stu=new Student();
    stu.setSid(2);
    stu.setSname("Tom_m");
    table.update(stu);*/

    //修改grade表
    /*Grade grade=new Grade();
    grade.setGid(2);
    grade.setGname("NO_m");
    table.update(grade);*/

    //刪除student表中資料
    /*Student stu=new Student();
    stu.setSid(2);
    table.delete(stu);*/

    //刪除grade表中的資料
/*  Grade grade=new Grade();
    grade.setGid(2);
    table.delete(grade);*/

    //查詢student表中資料(全查)
    /*List<Student> select = table.select();
    for (Student student : select) {
        System.out.println(student.toString());
    }*/
    //條件查詢
    /*Student stu=new Student();
    stu.setSid(3);
    List<Student> select = table.select(stu);
    for (Student student : select) {
        System.out.println(student.toString());
    }*/

    //grade表查詢(全查)
    /*List<Grade> selectGrade = table.selectGrade();
    for (Grade grade : selectGrade) {
        System.out.println(grade.toString());
    }*/
    //條件查詢
    //Grade grade=new Grade();
    /*grade.setGid(3);
    List<Grade> select = table.select(grade);
    for (Grade grade2 : select) {
        System.out.println(grade2.toString());
    }*/

    //分頁查詢
    /*List<Student> find = table.find(0, 2);
    for (Student student : find) {
        System.out.println(student.toString());
    }*/

    //模糊查詢
    /*Student stu=new Student();
    stu.setSname("A");
    List<Student> likeSelect = table.likeSelect(stu);
    for (Student student : likeSelect) {
        System.out.println(student.toString());
    }*/

    //根據主表查詢字表
    Grade grade=new Grade();
    grade.setGid(3);
    List<Student> list = table.getSql(grade);
    for (Student student : list) {
        System.out.println(student);
    }
}

}

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/user
user=root
pwd=root

相關推薦

JDBC實現刪改模糊查詢查詢查詢以及體現設計模式連線資料庫

package com.csdn.dao; import java.io.IOException; import java.io.InputStream; import java.util.Properties; /** * 單例模式 *

JDBC實現刪改

對資料庫進行增刪改操作的步驟: 1.通過Connection物件建立Statement,Statement的功能是向資料庫傳送SQL語句。 2.通過呼叫int executeUpdate(String sql),它可以傳送DML和DDL 例項: Class.forName("com.

Mybatis實現刪改模糊查詢多條件查詢

專案總體結構如下: 資料庫準備:在 資料庫dbmybatis中建立一張category的表,我錄入了幾條記錄方便測試,表字段結構如下圖: 1.建立好了表後使用idea新建一個Maven專案,pom.xml加入如下依賴: <dependencies> &

JSP + Servlet + JDBC + Mysql 實現刪改 課程管理系統

1.專案目錄結構 2.專案環境 Eclipse IDE  MYSQL  jdk tomcat jar包 3.資料庫相關配置 先建立一個course的資料庫名,然後在建立一個course的表 要注意將id欄位 自動遞增  4.原始碼    

微服務架構實戰篇(三):Spring boot2.0 + Mybatis + PageHelper實現刪改查詢功能

簡介 該專案主要利用Spring boot2.0 +Mybatis + PageHelper實現增刪改查和分頁查詢功能,快速搭建一套和資料庫互動的專案。 小工具一枚,歡迎使用和Star支援,如使用過程中碰到問題,可以提出Issue,我會盡力完善該Starter 版本基礎

Java 利用 JDBC 連線 Sqlsever2012 實現 刪改

所需驅動檔案下載 http://download.csdn.net/detail/u012320991/9378730 資料表如下: 執行結果如下: 解決過程(預設SqlSever  已安裝並配置好): 下載  JDBC 4.0 For SqlSever --->

springmvc配置myBatis,並實現刪改功能

springmvc配置myBatis      myBatis是一個數據庫訪問的外掛,通過jdbc實現。      實現思路:      1.maven引入myBatis <!-- mybatis核心包 --> <dependenc

Spring+SpringMVC+Mybatis實現刪改--(六)SSM刪除批量刪除員工的實現

Spring+SpringMVC+Mybatis實現增刪改查--(六)SSM刪除、批量刪除員工的實現單個刪除: 批量刪除  刪除邏輯1.單個刪除URI:/emp/{id} DELETE(1)給刪除按鈕繫結上員工的ID號(2)單個刪除按鈕的點選事件(3)員工刪除的方法2.全選複

複習:JDBC工具類並實現刪改

JDBC工具類 package bull01.JDBCbasis; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOExceptio

java基於jdbc操作mysql實現刪改日誌完整程式碼 不足之處歡迎留言指導

1、建立Java Project專案 2、匯入Jar包 3、建立資料庫 //根據實體類建立資料庫 4、建立實體類 (Bm.java) public class Bm { private int id; private String rq;

利用JDBC連線MySQL資料庫實現刪改的程式碼示例

一、實現增刪改: 比較簡單: import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement;

JDBC之java使用oracle中scott表實現刪改.1

Java與oracle資料庫連線—–JDBC Dao工具的建立 **寫部落格的目的及好處 1,為了把完成的知識點整理出來, 2,等同督促自己做學習總結 3,方便自己及同行者的閱覽 4,如有有心者,可以分享更精的知識

Java通過JDBC連線資料庫的三種方式!!!並對資料庫實現刪改

前言 java連線資料庫完整流程為: 1,獲得驅動(driver),資料庫連線(url),使用者名稱(username),密碼(password)基本資訊的三種方式。 2,通過獲得的資訊完成JDBC實現連線資料庫。 注:連線前請匯入jar包,例:連線my

實現刪改(SpringBootMyBatis-Plus與Thymeleaf)

show me the code and talk to me,做的出來更要說的明白 我是布林bl,你的支援是我分享的動力! 1 引入 使用 MyBatis-Plus 以及 thymeleaf 實現增刪查改。效果圖在最後。 2 Mybatis-Plus MyBatis-Plus(簡稱 MP)是一個 MyB

修改Haproxy文件配置,實現刪改

文件配置 str data bin 都是 [1] local def onf Haproxy 源文件 global log 127.0.0.1 local2 daemon maxconn 256 log 12

[python] 用pickle模塊實現刪改”的簡易功能

python pyckle模塊 #!/usr/bin/env python2 #coding:utf-8 """ pickle的作用: 1:pickle.dump(dict,file)把字典轉為二進制存入文件. 2:pickle.load(file)把文件二進制內容轉為字典. """ im

jdbc刪改

create chang query set ext pack sim stat parse package com.oracle.mysql; import java.sql.Connection; import java.sql.Date; import java.

簡單的JDBC刪改操作,附源碼

mysql 小白 http .exe let ext 打印 編譯 sdn 1 package com.xyyz.jdbc; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager;

簡單的JDBC刪改操作->抽取了基類,附源碼

exceptio tac catch main trace 工具 nload null user 1.主程序 1 package com.xyyz.jdbc; 2 3 import java.sql.Connection; 4 import java.sql.D

.NET EF 框架-實現刪改

ont int string dbcontext 增刪 base set cts cti 聲明一個EF上下文對象 Model dbContext=new Model(); 添加操作(向表中插入一條數據) //聲明一個表的實體 Contact contact =new Con