国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java jdbc連接和使用詳細介紹

2019-11-26 13:23:18
字體:
來源:轉載
供稿:網友

 java jdbc連接和使用

jdbc

導入驅動

//jar是已經打包好的class文件集,可以引用到其他工程中
//Build Path中add external jars導入

連接JDBC

1. 加載驅動

  Class.from("com.mysql.jdbc.Driver");

創建連接

//導包使用 java.sql.*;String jdbc="jdbc:mysql://localhost:3306/student?user=root&password=&characterEncoding=utf-8";//student是表名Connection conn = DriverManager.getConnection(jdbc);

2. 注意 數據庫打開之后一定要記得關。

 conn.close();

1. 執行SQL語句 (創建表,插入,刪除,更新)

使用Statemant

Statemant st = conn.createStatemant(); int row = st.executeUpdate(sql語句);//不能做查詢操作。

使用PrepareStatement

可以使用?占位符來代替你需要傳遞的參數

String sql = "insert into " + TABLENAME+ "(name,subject,score) values(?,?,?)";PrepareStatement pt = conn.prepareStatement(sql); //給每一位占位符設置值,下標從1開始 pt.setString(1,score.getName()); pt.setString(2.score.getSubject());pt.setDouble(3,score.getScore()); //使用無參的方法pt.executeUpdate();

1.查詢操作

static List<Score> queryScore(Connection pconn, Score pScore)      throws SQLException {    ArrayList<Score> mlist = new ArrayList<>();    String sql = "select * from " + TABLENAME + " where name = ?";    PreparedStatement ps = pconn.prepareStatement(sql);    ps.setString(1, pScore.getName());    ResultSet rs = ps.executeQuery();    while (rs.next()) {      // 這里可以通過rs獲取所有結果      String subject = rs.getString("subject");      int id = rs.getInt("id");      double score = rs.getDouble("score");      mlist.add(new Score(id, pScore.getName(), subject, score));    }    return mlist;  }

下面是一個小程序

//建立數據庫連接類public class DAO {  // 放問數據庫的鏈接地址  static String jdbc = "jdbc:mysql://localhost:3306/student?user=root&password=&characterEncoding=utf-8";  // 打開鏈接  public static Connection connection() {    // 使用JDBC的步驟    // 1. 加載JDBC驅動    try {      // 類的全名 包名+類名      Class.forName("com.mysql.jdbc.Driver");      // 2. 連接數據庫      Connection conn = DriverManager.getConnection(jdbc);      return conn;    } catch (Exception e) {      System.out.println("驅動加載失敗");      return null;    }  }}//分數類public class Score {  String name;  String id;  String subject;  double score;  public Score(String name, String subject, double score) {    super();    this.name = name;    this.subject = subject;    this.score = score;  }  @Override  public String toString() {    return "Score [name=" + name + ", id=" + id + ", subject=" + subject        + ", score=" + score + "]";  }  public Score(String name, String id, String subject, double score) {    super();    this.name = name;    this.id = id;    this.subject = subject;    this.score = score;  }  public String getName() {    return name;  }  public void setName(String name) {    this.name = name;  }  public String getId() {    return id;  }  public void setId(String id) {    this.id = id;  }  public String getSubject() {    return subject;  }  public void setSubject(String subject) {    this.subject = subject;  }  public double getScore() {    return score;  }  public void setScore(double score) {    this.score = score;  }}//實現類public class Test {  public static String TABLENAME = "score";  public static void main(String[] args) {    try {      Connection conn = DAO.connection();      if (conn != null) {        System.out.println("鏈接上了");        // createTable(conn);        // 插入一條記錄        // Score score = new Score("李四 ", "Android", 98);        // System.out.println(addScore2(conn, score));        // deleteScore(conn, score);        // updateScore(conn, score);        List<Score> list = queryScoreByName(conn, "王五"); //queryAllScore(conn);        for (Score score : list) {          System.out.println(score);        }        conn.close();      } else {        System.out.println("鏈接失敗 ");      }    } catch (SQLException e) {      e.printStackTrace();    }  }  // 創建一張表  public static boolean createTable(Connection conn) {    // 開始執行sql語句    String sql = "create table "        + TABLENAME        + "(id integer primary key auto_increment,name varchar(3) not null,subject varchar(20) not null,score double)";    // 要執行一條語句,需要一個執行的類 Statement    try {      Statement st = conn.createStatement();      int result = st.executeUpdate(sql);      System.out.println(result);      if (result != -1)        return true;    } catch (SQLException e) {      e.printStackTrace();    }    return false;  }  // 添加一條記錄  public static boolean addScore(Connection conn, Score score)      throws SQLException {    String sql = "insert into " + TABLENAME        + "(name,subject,score) values('" + score.getName() + "','"        + score.getSubject() + "'," + score.getScore() + ")";    System.out.println(sql);    Statement st = conn.createStatement();    int row = st.executeUpdate(sql);    if (row > 0)      return true;    return false;  }  // 添加一條記錄2  public static boolean addScore2(Connection conn, Score score)      throws SQLException {    // 占位符?來代替需要設置的參數    String sql = "insert into " + TABLENAME        + "(name,subject,score) values(?,?,?)";    PreparedStatement ps = conn.prepareStatement(sql);    // 必須給定?所代表的值    ps.setString(1, score.getName());    ps.setString(2, score.getSubject());    ps.setDouble(3, score.getScore());    // 調用無參的方法    int row = ps.executeUpdate();    if (row > 0)      return true;    return false;  }  public static boolean deleteScore(Connection conn, Score score)      throws SQLException {    String sql = "delete from " + TABLENAME + " where name=? and subject=?";    // 創建PrepareStatement    PreparedStatement ps = conn.prepareStatement(sql);    ps.setString(1, score.getName());    ps.setString(2, score.getSubject());    // ps.setDouble(3, score.getScore());    // 執行    int row = ps.executeUpdate();    System.out.println(row);    if (row > 0)      return true;    return false;  }  public static boolean updateScore(Connection conn, Score score)      throws SQLException {    // 修改 score人他的科目的成績    String sql = "update " + TABLENAME        + " set score=? where name=? and subject=?";    PreparedStatement ps = conn.prepareStatement(sql);    ps.setDouble(1, score.getScore());    ps.setString(2, score.getName());    ps.setString(3, score.getSubject());    int row = ps.executeUpdate();    System.out.println(row);    if (row > 0)      return true;    return false;  }  public static List<Score> queryAllScore(Connection conn)      throws SQLException {    String sql = "select * from " + TABLENAME;    // 開始查詢    Statement st = conn.createStatement();    ResultSet rs = st.executeQuery(sql);    List<Score> list = new ArrayList<Score>();    while (rs.next()) {      // 這里可以通過rs獲取所有結果      String id = rs.getString("id");      String name = rs.getString("name");      String subject = rs.getString("subject");      double score = rs.getDouble("score");      list.add(new Score(name, id, subject, score));    }    // 結束    return list;  }  public static List<Score> queryScoreByName(Connection conn, String name)      throws SQLException {    String sql = "select * from " + TABLENAME + " where name=?";    PreparedStatement pt = conn.prepareStatement(sql);    pt.setString(1, name);    ResultSet rs = pt.executeQuery();    List<Score> list = new ArrayList<>();    while (rs.next()) {      String subject = rs.getString("subject");      String id = rs.getString("id");      double score = rs.getDouble("score");      list.add(new Score(name, id, subject, score));    }    return list;  }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 顺平县| 濮阳市| 内丘县| 五大连池市| 陇西县| 垣曲县| 思茅市| 阿瓦提县| 安多县| 科技| 鹿泉市| 灌南县| 鹤壁市| 石门县| 阆中市| 临颍县| 平阳县| 龙泉市| 卢龙县| 车致| 盐源县| 南平市| 拉萨市| 庆云县| 宜兰县| 镇雄县| 通化县| 崇仁县| 剑川县| 垣曲县| 汽车| 镇平县| 张家港市| 运城市| 哈密市| 修武县| 郯城县| 威海市| 黄冈市| 宝鸡市| 独山县|