JDBC_ODBC,純java方式連接mysql 1.單詞部分 ①JDBCjava連接資料庫②driver manager驅動③connection連接④statement聲明 ⑤execute執行⑥query查詢⑦result set結果集⑧connectivity連通⑨access存取使用 en ...
JDBC_ODBC,純java方式連接mysql
1.單詞部分
①JDBCjava連接資料庫②driver manager驅動③connection連接④statement聲明
⑤execute執行⑥query查詢⑦result set結果集⑧connectivity連通⑨access存取使用
entity實體
二.預習部分
1.jdbc的主要作用是什麼
連接資料庫
2.jdbc兩種常用的驅動方式
橋連接和純java連接
3.什麼是持久化
將程式中數據在瞬時狀態轉換為永久狀態的操作
4.什麼是dao模式該模式的優點有哪些
在我的理解中dao不是一種開發模式 最多也就算一個
數據操作層吧 書上的是通過對業務層提供數據抽象層介面
有利於開發人員分層開發,降低代碼的耦合性,進行數據持久化操作
5.java的properties位於哪個包,派生自哪個類
java.until; hashtable類
三.練習部分
1.使用純java方式連接資料庫,併進行異常處理(mysql-connector-java-5.1.0-bin.jar)首先要導包
直接測試類就行了
package workOne;
import java.sql.Connection;
import java.sql.DriverManager;
public class test {
/**
* @param args
*/
//private static Logger logger=Logger.getLogger(test.class.getName());
public static void main(String[] args) {
// TODO Auto-generated method stub
Connection conn=null;
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e) {
// TODO: handle exception
//logger.error(e);
e.printStackTrace();
}
try {
conn=DriverManager.getConnection(
"jdbc:mysql://localhost:3306/epet","root","123"
);
System.out.println("建立連接成功!");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
finally{
try {
if(null!=conn){
conn.close();
System.out.println("關閉連接成功!");
}
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
}
}
2.實現寵物主人登錄的數據訪問
首先要創建dao包(basedao和masterdao類):
package 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;
public class BaseDao {
private String driver="com.mysql.jdbc.Driver";
private String url="jdbc:mysql://localhost:3306/epet";
private String user="root";
private String pass="123";
PreparedStatement pstmt=null;
ResultSet resultSet=null;
Connection conn=null;
//獲取連接
public Connection getConnection() {
if(conn==null){
try {
Class.forName(driver);
conn=DriverManager.getConnection(url,user,pass);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
return conn;
}
public void closeConn(Connection con,Statement stmt,ResultSet rs) {
if(rs!=null){
try {
rs.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
if(stmt!=null){
try {
stmt.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
public int DoUpdate(String sql,Object[]param) {
int num=0;
conn=getConnection();
try {
pstmt=conn.prepareStatement(sql);
if(param!=null){
for (int i = 0; i < param.length; i++) {
pstmt.setObject(i+1, param[i]);
}
}
num=pstmt.executeUpdate();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
finally{
closeConn(conn, pstmt, null);
}
return num;
}
public ResultSet DoQuery(String sql,Object [] para) {
conn=getConnection();
try {
pstmt=conn.prepareStatement(sql);
if(para!=null){
for (int i = 0; i < para.length; i++) {
pstmt.setObject(i+1,para[i]);
}
}
resultSet=pstmt.executeQuery();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return resultSet;
}
}
//master dao
package Dao;
import entity.master;
public interface masterDao {
boolean findMaster(master mas);
}
//再創建daoimpl包dao的實現類
package daoImpl;
import java.sql.ResultSet;
import java.sql.SQLException;
import entity.master;
import Dao.BaseDao;
import Dao.masterDao;
public class masterDaoImpl extends BaseDao implements masterDao{
public boolean findMaster(master mas) {
// TODO Auto-generated method stub
String sql="SELECT * FROM `master` WHERE `name`=? AND `password`=?";
Object[]para={mas.getName(),mas.getPass()};
ResultSet rs=DoQuery(sql, para);
boolean flag=false;
//.masterDaoImpl//master ma=new master();
try {
while (rs.next()) {
flag=true;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return flag;
}
}
//創建三個實體類主人類 寵物種類類 寵物類
//master
package entity;
public class master {
private int id;
private String name;
private int pass;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPass() {
return pass;
}
public void setPass(int pass) {
this.pass = pass;
}
}
//pet_type寵物種類
package entity;
public class pet_type {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
//寵物類pet
package entity;
public class pet {
private int id;
private int master_id;
private String name;
private int type_id;
private int health;
private int love;
private String adop_time;
private int status;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getMaster_id() {
return master_id;
}
public void setMaster_id(int master_id) {
this.master_id = master_id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getType_id() {
return type_id;
}
public void setType_id(int type_id) {
this.type_id = type_id;
}
public int getHealth() {
return health;
}
public void setHealth(int health) {
this.health = health;
}
public int getLove() {
return love;
}
public void setLove(int love) {
this.love = love;
}
public String getAdop_time() {
return adop_time;
}
public void setAdop_time(String adop_time) {
this.adop_time = adop_time;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
}
//創建test包main介面
package test;
import java.util.Scanner;
import daoImpl.masterDaoImpl;
import Dao.masterDao;
import entity.master;
public class test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
System.out.println("-------歡迎光臨寵物樂園-------");
System.out.println("請輸入登陸名:");
String loginid=input.next();
System.out.println("請輸入密碼:");
int loginpass=input.nextInt();
master mas=new master();
mas.setName(loginid);
mas.setPass(loginpass);
masterDao masterDao=new masterDaoImpl();
boolean res = masterDao.findMaster(mas);
if(res){
System.out.println("登陸成功!");
}
else{
System.out.println("登錄失敗!");
}
}
}
3.實現寵物主人登錄業務
在第二個練習已經做了第三個
總結:
1.由sun公司提供jdbc的介面規範 jdbc-api 資料庫廠商或第三方提供針對 不同資料庫的具體實現,這就是jdbc驅動
2.jdbc訪問資料庫的步驟首先載入驅動,與資料庫取得聯繫,再創建statement或preparedstatement對象,再發送sql語句,並取得返回結果,最後處理
3.preparedstatement介面繼承自statement介面。提高代碼的可讀姓和可維護性,sql語句的執行性能和安全性
4.dao全稱data access objects(數據存取對象)
歡迎提問,歡迎指錯,歡迎討論學習信息 有需要的私聊 發佈評論即可 都能回覆的
原文在博客園http://www.cnblogs.com/a782126844/有需要可以聯繫扣扣:2265682997