【Spring实战】—— 14 传统的JDBC实现的DAO插入和读取
来源:互联网 发布:视频消音软件手机 编辑:程序博客网 时间:2024/06/14 09:17
从这篇开始学习Spring的JDBC,为了了解Spring对于JDBC的作用,先通过JDBC传统的流程,实现一个数据库的插入和读取。
从这篇你可以了解到:
1 传统的JDBC插入和读取的过程。
2 如何通过JDBC连接Mysql
如何通过JDBC连接mysql
首先看一下下面这张图:
应用程序需要通过mysql的驱动程序,才能与数据连接。
驱动程序下载地址:mysql-connector-java-5.1.13-bin.jar
在设计程序的时候,应该采用接口编程的方式,这样能够减小数据操作与应用业务逻辑代码之间的耦合。
JDBC插入和读取过程
使用传统的JDBC需要经过如下的几个步骤:
1 加载驱动程序
Class.forName("com.mysql.jdbc.Driver");
2 创建连接
Connection conn = (Connection) DriverManager.getConnection(url, userName,passwrod);
3 创建执行计划
PreparedStatement pstmt = (PreparedStatement) conn.prepareStatement("select * from persons");
4 执行查询获取结果
ResultSet rs = pstmt.executeQuery(); while (rs.next()) { System.out.println("id : " + rs.getString(1) + " name : "+ rs.getString(2) + " age : " + rs.getInt(3)); }
5 关闭查询结果
if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } }
6 关闭执行计划
if (pstmt != null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } }
7 关闭连接
if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } }
按照上面的几个步骤,来看一下实现的代码:
首先是接口部分:
package com.spring.chap5.dao;public interface OldJdbc { /** * 插入数据 */ public void insertPerson(String id,String name,int age); /** * 查询所有结果 */ public void findAllPerson();}
然后是实现部分
package com.spring.chap5.dao;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import com.mysql.jdbc.Connection;import com.mysql.jdbc.PreparedStatement;public class OldJdbcImpl implements OldJdbc{ String driver = "com.mysql.jdbc.Driver"; String userName = "root"; String passwrod = "123qwe"; String url = "jdbc:mysql://localhost:3306/test"; public void insertPerson(String id,String name,int age) { try { Class.forName(driver); Connection conn = (Connection) DriverManager.getConnection(url, userName,passwrod); PreparedStatement pstmt = (PreparedStatement) conn.prepareStatement("insert into persons (id,name,age) values (?,?,?)"); pstmt.setString(1, id); pstmt.setString(2, name); pstmt.setInt(3, age); pstmt.executeUpdate(); if (pstmt != null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } catch (Exception e) { e.printStackTrace(); } } public void findAllPerson() { try { Class.forName(driver); Connection conn = (Connection) DriverManager.getConnection(url, userName,passwrod); PreparedStatement pstmt = (PreparedStatement) conn.prepareStatement("select * from persons"); ResultSet rs = pstmt.executeQuery(); while (rs.next()) { System.out.println("id : " + rs.getString(1) + " name : "+ rs.getString(2) + " age : " + rs.getInt(3)); } if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (pstmt != null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } catch (Exception e) { e.printStackTrace(); } }}
可以看到,光是两个简单的插入和查询,就有如此多的代码,而且大部分都是相同的过程。因此spring的模板,就派上用场了。
测试类如下:
public class test { public static void main(String[] args) { OldJdbc oldjdbc = new OldJdbcImpl(); oldjdbc.insertPerson("001", "xingoo1", 20); oldjdbc.insertPerson("002", "xingoo2", 20); oldjdbc.findAllPerson(); }}
另外还需要一个很重要的部分,就是sql语句:
/*SQLyog v4.05Host - 4.1.11-nt : Database - test*********************************************************************Server version : 4.1.11-nt*/create database if not exists `test`;USE `test`;/*Table structure for table `test`.`persons` */drop table if exists `test`.`persons`;CREATE TABLE `persons` ( `id` varchar(20) NOT NULL default '', `name` varchar(20) default NULL, `age` int(10) default NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;/*Data for the table `test`.`persons` */insert into `test`.`persons` values ('001','xingoo1',20),('002','xingoo2',20);
0 0
- 【Spring实战】—— 14 传统的JDBC实现的DAO插入和读取
- 传统的JDBC实现的DAO插入和读取
- Spring中实现基于Jdbc的DAO
- 传统jdbc和spring jdbc之间的区别
- spring的DAO编程(jdbc)
- spring注解配置整合的jdbc和hibernate的dao实现类
- springframework(十三)spring的Dao和JDBC
- Spring JDBC-Spring对DAO的支持
- Spring JDBC DAO的两个example
- Spring对JDBC的DAO支持
- 关于mybatis批量插入和传统的jdbc操作的比较
- 使用JDBC读取和插入XMLTYPE类型的数据库字段
- JDBC之将Dao的实现通过配置文件切换成Spring的实现
- JDBC Dao的实现与测试
- JDBC Dao的实现与测试
- 什么是Spring的DAO,Spring对JDBC/Hibernate的支持
- 使用Spring的SimpleJdbcTemplate类实现jdbc为基础的DAO层
- 传统jdbc的缺点
- LeetCode *** 55. Jump Game
- MongoDB数据库安装图解
- 多表连接查询
- Android中JavaScript和Native之间的Bridge
- 树形查询sql
- 【Spring实战】—— 14 传统的JDBC实现的DAO插入和读取
- 深入理解synchronized
- 倍福WinCE网络配置问题
- BZOJ 4509 USACO 2016 Jan Gold Angry Cows
- String常量池
- BZOJ4542: [Hnoi2016]大数
- c# 一维数组和二维数组的定义几种方式
- STL中的vector用法
- JDK8中matespace的引入