`
Listen_ing
  • 浏览: 37290 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

Spring-JdbcTemplate学习笔记示例

阅读更多
spring jdbctemplate使用方法
1,建表
create table admin{
id number(10) primary key,
name varchar2(64),
password varchar2(64)
}
2,spring 配置
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
<bean id="dataSource" class="oracle.jdbc.pool.OracleDataSource">
<property name="URL">
<value>jdbc:oracle:thin:root/123@localhost:1521/xe</value>
</property>
</bean>

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource"><ref bean="dataSource"/></property>
</bean>

<bean id="userDAO" class="DAO.Imp.UserDAOImp">
<property name="jdbcTemplate"><ref bean="jdbcTemplate"/></property>
</bean>

<bean id="user" class="Model.User">
<property name="dao"><ref bean="userDAO"/></property>
</bean>
</beans>

3,使用方法
查找
多行查询
class UserRowMapper implements RowMapper{
public Object mapRow{ResultSet rs,int index)throws SQLException{
User u = new User();
u.setId(rs.getString("id"));
u.setName(rs.getString("name"));
u.setPassword(rs.getString("password"));
return u;
}

public List select(String where){
List list;
String sql = "select * from admin " + where ;
list = jdbcTemplate.query(sql,new RowMapperResultReader(new UserRowMapper()));
return list;
}
}
单行查询
public User selectById(String id){
String sql = "select * from admin where id = ?";
final User u = new User();
final Object[] params = new Object[] {id};
jdbcTemplate.query(sql,params,new RowCallbackHandler(){
public void processRow(ResultSet rs )throws SQLException{
u.setId(rs.getString("id"));
u.setName(rs.getString("name"));
u.setPassword(rs.getString("password"));
}
});
return u;
}
插入
public void insert(User u ){
String sql = "insert into admin(id,name,password) vlaues(admin_id_seq.nextval,?,?)";
Object[] params = new Object[]{
u.getName((),
u.getPassword()
};
jdbcTemplate.update(sql,params);
}
//admin_id_seq.nextval为oracle设置好的序列,问号“?”被params里的数据一次替代,最终执行sql。

修改
public void update(String how){
jdbc.Template.update(how);
}


源代码:
User.class
public class User(
private String name;
private String id;
private String password;
private UserDAO dao;

public User(){}

public User(String name,String password){
this.name = name;
this.password = password;
}

public void setDao(UserDAO dao){
this.dao = dao;
}

public UserDAO getDao(){
return dao;
}

public String getId(){
return id;
}

public void setId(String id){
this.id = id;
}

public void setName (String name){
this.name = name;
}

public String getName(){
return name;
}

public void setPassword(String password){
this.password = password;
}

public String getPassword(){
return password;
}

public void getInfo(String id){
List list = dao.select("where id = " + id);
User u = (User)list.get(0);

this.id = u.getId();
this.name = u.getName();
this.password = u.getPassword();
}

public void insert(){
dao.insert(this);
}

public void update(String how){
dao.update(how);
}

public void update(){
dao.update("update admin set name = " + name + ",password = " + password + " where id = " + id);
}

public List selectWithTemp(String where){
return dao.select(where);
}

public void selectWithTemp(){
dao.selectWithTemp();
}

public User selectById(String id){
return dao.selectById(id);
}

public void insertUsers(List users){
dao.insertUsers(users);
}
}

UserDAO.class
public interface UserDAO{
public void select();

public void test();

public void selectWithTemp();

public List select(String where);

public void update(String how);

public void insert(User u);

public User selectById(String id);

public int[] insertUsers(final List users);
}

UserDAOImpl.class
public class UserDAOImp implements UserDAO{
private JdbcTemplate jdbcTemplate;

public void setJdbcTemplate(JdbcTemplate jdbcTemplate){
this.jdbcTemplate = jdbcTemplate;
}

class UserRowMapper implements RowMapper{
public Object mapRow(ResultSet rs,int index)throws SQLException{
User u = new User();
u.setId(rs.getString("id"));
u.setName(rs.getString("name"));
u.setPassword(rs.getString("password"));

return u;
}
}

public void selectWithTemp(){
String sql = "select * from admin";
jdbcTemplate.query(sql,new RowCallbackHandler(){
public void processRow(ResultSet rs)throws SQLException{
System.out.println("id:" + rs.getString("id") + " name:" + rs.getString("name"));
}
});
}

public List select(String where){
List list;
String sql = "select * from admin " + where;
list = jdbcTemplate.query(sql,new RowMapperResultReader(new UserMapper()));
return list;
}

public User selectById(String id){
String sql = "select * from admin where id = ?";
final User u = new User();
final Object[] params = new Object[] {id};

jdbcTemplate.query(sql,params,new RowCallbackHandler(){
public void processRow(ResultSet rs)throws SQLException{
u.setId(rs.getString("id));
u.setName(rs.getString("name"));
u.setPassword(rs.getString("password"));
}
});

return u;
}

public void update(String how){
String sql = how;
jdbcTemplate.update(sql);
}

public void insert(User u){
String sql = "insert into admin(id,name,password) values (admin_id_seq.nextval,?,?";
Object[] params = new Object[]{
u.getName(),
u.getPassword()
};
jdbcTemplate.update(sql,params);
}
}

UserAction.class
public class UserAction{
public static void main(String[] args){
Resource resource = ClassPathResource("beans.xml");
BeanFactory factory = new XmlBeanFactory(resource);
User user = (User)factory.getBean("user");

user.selectWithTemp();
}
}
分享到:
评论

相关推荐

    SSH笔记-Spring JdbcTemplate

    SSH笔记-Spring JdbcTemplate是关于如何在Spring框架中利用JdbcTemplate进行数据库操作的教程。Spring是一个广泛应用的Java企业级应用框架,它提供了多种数据访问工具,而JdbcTemplate就是其中之一,用于简化JDBC...

    Spring学习笔记&源码

    本资料“Spring学习笔记&源码”是基于网易云课堂黑马程序员的Spring四天精通课程,旨在帮助学习者深入理解和实践Spring框架。 笔记部分可能会涵盖以下内容: 1. **Spring概述**:介绍Spring框架的历史、特点和主要...

    Java Spring框架学习笔记(内附源码).pdf

    本学习笔记提供了丰富的源码示例,帮助读者更好地理解和应用Spring框架。 首先,需要明确Spring是一个开源框架,它旨在简化Java EE(现在称为Jakarta EE)的开发。Spring框架的核心是提供了一个轻量级、解耦的容器...

    Spring笔记示例源代码

    "Spring笔记示例源代码"这个资源很可能是为了帮助学习者深入理解Spring框架的各种功能和用法而提供的实际代码示例。 1. **Spring IoC**:IoC是Spring的核心特性,它将对象的创建和管理权交给Spring容器,使得开发者...

    Spring Boot 学习笔记完整教程.pdf

    ### Spring Boot 学习笔记知识点 #### 1. Spring Boot 简介 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。它使用了特定的方式来配置Spring,使得开发者...

    Spring2.5学习笔记

    ### Spring2.5学习笔记 #### Spring是什么? Spring是一个开源框架,主要应用于Java平台上的企业级应用程序开发。它提供了一种轻量级的容器管理机制,通过依赖注入(DI)和面向切面编程(AOP)来降低组件间的耦合...

    Spring 入门教程资料(源码源代码及课程笔记)

    学习如何使用 Spring JdbcTemplate 或者 MyBatis 进行数据库操作,以及事务管理(@Transactional)是非常重要的。 6. **MVC 框架**:Spring MVC 是 Spring 用于构建 Web 应用的一个模块。学习如何创建控制器...

    spring框架学习笔记

    此外,Spring还提供了多种模板类简化开发,例如JdbcTemplate用于数据库操作,RestTemplate用于HTTP客户端调用,这些模板类封装了常见的操作,使得代码更简洁、易读。 总的来说,Spring框架通过IoC和DI降低了组件...

    设计模式学习笔记(十五)命令模式及在Spring JdbcTemplate 中的实现.doc

    JdbcTemplate 是 Spring 对 JDBC 的轻量级抽象,它简化了数据库访问,同时避免了直接编写大量的模板代码。JdbcTemplate 提供了多种模板方法,如 `update()`, `query()`, `execute()` 等,这些方法实际上扮演了命令...

    Spring+JDBC集成学习笔记(可参考ppt附件38-46页)

    **Spring+JDBC集成学习笔记** 在Java Web开发中,Spring框架因其强大的功能和灵活性而被广泛应用。Spring提供了与JDBC的集成,使得数据库操作更加便捷、高效且易于管理。以下将详细介绍Spring如何与JDBC结合,以及...

    spring学习笔记

    ### Spring学习笔记知识点详解 #### 一、Spring理论基础 1. **依赖注入与控制反转** - **依赖注入(Dependency Injection, DI)**: 在软件工程中,依赖注入是一种设计模式,它允许对象在其生命周期中动态接收其依赖...

    spring 学习笔记 32页word

    【Spring 学习笔记概述】 Spring 是一个广泛使用的 Java 应用框架,尤其在企业级应用开发中占有重要地位。其核心特性是依赖注入(Dependency Injection,DI)和控制反转(Inversion of Control,IoC),这两者是...

    Spring个人学习笔记.pdf

    文档开头反复提到“Spring”,这表明个人学习笔记的起点是Spring框架的基础知识。Spring是一个全面的编程和配置模型,用于现代Java基础上的企业的、多层的和面向服务的应用程序。Spring的一个重要特点是分层架构,...

    spring-learn:spring原始笔记

    Spring框架是Java开发中最...以上是"spring-learn:spring原始笔记"可能涉及的一些核心知识点,实际笔记内容可能会更详细,包括更多实践示例和深入讲解。学习Spring需要对这些概念有深刻理解,并结合实践来提升技能。

    SpringBoot 学习笔记完整教程

    SpringBoot学习笔记完整教程 SpringBoot是Spring框架的一个简化版,旨在简化Spring应用程序的初始设置和开发过程。它集成了大量的常用库,如数据访问、安全、Web等,使得开发者可以快速构建健壮的微服务应用。本...

    传智播客 Spring 完全文档 笔记总结

    ### 传智播客 Spring 完全文档 笔记总结 #### 一、Spring入门 ##### 1.1 Spring简介 - **定义**:Spring 是一个开源的控制反转(Inversion of Control, IoC)和面向切面(Aspect Oriented Programming, AOP)的...

    牧紫小岩的Spring学习笔记pdf

    ### 牧紫小岩的Spring学习笔记:深入解析Spring框架的核心功能与应用 #### Spring框架概览 Spring框架,作为Java领域中一个重要的轻量级框架,主要关注于解决企业级应用开发中的复杂性问题。它通过提供一系列的...

    学习spring时的笔记

    【Spring 框架概述】 Spring 是一个广泛使用的开源Java开发框架,由Rod Johnson在其...随着学习深入,Spring的更多高级特性,如Spring Boot、Spring Data、Spring Security等,都会进一步提升开发效率和应用的健壮性。

Global site tag (gtag.js) - Google Analytics