zoukankan      html  css  js  c++  java
  • accp8.0转换教材第6章连接MySQL理解与练习

    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

  • 相关阅读:
    分享一个本人打造的公众号吸粉、推广方案。
    iOS开发简记(8):数据持久化
    iOS开发简记(7):网络请求模块
    iOS开发简记(6):storyboard的使用
    iOS开发简记(5):设备唯一标识与全局变量
    iOS开发简记(4):录音AVAudioRecorder
    iOS开发简记(3):tips提示
    iOS开发简记(2):自定义tabbar
    spring+mybatis+springMVC框架配置多数据源
    Docker常用操作
  • 原文地址:https://www.cnblogs.com/a782126844/p/7097560.html
Copyright © 2011-2022 走看看