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

首頁 > 編程 > Java > 正文

JDBC 使用說明(流程、架構、編程)

2019-11-26 15:00:52
字體:
來源:轉載
供稿:網友

JDBC API 允許用戶訪問任何形式的表格數據,尤其是存儲在關系數據庫中的數據。

執行流程:

•連接數據源,如:數據庫。

•為數據庫傳遞查詢和更新指令。

•處理數據庫響應并返回的結果。

JDBC 架構
分為雙層架構和三層架構。

雙層

作用:此架構中,Java Applet 或應用直接訪問數據源。

條件:要求 Driver 能與訪問的數據庫交互。

機制:用戶命令傳給數據庫或其他數據源,隨之結果被返回。

部署:數據源可以在另一臺機器上,用戶通過網絡連接,稱為 C/S配置(可以是內聯網或互聯網)。

三層

側架構特殊之處在于,引入中間層服務。

流程:命令和結構都會經過該層。

吸引:可以增加企業數據的訪問控制,以及多種類型的更新;另外,也可簡化應用的部署,并在多數情況下有性能優勢。

歷史趨勢: 以往,因性能問題,中間層都用 C 或 C++ 編寫,隨著優化編譯器(將 Java 字節碼 轉為 高效的 特定機器碼)和技術的發展,如EJB,Java 開始用于中間層的開發這也讓 Java 的優勢突顯出現出來,使用 Java 作為服務器代碼語言,JDBC隨之被重視。

JDBC 編程步驟

加載驅動程序:

Class.forName(driverClass)//加載MySql驅動Class.forName("com.mysql.jdbc.Driver")//加載Oracle驅動Class.forName("oracle.jdbc.driver.OracleDriver")

獲得數據庫連接:

復制代碼 代碼如下:

DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/imooc", "root", "root");

創建Statement/PreparedStatement對象:

復制代碼 代碼如下:

conn.createStatement();
conn.prepareStatement(sql);

完整實例

import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;public class DbUtil { public static final String URL = "jdbc:mysql://localhost:3306/imooc"; public static final String USER = "liulx"; public static final String PASSWORD = "123456"; public static void main(String[] args) throws Exception {  //1.加載驅動程序  Class.forName("com.mysql.jdbc.Driver");  //2. 獲得數據庫連接  Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);  //3.操作數據庫,實現增刪改查  Statement stmt = conn.createStatement();  ResultSet rs = stmt.executeQuery("SELECT user_name, age FROM imooc_goddess");  //如果有數據,rs.next()返回true  while(rs.next()){   System.out.println(rs.getString("user_name")+" 年齡:"+rs.getInt("age"));  } }}

增刪改查

public class DbUtil { public static final String URL = "jdbc:mysql://localhost:3306/imooc"; public static final String USER = "liulx"; public static final String PASSWORD = "123456"; private static Connection conn = null; static{  try {   //1.加載驅動程序   Class.forName("com.mysql.jdbc.Driver");   //2. 獲得數據庫連接   conn = DriverManager.getConnection(URL, USER, PASSWORD);  } catch (ClassNotFoundException e) {   e.printStackTrace();  } catch (SQLException e) {   e.printStackTrace();  } } public static Connection getConnection(){  return conn; }}//模型package liulx.model;import java.util.Date;public class Goddess { private Integer id; private String user_name; private Integer sex; private Integer age; private Date birthday; //注意用的是java.util.Date private String email; private String mobile; private String create_user; private String update_user; private Date create_date; private Date update_date; private Integer isDel; //getter setter方法。。。}//---------dao層--------------package liulx.dao;import liulx.db.DbUtil;import liulx.model.Goddess;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List;public class GoddessDao { //增加 public void addGoddess(Goddess g) throws SQLException {  //獲取連接  Connection conn = DbUtil.getConnection();  //sql  String sql = "INSERT INTO imooc_goddess(user_name, sex, age, birthday, email, mobile,"+   "create_user, create_date, update_user, update_date, isdel)"    +"values("+"?,?,?,?,?,?,?,CURRENT_DATE(),?,CURRENT_DATE(),?)";  //預編譯  PreparedStatement ptmt = conn.prepareStatement(sql); //預編譯SQL,減少sql執行  //傳參  ptmt.setString(1, g.getUser_name());  ptmt.setInt(2, g.getSex());  ptmt.setInt(3, g.getAge());  ptmt.setDate(4, new Date(g.getBirthday().getTime()));  ptmt.setString(5, g.getEmail());  ptmt.setString(6, g.getMobile());  ptmt.setString(7, g.getCreate_user());  ptmt.setString(8, g.getUpdate_user());  ptmt.setInt(9, g.getIsDel());  //執行  ptmt.execute(); } public void updateGoddess(){  //獲取連接  Connection conn = DbUtil.getConnection();  //sql, 每行加空格  String sql = "UPDATE imooc_goddess" +    " set user_name=?, sex=?, age=?, birthday=?, email=?, mobile=?,"+    " update_user=?, update_date=CURRENT_DATE(), isdel=? "+    " where id=?";  //預編譯  PreparedStatement ptmt = conn.prepareStatement(sql); //預編譯SQL,減少sql執行  //傳參  ptmt.setString(1, g.getUser_name());  ptmt.setInt(2, g.getSex());  ptmt.setInt(3, g.getAge());  ptmt.setDate(4, new Date(g.getBirthday().getTime()));  ptmt.setString(5, g.getEmail());  ptmt.setString(6, g.getMobile());  ptmt.setString(7, g.getUpdate_user());  ptmt.setInt(8, g.getIsDel());  ptmt.setInt(9, g.getId());  //執行  ptmt.execute(); } public void delGoddess(){  //獲取連接  Connection conn = DbUtil.getConnection();  //sql, 每行加空格  String sql = "delete from imooc_goddess where id=?";  //預編譯SQL,減少sql執行  PreparedStatement ptmt = conn.prepareStatement(sql);  //傳參  ptmt.setInt(1, id);  //執行  ptmt.execute(); } public List<Goddess> query() throws SQLException {  Connection conn = DbUtil.getConnection();  Statement stmt = conn.createStatement();  ResultSet rs = stmt.executeQuery("SELECT user_name, age FROM imooc_goddess");  List<Goddess> gs = new ArrayList<Goddess>();  Goddess g = null;  while(rs.next()){   g = new Goddess();   g.setUser_name(rs.getString("user_name"));   g.setAge(rs.getInt("age"));   gs.add(g);  }  return gs; } public Goddess get(){  Goddess g = null;  //獲取連接  Connection conn = DbUtil.getConnection();  //sql, 每行加空格  String sql = "select * from imooc_goddess where id=?";  //預編譯SQL,減少sql執行  PreparedStatement ptmt = conn.prepareStatement(sql);  //傳參  ptmt.setInt(1, id);  //執行  ResultSet rs = ptmt.executeQuery();  while(rs.next()){   g = new Goddess();   g.setId(rs.getInt("id"));   g.setUser_name(rs.getString("user_name"));   g.setAge(rs.getInt("age"));   g.setSex(rs.getInt("sex"));   g.setBirthday(rs.getDate("birthday"));   g.setEmail(rs.getString("email"));   g.setMobile(rs.getString("mobile"));   g.setCreate_date(rs.getDate("create_date"));   g.setCreate_user(rs.getString("create_user"));   g.setUpdate_date(rs.getDate("update_date"));   g.setUpdate_user(rs.getString("update_user"));   g.setIsDel(rs.getInt("isdel"));  }  return g; }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平果县| 额尔古纳市| 丰城市| 德化县| 钟祥市| 武川县| 佳木斯市| 深水埗区| 鹤庆县| 孟津县| 凤翔县| 龙山县| 巴中市| 岐山县| 城口县| 贺州市| 奉贤区| 乌兰察布市| 义马市| 海晏县| 佛冈县| 开封市| 保亭| 清流县| 贵港市| 彭阳县| 涡阳县| 万山特区| 牙克石市| 望城县| 荆门市| 永丰县| 延长县| 吴忠市| 南雄市| 绥棱县| 固原市| 枞阳县| 永顺县| 肥城市| 项城市|