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