要了解有关Spring JDBC框架与JdbcTemplate类的概念,让我们写这将实现所有在下面Student表的CRUD操作的简单例子。

CREATE TABLEStudent(ID INT NOT NULL AUTO_INCREMENT,NAME VARCHAR(20)NOT NULL,AGE INT NOT NULL,PRIMARY KEY(ID));

在开始之前,让我们使用Eclipse IDE,并按照下面的步骤来创建一个Spring应用程序:

步骤

描述

1

Create a project with a name SpringExample and create a package com.yiibai under the src folder in the created project.

2

Add required Spring libraries using Add External JARs option as explained in the Spring Hello World Example chapter.

3

Add Spring JDBC specific latest libraries mysql-connector-java.jar,org.springframework.jdbc.jar and org.springframework.transaction.jar in the project. You can download required libraries if you do not have them already.

4

Create DAO interface StudentDAO and list down all the required methods. Though it is not required and you can directly write StudentJDBCTemplate class, but as a good practice, let's do it.

5

Create other required Java classes Student, StudentMapper, StudentJDBCTemplate andMainApp under the com.yiibai package.

6

Make sure you already created Student table in TEST database. Also make sure your MySQL server is working fine and you have read/write access on the database using the give username and password.

7

Create Beans configuration file Beans.xml under the src folder.

8

The final step is to create the content of all the Java files and Bean Configuration file and run the application as explained below.

以下是数据访问对象接口文件StudentDAO.java的内容:

packagecom.yiibai;importjava.util.List;importjavax.sql.DataSource;publicinterfaceStudentDAO{/**

* This is the method to be used to initialize

* database resources ie. connection.

*/publicvoidsetDataSource(DataSourceds);/**

* This is the method to be used to create

* a record in the Student table.

*/publicvoidcreate(Stringname,Integerage);/**

* This is the method to be used to list down

* a record from the Student table corresponding

* to a passed student id.

*/publicStudentgetStudent(Integerid);/**

* This is the method to be used to list down

* all the records from the Student table.

*/publicListlistStudents();/**

* This is the method to be used to delete

* a record from the Student table corresponding

* to a passed student id.

*/publicvoiddelete(Integerid);/**

* This is the method to be used to update

* a record into the Student table.

*/publicvoidupdate(Integerid,Integerage);}

以下是Student.java文件的内容:

packagecom.yiibai;publicclassStudent{privateIntegerage;privateStringname;privateIntegerid;publicvoidsetAge(Integerage){this.age=age;}publicIntegergetAge(){returnage;}publicvoidsetName(Stringname){this.name=name;}publicStringgetName(){returnname;}publicvoidsetId(Integerid){this.id=id;}publicIntegergetId(){returnid;}}

以下是StudentMapper.java文件的内容:

packagecom.yiibai;importjava.sql.ResultSet;importjava.sql.SQLException;importorg.springframework.jdbc.core.RowMapper;publicclassStudentMapperimplementsRowMapper{publicStudentmapRow(ResultSetrs,introwNum)throwsSQLException{Studentstudent=newStudent();student.setId(rs.getInt("id"));student.setName(rs.getString("name"));student.setAge(rs.getInt("age"));returnstudent;}}

下面是实现类文件StudentJDBCTemplate.java 定义DAO接口StudentDAO:

packagecom.yiibai;importjava.util.List;importjavax.sql.DataSource;importorg.springframework.jdbc.core.JdbcTemplate;publicclassStudentJDBCTemplateimplementsStudentDAO{privateDataSourcedataSource;privateJdbcTemplatejdbcTemplateObject;publicvoidsetDataSource(DataSourcedataSource){this.dataSource=dataSource;this.jdbcTemplateObject=newJdbcTemplate(dataSource);}publicvoidcreate(Stringname,Integerage){StringSQL="insert into Student (name, age) values (?, ?)";jdbcTemplateObject.update(SQL,name,age);System.out.println("Created Record Name = "+name+" Age = "+age);return;}publicStudentgetStudent(Integerid){StringSQL="select * from Student where id = ?";Studentstudent=jdbcTemplateObject.queryForObject(SQL,newObject[]{id},newStudentMapper());returnstudent;}publicListlistStudents(){StringSQL="select * from Student";Liststudents=jdbcTemplateObject.query(SQL,newStudentMapper());returnstudents;}publicvoiddelete(Integerid){StringSQL="delete from Student where id = ?";jdbcTemplateObject.update(SQL,id);System.out.println("Deleted Record with ID = "+id);return;}publicvoidupdate(Integerid,Integerage){StringSQL="update Student set age = ? where id = ?";jdbcTemplateObject.update(SQL,age,id);System.out.println("Updated Record with ID = "+id);return;}}

以下是MainApp.java文件的内容:

packagecom.yiibai;importjava.util.List;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;importcom.yiibai.StudentJDBCTemplate;publicclassMainApp{publicstaticvoidmain(String[]args){ApplicationContextcontext=newClassPathXmlApplicationContext("Beans.xml");StudentJDBCTemplatestudentJDBCTemplate=(StudentJDBCTemplate)context.getBean("studentJDBCTemplate");System.out.println("------Records Creation--------");studentJDBCTemplate.create("Zara",11);studentJDBCTemplate.create("Nuha",2);studentJDBCTemplate.create("Ayan",15);System.out.println("------Listing Multiple Records--------");Liststudents=studentJDBCTemplate.listStudents();for(Studentrecord:students){System.out.print("ID : "+record.getId());System.out.print(", Name : "+record.getName());System.out.println(", Age : "+record.getAge());}System.out.println("----Updating Record with ID = 2 -----");studentJDBCTemplate.update(2,20);System.out.println("----Listing Record with ID = 2 -----");Studentstudent=studentJDBCTemplate.getStudent(2);System.out.print("ID : "+student.getId());System.out.print(", Name : "+student.getName());System.out.println(", Age : "+student.getAge());}}

以下是配置文件beans.xml文件:

<?xml version="1.0"encoding="UTF-8"?>

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd ">

创建源代码和bean配置文件完成后,让我们运行应用程序。如果一切顺利,这将打印以下信息:

------Records Creation--------

Created Record Name = Zara Age = 11

Created Record Name = Nuha Age = 2

Created Record Name = Ayan Age = 15

------Listing Multiple Records--------

ID : 1, Name : Zara, Age : 11

ID : 2, Name : Nuha, Age : 2

ID : 3, Name : Ayan, Age : 15

----Updating Record with ID = 2 -----

Updated Record with ID = 2

----Listing Record with ID = 2 -----

ID : 2, Name : Nuha, Age : 20

你可以尝试删除操作,我在例子中没有使用过,但现在你有一个工作的应用程序基于Spring的JDBC框架,它可以扩展到根据项目要求增加复杂的功能。还有其他的方法来访问,将使用针对NamedParameterJdbcTemplate和SimpleJdbcTemplate类的数据库,所以如果你有兴趣学习这些课程,请参考Spring框架手册。

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

jdbc java例子_Spring JDBC 例子相关推荐

  1. java jdbc开启事务_spring jdbc 事务配置

    配置WEB.XML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="h ...

  2. jdbc封装mysql_用Java手动封装JDBC连接池(一)

    JDBC存在的问题 代码的冗余:在对数据库进行增删改查时,每个操作的JDBC流程和SQL执行代码的流程都一样,造成代码的冗余,所以我们可以把冗余的部分封装起来,封装之后,我们就不用再去写JDBC流程, ...

  3. java jdbc 教程_java JDBC系列教程之JDBC类的简析与JDBC的基础操作

    什么是JDBC? 概念:JAVA Database Connectivity Javas数据库连接,Java语言操作数据库接口,然后由各个数据库厂商去实现这个接口,提供数据库驱动java包,我们可以使 ...

  4. Java SE 6 新特性: Java DB 和 JDBC 4.0

    http://www.ibm.com/developerworks/cn/java/j-lo-jse65/index.html 长久以来,由于大量(甚至几乎所有)的 Java 应用都依赖于数据库,如何 ...

  5. [转]理解JNDI中 java:comp/env/jdbc/datasource 与 jdbc...

    为什么80%的码农都做不了架构师?>>>    在描述JNDI,例如获得数据源时,JNDI地址有两种写法,例如同是  jdbc/testDS 数据源: A:        java: ...

  6. Java数据库编程(JDBC)-入门笔记

    数据库(DB) 简介: • DB: Database = Data + Base • 数据库:数据+库,存放数据的库(场所) • 数据:规范.半规范.不规范数据 • 库 – 一个空间,一个场所 – 停 ...

  7. 快速上手JDBC——Java如何在底层操作数据库

    我们为什么学习这个,用一句话概括,JDBC就是用Java语言操作关系型数据库 原来我们操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句 同理,以后学习用J ...

  8. java jdbc.idbdriver_Servlet开发中JDBC的高级应用

    连结数据库 JDBC使用数据库URL来说明数据库驱动程序.数据库URL类似于通用的URL,但SUN 在定义时作了一点简化,其语法如下: Jdbc::[node]/[database] 其中子协议(su ...

  9. Java 原始的JDBC方式连接MySQL数据库【钢镚核恒】

    Java JDBC 简介 JDBC(Java DataBase Connectivity,Java数据库连接) JDBC 可让Java通过程序操作关系型数据库 JDBC 基于驱动程序实现与数据库的连接 ...

最新文章

  1. python解析json_python解析json文件
  2. python3精要(40)-数组与矩阵
  3. 要不要学Python?如何快速学Python?
  4. boost::mp11::mp_insert_c相关用法的测试程序
  5. 反思laravel-admin的使用总结
  6. 高等组合学笔记(六): 第二类Stirling数,第一类Stirling数以及生成函数
  7. c语言程序设计第二版课后答案 机械工业出版社,C语言程序设计 第2版
  8. LeetCode 198, 213 House Robber
  9. Zabbix触发器配置指定生效星期监控CPU使用率
  10. 数据结构基本操作_【算法与数据结构 03】数据处理的基本操作——增删查
  11. 忍不住笑的笑话(last:20180419)
  12. 游戏音效是用什么软件做的?
  13. 拼多多砍价群大王:拼多多为什么3年就能上市?
  14. 对于提高团队开会效率的看法
  15. 在ASP.NET MVC中使用Boostrap实现产品的展示、查询、排序、分页
  16. python 源代码 macd双底 高 低_久其软件怎么样MACD指标的双底形态特征详解
  17. 【ICC】icc基本使用步骤(转载)(初稿)
  18. Lightoj 1258
  19. c语言第一次上机作业答案,第一次上机作业参考答案
  20. 从白痴到专家:批处理全方位教程(转)

热门文章

  1. Spring Cloud (3) 服务消费者-Ribbon
  2. CentOS 7 安装Boost 1.61
  3. 二维数组中的查找问题
  4. 面试题——轻松搞定面试中的红黑树问题
  5. Memcached深度分析【zz】
  6. UA OPTI544 量子光学7 补充:Density Operator
  7. UA MATH563 概率论的数学基础 中心极限定理10 Borel-Cantelli引理
  8. UA MATH567 高维统计II 随机向量5 亚高斯随机向量
  9. Linux块设备概念和列出块设备命令学习
  10. DirectX SDK 9.28版本安装错误S1023