Java Dao模式通过JDBC连接数据库的操作
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连接数据库的操作相关推荐
- DAO模式设计-JDBC连接Mysql数据库实现增删改查及JunitTest单元测试
概念介绍 JDBC JDBC(Java数据库连接,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC ...
- java dao模式_Java DAO 模式
DAO 模式 DAO (DataAccessobjects 数据存取对象)是指位于业务逻辑和持久化数据之间实现对持久化数据的访问.通俗来讲,就是将数据库操作都封装起来. 对外提供相应的接口 在面向对象 ...
- 大数据-NoSQL数据库-HBase操作框架:Phoenix【Java写的基于JDBC API的操作HBase数据库的SQL引擎框架;低延迟、事务性、可使用sql语句、提供JDBC接口】
一.Phoenix概述 1.Phoenix 定义 Phoenix 最早是 saleforce 的一个开源项目,后来成为 Apache 的顶级项目. Phoenix 构建在 HBase 之上的开源 SQ ...
- java sql 参数_java jdbc连接数据库,Properties 属性设置参数方法
今天在整合为数据库发现在配置中实现的赋值方式,可以用代码实现.特记录下共以后参考: 代码: // 操作数据库 Connection conn; String strDatabase ="no ...
- java 关于JDBC和DAO模式使用
JDBC(全称:Java Data Base Connectivity)是java数据库连接简称 ,提供连接各种数据库的能力 JDBC API主要的功能: 与数据库建立连接 执行SQL语句 处理结果 ...
- JAVA JDBC连接数据库操作的基本步骤
JAVA中JDBC连接数据库操作的基本步骤.注:假定连接数据库的用户名为root,密码为root. 步骤一: 定义连接数据库的相关信息 步骤一: 定义连接数据库的相关信息(1) 连接数据库的驱动:8. ...
- Java+MyEclipse+Tomcat (五)DAO和Java Bean实现数据库和界面分开操作
正如前面一篇文章的介绍,当使用Servlet提交表单和JSP数据库查询时,总是相互交叉着的处理,要么在JSP中通过<%...%>内嵌Java代码操作数据库,要么 JSP中通过Post方法提 ...
- JDBC之二:DAO模式
JDBC之二:DAO模式 @(JAVA)[java] 详细代码请参见 https://github.com/lujinhong/dao 一.前期准备 1.创建数据库 create database f ...
- java mysql dao_Java DAO 模式
哈哈哈哈哈...呃~参考文章 DAO 模式 DAO (DataAccessobjects 数据存取对象)是指位于业务逻辑和持久化数据之间实现对持久化数据的访问.通俗来讲,就是将数据库操作都封装起来. ...
最新文章
- mysqluc安装MYSQL_安装mysql几种方法
- Boghe连接FreeSwitch的配置
- 我提出辞职,老板竟然让我做选择题(转)
- vim global命令
- 读书到底为了什么,读研到底值不值?
- 13.JAVA之GUI编程将程序打包jar
- Apache Tika 内容抽取工具集合
- 【浏览器硬件交互篇】浏览器js调用摄像头拍照
- JavaWbe中文乱码解决方案
- Typora下载链接
- CF Make Cents?
- yolov3批量测试并存在自己定义的路径(linux,Joseph Redmon,c版本)
- windows系统进程漫谈
- android-23是什么手机,Android 8.1!首款helio P23/MT6763T手机曝光!
- edgy trees_将Ubuntu从Edgy升级到Feisty(6.10至7.04)
- mybatis学习与理解
- 上海BFC外滩金融中心潮流新店,aaddd揭秘全新生活美学
- 2018天池比赛首战落幕
- matlab学习笔记:如何在matlab中如何自定义函数和匿名函数
- nagios-邮件报警
热门文章
- 我们为什么要搞长沙.NET技术社区?
- Orchard Core一分钟搭建ASP.NET Core CMS
- 拥抱.NET Core系列:依赖注入(1)
- 从真实项目中抠出来的设计模式——第二篇:过滤器模式
- .Net基础体系和跨框架开发普及
- ASP.NET Core loves JavaScript
- 如何将 Microsoft Bot Framework 链接至微信公共号
- ASP.NET Core Kestrel 中使用 HTTPS (SSL)
- Linux(CentOS 6.7)下配置Mono和Jexus并且部署ASP.NET MVC3、4、5和WebApi(跨平台)
- django项目开发1:搭建虚拟环境