jdbc java例子_Spring JDBC 例子
要了解有关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 例子相关推荐
- java jdbc开启事务_spring jdbc 事务配置
配置WEB.XML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="h ...
- jdbc封装mysql_用Java手动封装JDBC连接池(一)
JDBC存在的问题 代码的冗余:在对数据库进行增删改查时,每个操作的JDBC流程和SQL执行代码的流程都一样,造成代码的冗余,所以我们可以把冗余的部分封装起来,封装之后,我们就不用再去写JDBC流程, ...
- java jdbc 教程_java JDBC系列教程之JDBC类的简析与JDBC的基础操作
什么是JDBC? 概念:JAVA Database Connectivity Javas数据库连接,Java语言操作数据库接口,然后由各个数据库厂商去实现这个接口,提供数据库驱动java包,我们可以使 ...
- Java SE 6 新特性: Java DB 和 JDBC 4.0
http://www.ibm.com/developerworks/cn/java/j-lo-jse65/index.html 长久以来,由于大量(甚至几乎所有)的 Java 应用都依赖于数据库,如何 ...
- [转]理解JNDI中 java:comp/env/jdbc/datasource 与 jdbc...
为什么80%的码农都做不了架构师?>>> 在描述JNDI,例如获得数据源时,JNDI地址有两种写法,例如同是 jdbc/testDS 数据源: A: java: ...
- Java数据库编程(JDBC)-入门笔记
数据库(DB) 简介: • DB: Database = Data + Base • 数据库:数据+库,存放数据的库(场所) • 数据:规范.半规范.不规范数据 • 库 – 一个空间,一个场所 – 停 ...
- 快速上手JDBC——Java如何在底层操作数据库
我们为什么学习这个,用一句话概括,JDBC就是用Java语言操作关系型数据库 原来我们操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句 同理,以后学习用J ...
- java jdbc.idbdriver_Servlet开发中JDBC的高级应用
连结数据库 JDBC使用数据库URL来说明数据库驱动程序.数据库URL类似于通用的URL,但SUN 在定义时作了一点简化,其语法如下: Jdbc::[node]/[database] 其中子协议(su ...
- Java 原始的JDBC方式连接MySQL数据库【钢镚核恒】
Java JDBC 简介 JDBC(Java DataBase Connectivity,Java数据库连接) JDBC 可让Java通过程序操作关系型数据库 JDBC 基于驱动程序实现与数据库的连接 ...
最新文章
- python解析json_python解析json文件
- python3精要(40)-数组与矩阵
- 要不要学Python?如何快速学Python?
- boost::mp11::mp_insert_c相关用法的测试程序
- 反思laravel-admin的使用总结
- 高等组合学笔记(六): 第二类Stirling数,第一类Stirling数以及生成函数
- c语言程序设计第二版课后答案 机械工业出版社,C语言程序设计 第2版
- LeetCode 198, 213 House Robber
- Zabbix触发器配置指定生效星期监控CPU使用率
- 数据结构基本操作_【算法与数据结构 03】数据处理的基本操作——增删查
- 忍不住笑的笑话(last:20180419)
- 游戏音效是用什么软件做的?
- 拼多多砍价群大王:拼多多为什么3年就能上市?
- 对于提高团队开会效率的看法
- 在ASP.NET MVC中使用Boostrap实现产品的展示、查询、排序、分页
- python 源代码 macd双底 高 低_久其软件怎么样MACD指标的双底形态特征详解
- 【ICC】icc基本使用步骤(转载)(初稿)
- Lightoj 1258
- c语言第一次上机作业答案,第一次上机作业参考答案
- 从白痴到专家:批处理全方位教程(转)