Spring使用JdbcTemplate操作数据库首先,假设如下SQL表中有数据username=test1,passwd=test1,address=test1
CREATE TABLE `login` (
`username` varchar(10) default NULL,
`passwd` varchar(10) default NULL,
`address` varchar(10) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
配置文件:
<?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="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/javaee</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>1234</value>
</property>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref local="dataSource"/>
</property>
</bean>
<bean id="personDAO" class="SpringJDBCSupport.ReadData.PersonDAO">
<property name="jdbcTemplate">
<ref local="jdbcTemplate"/>
</property>
</bean>
</beans>
JavaBean:
package SpringJDBCSupport.ReadData;
import com.mysql.jdbc.Driver;
public class Person ...{
private String name;
private String password;
private String address;
public Person()...{
}
public Person(String name,String password,String address)...{
this.name=name;
this.password=password;
this.address=address;
}
public String getAddress() ...{
return address;
}
public void setAddress(String address) ...{
this.address = address;
}
public String getName() ...{
return name;
}
public void setName(String name) ...{
this.name = name;
}
public String getPassword() ...{
return password;
}
public void setPassword(String password) ...{
this.password = password;
}
public String toString()...{
return this.getName()+"-"+this.getPassword()+"-"+this.getAddress();
}
}
DAO:
其中getPersonByRowCallbackHandler方法根据username获得person对象
package SpringJDBCSupport.ReadData;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import java.util.List;
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowCallbackHandler;
public class PersonDAO ...{
private JdbcTemplate jdbcTemplate;
public JdbcTemplate getJdbcTemplate() ...{
return jdbcTemplate;
}
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) ...{
this.jdbcTemplate = jdbcTemplate;
}
public int insertPersonUseUpdate(Person person)...{
String sql="insert into login values(?,?,?)";
Object[] params=new Object[]...{
person.getName(),
person.getPassword(),
person.getAddress()
};
return this.getJdbcTemplate().update(sql,params);
}
public int insertPersonUseExecute(Person person)...{
String sql="insert into login values(?,?,?)";
Object[] params=new Object[]...{
person.getName(),
person.getPassword(),
person.getAddress()
};
int[] types=new int[]...{
Types.VARCHAR,
Types.VARCHAR,
Types.VARCHAR
};
return this.getJdbcTemplate().update(sql,params,types);
}
public int[] updatePersonUseBatchUpdate( final List persons)...{
String sql="insert into login values(?,?,?)";
BatchPreparedStatementSetter setter=null;
setter=new BatchPreparedStatementSetter()...{
public int getBatchSize()...{
return persons.size();
}
public void setValues(PreparedStatement ps,int index) throws SQLException...{
Person person=(Person)persons.get(index);
ps.setString(1,person.getName());
ps.setString(2,person.getPassword());
ps.setString(3,person.getAddress());
}
};
return this.getJdbcTemplate().batchUpdate(sql,setter);
}
public Person getPersonByRowCallbackHandler(String username)...{
String sql="select * from login where username=?";
final Person person=new Person();
final Object params[]=new Object[]...{username};
this.getJdbcTemplate().query(sql,params,new RowCallbackHandler()...{
public void processRow(ResultSet rs)throws SQLException...{
person.setName(rs.getString("username"));
person.setPassword(rs.getString("passwd"));
person.setAddress(rs.getString("address"));
}
});
return person;
}
}
测试代码:
package SpringJDBCSupport.ReadData;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.FileSystemResource;
public class TestJDBCTemplate ...{
public static String filePath="";
public static BeanFactory factory=null;
public static void main(String[] args) ...{
filePath=System.getProperty("user.dir")+File.separator+"SpringJDBCSupport"+File.separator+"ReadData"+File.separator+"hello.xml";
factory=new XmlBeanFactory(new FileSystemResource(filePath));
PersonDAO personDAO=(PersonDAO)factory.getBean("personDAO");
/**//*
* 准备数据
*/
Person p1=new Person("test1","test1","test1");
Person p2=new Person("test2","test2","test2");
Person p3=new Person("test3","test3","test3");
Person p4=new Person("test4","test4","test4");
Person p5=new Person("test5","test5","test5");
List persons=new ArrayList();
persons.add(p3);
persons.add(p4);
persons.add(p5);
//使用jdbcTemplate.update方式
// personDAO.insertPersonUseUpdate(p1);
//使用jdbcTemplate.execute方式
// personDAO.insertPersonUseExecute(p2);
// //使用jdbcTemplate批处理方式
// personDAO.updatePersonUseBatchUpdate(persons);
//使用RowCallbackHandler执行一次查询,并打印person信息
System.out.println(personDAO.getPersonByRowCallbackHandler("test1"));
}
}
运行结果:
test1-test1-test1
分享到:
相关推荐
Spring Boot和Spring JDBC模板该项目演示了Spring Boot使用JDBC模板与MySQL数据库进行通信。 博客文章: :
2. Spring Data Elasticsearch:展示了基本文本搜索、地理空间搜索和分面搜索的示例。使用了High Level REST Client作为模板和仓库的后端。 - example:展示了使用基本文本搜索、地理空间搜索和分面搜索的示例。 -...
首先, 我需要在你心里建立起 Spring MVC 的基本概念. 基于 Spring 的 Web 应用程序接收到 http://localhost:8080/hello.do(事实上请求路径是 /hello.do) 的请求后, Spring 将这个请求交给一个名为 helloController ...
11.2. 利用JDBC核心类实现JDBC的基本操作和错误处理 11.2.1. JdbcTemplate类 11.2.2. NamedParameterJdbcTemplate类 11.2.3. SimpleJdbcTemplate类 11.2.4. DataSource接口 11.2.5. SQLExceptionTranslator接口...
11.2. 利用JDBC核心类实现JDBC的基本操作和错误处理 11.2.1. JdbcTemplate类 11.2.2. NamedParameterJdbcTemplate类 11.2.3. SimpleJdbcTemplate类 11.2.4. DataSource接口 11.2.5. SQLExceptionTranslator接口 ...
11.2. 利用JDBC核心类控制JDBC的基本操作和错误处理 11.2.1. JdbcTemplate类 11.2.2. NamedParameterJdbcTemplate类 11.2.3. SimpleJdbcTemplate类 11.2.4. DataSource接口 11.2.5. SQLExceptionTranslator接口...
11.2. 利用JDBC核心类控制JDBC的基本操作和错误处理 11.2.1. JdbcTemplate类 11.2.2. NamedParameterJdbcTemplate类 11.2.3. SimpleJdbcTemplate类 11.2.4. DataSource接口 11.2.5. SQLExceptionTranslator接口...
11.2. 利用JDBC核心类实现JDBC的基本操作和错误处理 11.2.1. JdbcTemplate类 11.2.2. NamedParameterJdbcTemplate类 11.2.3. SimpleJdbcTemplate类 11.2.4. DataSource接口 11.2.5. SQLExceptionTranslator接口...
在带有Hibernate的MySql上进行CRUD操作以及对jdbc查询的注释示例 将Dispatcher Servlet与web.xml一起设置的最佳实践。 配置Spring Security并创建经过身份验证的页面,例如“登录”页面和“管理页面” 。 用于在...
#spring.datasource.url =jdbc:mysql://localhost:3306/springboot?serverTimezone=UTC #spring.datasource.username =root #spring.datasource.password =123456 #spring.datasource.driver-class-name =...
Spring学习笔记 这是一个Spring框架应用示例...主要是避免重复的代码,本例中我们使用的是通过JDBC访问数据库这样的示例。 2. 关于Spring Bean 在基于Spring的应用中,我们的应用对象生存于Spring容器(Container)中
依赖少:仅仅依赖 Mybatis 以及 Mybatis-Spring,损耗小:启动即会自动注入基本CURD,性能基本无损耗,直接面向对象操作,通用CRUD操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD ...
java-数据库访问 以下是使用 java 技术连接到数据库的...================ JDBCSpringTemplateExample - 使用 Spring Framework 模板来简化使用 JDBC 的数据访问的示例 JDBC-example - 使用纯 JDBC 连接到数据库的示例
:spring-boot-web 简单Demo 跳转jsp页面 jsp页面引用Vue.js一些基本操作 :springboot+jsp+外部tomcat+引用外部jar包 打包成war包 :springboot 结合 Thymeleaf Thymeleaf 模板引擎国际化操作 :springboot 结合 ...
使用Spring JDBC初始化数据库 iv. 68.4. 初始化Spring Batch数据库 v. 68.5. 使用一个高级别的数据迁移工具 i. 68.5.1. 启动时执行Flyway数据库迁移 ii. 68.5.2. 启动时执行Liquibase数据库迁移 viii. 69. 批处理...
该示例程序将基于mybatis的spring-boot生成一个项目maven项目,其中包含基本的CURD操作代码。 步骤1:将该工具项目导入到IDE(Intellij IDEA或Eclipse)中 步骤2:修改配置文件src/main/resources/config.properti
webChat基于layim 3.x的web聊天系统,采用Java技术 WebSocket+mysql,利用spring mvc框架+MyBatis实现注意:由于layim非开源,故本项目中移除该部分功能,无法导入直接运行。需要将layui文件夹拷贝到/webapp/js/目录...
rapid-framework是一个以spring为核心的项目脚手架(或者称为胶水框架),框架将各个零散的框架(struts,strust2,springmvc,hibernate,ibatis,spring_jdbc,flex)搭建好,并内置一个代码生成器,辅助项目开发,可以生成...
微信公众号管理平台,除实现官网后台自动回复、菜单管理、素材管理、用户管理、消息群发等基础功能外,还有二维码推广、营销活动、微网站、会员卡、优惠券等。 > zheng-wechat-app 微信小程序后台 ## 环境搭建...
主要为大家详细介绍了SpringBoot实现发送邮件任务,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下