Java程序访问数据库:

  • 1、获取数据库厂商提供的驱动(jdbc接口的实现类)

如ojdbc14.jar——Oracle数据库驱动jar包

mysql-connector-java-5.1.8-bin.jar——MySQL数据库驱动jar包

自己去网上下载就行。

  • 2、使用JDBC的API访问数据库

连接、SQL语句执行、结果

java.sql.Driver:各个数据库厂商需要实现该接口,驱动的标记

java.sql.Connection:封装和数据库的连接

java.sql.Statement:封装需要执行的SQL语句

java.sql.ResultSet:封装查询的结果集

  • 3、JDBC编程步骤

step1——加载驱动

step2——获取连接对象

step3——执行SQL语句

step4——处理结果集

step5——关闭资源

  • 4、下面给出连接数据库的工具类(自己写的连接MySql数据库,如要连接Oeacle可修改对应参数)
package com.day03;import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;//加入Java开发交流君样:756584822一起吹水聊天
public class ConnectionUtils {// 线程单例private static ThreadLocal<Connection> tl = new ThreadLocal<Connection>();private static String url;private static String driver;private static String username;private static String password;//加入Java开发交流君样:756584822一起吹水聊天static {Properties props = new Properties();try {// 从属性文件中读取数据库配置信息,以加载类的方式加载配置文件props.load(ConnectionUtils.class.getClassLoader().getResourceAsStream("com/day03/db_mysql.properties"));} catch (IOException e) {}if (props != null) {url = props.getProperty("url");driver = props.getProperty("driver");username = props.getProperty("username");password = props.getProperty("password");// 装载并注册数据库驱动try {Class.forName(driver);} catch (ClassNotFoundException e) {e.printStackTrace();}}}//加入Java开发交流君样:756584822一起吹水聊天public static Connection getConnection() throws SQLException {Connection con = tl.get();if (con == null) {con = DriverManager.getConnection(url, username, password);tl.set(con);}return con;}public static void closeConnection() {Connection con = tl.get();try {if (con != null) {con.close();tl.set(null);}} catch (SQLException e) {e.printStackTrace();}}public static void closeStatement(Statement stmt) {try {if (stmt != null) {stmt.close();}} catch (SQLException e) {e.printStackTrace();}}public static void closeResultSet(ResultSet rs) {try {if (rs != null) {rs.close();}} catch (SQLException e) {e.printStackTrace();}}public static void closeAll(Statement stmt, ResultSet rs){closeConnection();closeStatement(stmt);closeResultSet(rs);}public static void main(String[] args) throws Exception{System.out.println(ConnectionUtils.getConnection());}}

5、配置参数文件db_mysql.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=root

6、Dao模式操作数据库下面是代码示例

1)Emp.java

//实体类
public class Emp {private int id;private String name;private double salary;public int getId() {return id;}@Overridepublic String toString() {return "Emp [id=" + id + ", name=" + name + ", salary=" + salary + "]";}//加入Java开发交流君样:756584822一起吹水聊天public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getSalary() {return salary;}public void setSalary(double salary) {this.salary = salary;}public Emp(int id, String name, double salary) {super();this.id = id;this.name = name;this.salary = salary;}public Emp() {super();}public Emp(String name, double salary) {super();this.name = name;this.salary = salary;}
}

2)Dao接口类

import java.util.List;public interface EmpDao {List<Emp> findAllEmp() throws Exception;
}

3)工厂类

public class EmpDaoFactory {// 读取文件中实现类的类名,通过反射实例化public static EmpDao getEmpDao(){return new EmpDaoMySQL();}
}

4)Dao接口实现类

public class EmpDaoMySQL implements EmpDao{public static final String FIND_ALL_EMP = "select * from t_emp";//查询语句public List<Emp> findAllEmp() throws Exception{List<Emp> empList = new ArrayList<Emp>();Connection conn = ConnectionUtils.getConnection();PreparedStatement stmt = conn.prepareStatement(FIND_ALL_EMP);ResultSet rs = stmt.executeQuery();while(rs.next()){int id = rs.getInt(1);String name = rs.getString(2);double salary = rs.getDouble(3);Emp emp = new Emp(id, name, salary);empList.add(emp);}//加入Java开发交流君样:756584822一起吹水聊天ConnectionUtils.closeAll(stmt, rs);return empList;}
}

5)测试类

public class EmpBiz {public static void main(String[] args) throws Exception{EmpDao dao = EmpDaoFactory.getEmpDao();List<Emp> empList = dao.findAllEmp();for(Emp e : empList){System.out.println(e);}}
}

Java Dao模式通过JDBC连接数据库的操作相关推荐

  1. DAO模式设计-JDBC连接Mysql数据库实现增删改查及JunitTest单元测试

     概念介绍 JDBC JDBC(Java数据库连接,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC ...

  2. java dao模式_Java DAO 模式

    DAO 模式 DAO (DataAccessobjects 数据存取对象)是指位于业务逻辑和持久化数据之间实现对持久化数据的访问.通俗来讲,就是将数据库操作都封装起来. 对外提供相应的接口 在面向对象 ...

  3. 大数据-NoSQL数据库-HBase操作框架:Phoenix【Java写的基于JDBC API的操作HBase数据库的SQL引擎框架;低延迟、事务性、可使用sql语句、提供JDBC接口】

    一.Phoenix概述 1.Phoenix 定义 Phoenix 最早是 saleforce 的一个开源项目,后来成为 Apache 的顶级项目. Phoenix 构建在 HBase 之上的开源 SQ ...

  4. java sql 参数_java jdbc连接数据库,Properties 属性设置参数方法

    今天在整合为数据库发现在配置中实现的赋值方式,可以用代码实现.特记录下共以后参考: 代码: // 操作数据库 Connection conn; String strDatabase ="no ...

  5. java 关于JDBC和DAO模式使用

    JDBC(全称:Java Data Base Connectivity)是java数据库连接简称 ,提供连接各种数据库的能力 JDBC API主要的功能: 与数据库建立连接 执行SQL语句 处理结果 ...

  6. JAVA JDBC连接数据库操作的基本步骤

    JAVA中JDBC连接数据库操作的基本步骤.注:假定连接数据库的用户名为root,密码为root. 步骤一: 定义连接数据库的相关信息 步骤一: 定义连接数据库的相关信息(1) 连接数据库的驱动:8. ...

  7. Java+MyEclipse+Tomcat (五)DAO和Java Bean实现数据库和界面分开操作

    正如前面一篇文章的介绍,当使用Servlet提交表单和JSP数据库查询时,总是相互交叉着的处理,要么在JSP中通过<%...%>内嵌Java代码操作数据库,要么 JSP中通过Post方法提 ...

  8. JDBC之二:DAO模式

    JDBC之二:DAO模式 @(JAVA)[java] 详细代码请参见 https://github.com/lujinhong/dao 一.前期准备 1.创建数据库 create database f ...

  9. java mysql dao_Java DAO 模式

    哈哈哈哈哈...呃~参考文章 DAO 模式 DAO (DataAccessobjects 数据存取对象)是指位于业务逻辑和持久化数据之间实现对持久化数据的访问.通俗来讲,就是将数据库操作都封装起来. ...

最新文章

  1. mysqluc安装MYSQL_安装mysql几种方法
  2. Boghe连接FreeSwitch的配置
  3. 我提出辞职,老板竟然让我做选择题(转)
  4. vim global命令
  5. 读书到底为了什么,读研到底值不值?
  6. 13.JAVA之GUI编程将程序打包jar
  7. Apache Tika 内容抽取工具集合
  8. 【浏览器硬件交互篇】浏览器js调用摄像头拍照
  9. JavaWbe中文乱码解决方案
  10. Typora下载链接
  11. CF Make Cents?
  12. yolov3批量测试并存在自己定义的路径(linux,Joseph Redmon,c版本)
  13. windows系统进程漫谈
  14. android-23是什么手机,Android 8.1!首款helio P23/MT6763T手机曝光!
  15. edgy trees_将Ubuntu从Edgy升级到Feisty(6.10至7.04)
  16. mybatis学习与理解
  17. 上海BFC外滩金融中心潮流新店,aaddd揭秘全新生活美学
  18. 2018天池比赛首战落幕
  19. matlab学习笔记:如何在matlab中如何自定义函数和匿名函数
  20. nagios-邮件报警

热门文章

  1. 我们为什么要搞长沙.NET技术社区?
  2. Orchard Core一分钟搭建ASP.NET Core CMS
  3. 拥抱.NET Core系列:依赖注入(1)
  4. 从真实项目中抠出来的设计模式——第二篇:过滤器模式
  5. .Net基础体系和跨框架开发普及
  6. ASP.NET Core loves JavaScript
  7. 如何将 Microsoft Bot Framework 链接至微信公共号
  8. ASP.NET Core Kestrel 中使用 HTTPS (SSL)
  9. Linux(CentOS 6.7)下配置Mono和Jexus并且部署ASP.NET MVC3、4、5和WebApi(跨平台)
  10. django项目开发1:搭建虚拟环境