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

accp8.0转换教材第6章连接MySQL理解与练习的更多相关文章

  1. accp8.0转换教材第2章初识MySQL

    首先安装MySQL: 一.单词部分: ①networking网络②option选择③port端口④firewall防火墙⑤engine引擎 ⑥standard标准⑦character字符⑧collat ...

  2. accp8.0转换教材第10章Ajax和jQuery理解与练习

    C/S (Client/Server)结构,即大家熟知的客户机和服务器结构. B/S(Browser/Server)结构即浏览器和服务器结构. 认识ajax .XMLHttpRequest.使用jqu ...

  3. accp8.0转换教材第4章MySQL高级查询(二)理解与练习

    知识点:EXISTS子查询.NOT EXISTS子查询.分页查询.UNION联合查询 一.单词部分 ①exist存在②temp临时的③district区域 ④content内容⑤temporary暂时 ...

  4. accp8.0转换教材第11章JAjax加护扩展理解与练习

    ①杂记:前面有原生态JavaScript实现ajax这里又多了更简单的方法实现ajax ②$.get()方法的常用参数 参数 类型 说明 url String 必选,规定发送地址 data Plain ...

  5. accp8.0转换教材第3章MySQL高级查询(一)理解与练习

    一.单词部分 ①constraint约束②foreign外键③references参考 ④subquery子查询⑤inner内部的⑥join连接 二.预习部分 1.修改表SQL语句的关键字是什么 RE ...

  6. accp8.0转换教材第1章多线程理解与练习

    一.单词部分: ①process进程 ②current当前的③thread线程④runnable可获取的 ⑤interrupt中断⑥join加入⑦yield产生⑧synchronize同时发生 二.预 ...

  7. accp8.0转换教材第9章JQuery相关知识理解与练习

    自定义动画 一.单词部分: ①animate动画②remove移除③validity有效性 ④required匹配⑤pattern模式 二.预习部分 1.简述JavaScript事件和jquery事件 ...

  8. accp8.0转换教材第8章JavaScript对象及初识面向对象理解与练习

    JavaScript数据类型,对象,构造函数,原型对象,初识原型链,对象继承 一.单词部分 ①object父类②constructor构造函数③instance实例④call调用 ⑤apply应用⑥c ...

  9. accp8.0转换教材第7章JavaScript操作DOM对象理解与练习

    程序调试,chrome开发人员工具,DOM操作,节点和节点间的关系,节点信息,操作节点,获取元素 一.单词部分 ①alert警告②prompt提示③parentNode父节点④childNode子节点 ...

随机推荐

  1. 第十五章(附)分布式缓存-Memcached

    一.概念 Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能. 二.适用场合 1.分布式应用.由于 ...

  2. laravel实现excel表格导出

    记得引用一下excel,现在laravel5.2都默认自带的,不需要自己再 Composer安装依赖了. use Excel; 然后方法里这样写 //$cellData自己要进行导出的数组 Array ...

  3. HTMLTestRunner测试报告美化

    前言 ​最近小伙伴们在学玩python,,看着那HTMLTestRunner生成的测试报告,左右看不顺眼,终觉得太丑.搜索了一圈没有找到合适的美化报告,于是忍不住自已动手进行了修改,因习惯python ...

  4. SQL SERVER大话存储结构(6)_数据库数据文件

            数据库文件有两大类:数据文件跟日志文件,每一个数据库至少各有一个数据文件或者日志文件,数据文件用来存储数据,日志文件用来存储数据库的事务修改情况,可用于恢复数据库使用.     这里分 ...

  5. 一天搞定CSS: 浮动(float)的副作用--12

    我们通常使用浮动来实现某些元素的布局,但是往往这些元素浮动会影响其他元素的布局,因此会产生副作用. 如果你还不清楚什么是浮动,那就点开这个链接: http://blog.csdn.net/baidu_ ...

  6. python requests get/post

    基本Get请求: #-*- coding:utf-8 -*- import requests url = 'http://www.baidu.com' r = requests.get(url) pr ...

  7. 【JAVAEE学习笔记】hibernate04:查询种类、HQL、Criteria、查询优化和练习为客户列表增加查询条件

    一.查询种类 1.oid查询-get 2.对象属性导航查询 3.HQL 4.Criteria 5.原生SQL 二.查询-HQL语法 //学习HQL语法 public class Demo { //基本 ...

  8. 什么时候该选用Xamarin?

    现在开发app也好,桌面程序也好,有很多不同的技术可以选择.那么,什么时候应该选用Xamarin呢? 5 questions to consider before choosing Xamarin 1 ...

  9. vue.js实现数据动态响应(Vue.set的应用)

    在vue里面,我们操作最多的就是各种数据,在jquery里面,我们习惯通过下标定向找到数据,然后重新赋值 比如var a[0]=111;(希望上家公司原谅菜鸟的我写了不少这样的代码

  10. Jquery取属性值(复选框、下拉列表、单选按钮)、做全选按钮、JSON存储、去空格

    1.jquery取复选框的值 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "htt ...