jdbc 模板基本操作的基本步骤:
1 数据库连接,返回全局使用的datasorce;
2 jdbc模板建立,全局使用,依赖database;
3自定义dao,对应一个配置文件(jdbcTemplate 属性 ) 依赖 jdbc模板。
4 控制通过 getBean对像得到jdbcTemplate.
user表
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int(15) | NO | PRI | NULL | auto_increment |
| name | varchar(15) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
Insert:
import org.springframework.jdbc.core.support.JdbcDaoSupport;
public class TestDAOjdbc extends JdbcDaoSupport{
String tableName="user";
String sql = "insert into " + tableName+"(name)"+ "values(?)";
JdbcTemplate jt=getJdbcTemplate();
jt.update(sql,
new PreparedStatementSetter(){
public void setValues(PreparedStatement ps) throws SQLException{
ps.setString(1,"coco");
}
}
);
//删除
public void deldb(){
JdbcTemplate jt=getJdbcTemplate();
String sql="DELETE FROM user WHERE id=?";
jt.update(sql, new PreparedStatementSetter(){
public void setValues(PreparedStatement ps)throws SQLException{
ps.setInt(1,5);
}
});
}
//查询数据库多少行 信息 --使用queryForInt()方法传回user表格中的数据数目
public int getCount(){
JdbcTemplate jt=getJdbcTemplate();
String sql="select count(*)from user";
int count=jt.queryForInt(sql);
return count;
}
//查询指定名字信息--使用queryForObject()传回一个查询后的结果对象,例如传回一个String对象
public String getName(){
JdbcTemplate jt=getJdbcTemplate();
String sql="select name from user where id=10";
String name=(String)jt.queryForObject(sql, java.lang.String.class);
return name;
}
//将查询的多项数据信息填写到user Bean中
public List findUser(){
JdbcTemplate jt=getJdbcTemplate();
String sql="select * from user";
List list=jt.queryForList(sql);
List<user> userlist=new ArrayList<user>();
Iterator it=list.iterator();
while(it.hasNext()){
user uinfo=new user();
Map map=(Map)it.next();
uinfo.setId((Integer)map.get("id"));
uinfo.setName((String)map.get("name"));
userlist.add(uinfo);
}
return userlist;
}
//在查询到数据之后先作一些处理再传回,在RowCallback-Handler的processRow()方法中实现简单的ORM动作
//ORM--Object-Relational Mapping
//用new Object[]{id}代替 new PreparedStatementSetter()
public user find(Integer id){
final user user=new user();
final int iid=id;
JdbcTemplate jt=getJdbcTemplate();
String sql="select * from user where id = ?";
jt.query(sql,
// new PreparedStatementSetter(){
// public void setValues(PreparedStatement ps)throws SQLException{
// ps.setInt(1, iid);
//}}
new Object[]{id}
,new RowCallbackHandler(){
public void processRow(ResultSet rs)throws SQLException{
user.setId(new Integer(rs.getInt("id")));
user.setName(rs.getString("name"));
}
});
return user;
}
Select:
String sql = "select * from " + tableName + " where cpermissionid=? and ipproleid=?";
Object[] values = new Object[] { permissionID,pproleType };
List list = this.getJdbcTemplate().query(sql, values,
new BaseRowMapper(M2PpuserPermission.class));
return (list == null || list.size() == 0 ? null : (M2PpuserPermission) list
.get(0));
public final class BaseRowMapper implements RowMapper {
private Class cls;
/**//**
* @param dao
*/
public BaseRowMapper(Class cls) {
this.cls = cls;
}
public Object mapRow(ResultSet rs, int row) throws SQLException {
if (rs != null) {
return RSUtil.toBean(rs, cls);
} else {
return null;
}
}
}
批量更新:
final Object[] propValue = getColumnPropValue(domain);
final Object[] propName = getColumnPropName();
String INSERTPROPSQL = "insert into M_COMMON_COLUMN_PROP "
+ " (icolumnid, cpropname, cpropvalue) values(?,?,?)";
getJdbcTemplate().batchUpdate(INSERTPROPSQL,
new BatchPreparedStatementSetter() {
public int getBatchSize() {
return propName.length;
}
public void setValues(PreparedStatement ps, int i)
throws SQLException {
ps.setInt(1, id);
ps.setString(2, propName[i].toString());
ps.setString(3, propValue[i].toString());
}
});
Clob/Blob:
/**//**
* @author YunHongTao
*/
public class ExampleSpringLobDao extends JdbcDaoSupport {
/**//**
* Comment for <code>lobHandler</code>
* 处理blob、clob字段的对象 提供了方便的处理方法 一定要先初始化
* 在配置文件可以如下指定
* <bean id="nativeJdbcExtractor"
* class="org.springframework.jdbc.support.nativejdbc.WebLogicNativeJdbcExtractor" lazy-init="true"/>
* <bean id="oracleLobHandler"
* class="org.springframework.jdbc.support.lob.OracleLobHandler" lazy-init="true">
* <property name="nativeJdbcExtractor"><ref local="nativeJdbcExtractor"/></property>
* </bean>
* <bean id="ExampleSpringLobDao" class="test.ExampleSpringLobDao">
* <property name="dataSource">
* <ref local="dataSource"/>
* </property>
* <property name="lobHandler">
* <ref bean="oracleLobHandler"/>
* </property>
* </bean>
*/
private LobHandler lobHandler;
private String text = "萨克雷发动机三卡领导及罚款司机阿东风口浪尖萨克路灯风纪扣拉萨定界符可滤色镜阿斗罚款滤色镜打伏击送达可分离\n"
+ "萨雷队交锋拉开三角枫框架萨克路风机司克拉风纪扣拉萨定界符可立即撒风口浪尖送达风\n"
+ "口浪尖斯大林咖啡碱四克拉定界符可怜三大件罚款来三大件分厘卡三大件罚款拉萨定界符\n";
/**//**插入clob字段的方法示例
* @param id
* @param name
* @param text
* @throws DataAccessException
*/
public void insertClob(final int id, final String name, final String text)
throws DataAccessException {
getJdbcTemplate().execute(
"INSERT INTO yuntest (id,name,text) VALUES (?, ?, ?)",
new AbstractLobCreatingPreparedStatementCallback(
this.lobHandler) {
protected void setValues(PreparedStatement ps,
LobCreator lobCreator) throws SQLException {
ps.setInt(1, id);
ps.setString(2, name);
lobCreator.setClobAsString(ps, 3, text);
}
});
}
/**//**更新clob字段的方法示例
* @param name
* @param text
* @param id
* @throws DataAccessException
*/
public void updateClob(final String name, final String text, final int id)
throws DataAccessException {
getJdbcTemplate().execute(
"UPDATE yuntest set name=?,text=? where id=?",
new AbstractLobCreatingPreparedStatementCallback(
this.lobHandler) {
protected void setValues(PreparedStatement ps,
LobCreator lobCreator) throws SQLException {
ps.setString(1, name);
lobCreator.setClobAsString(ps, 2, text);
ps.setInt(3, id);
}
});
}
/**//**查询clob字段的方法示例
* @return
* @throws DataAccessException
*/
public List getClob() throws DataAccessException {
return getJdbcTemplate().query(
"SELECT id,name,text FROM yuntest where id=? ",
new Object[] { new Integer(999999) }, new RowMapper() {
public Object mapRow(ResultSet rs, int rowNum)
throws SQLException {
int id = rs.getInt(1);
String name = rs.getString(2);
String text = lobHandler.getClobAsString(rs, 3);
YunTestBean vo = new YunTestBean();
vo.setId(id);
vo.setName(name);
vo.setText(text);
return vo;
}
});
}
public void deleteClob() {
String sql = "delete from yuntest where id = 999999";
getJdbcTemplate().execute(sql);
}
/**//**
* @return Returns the lobHandler.
*/
public LobHandler getLobHandler() {
return lobHandler;
}
/**//**
* @param lobHandler
* The lobHandler to set.
*/
public void setLobHandler(LobHandler lobHandler) {
this.lobHandler = lobHandler;
}
}
转至:http://blog.163.com/circle_man/blog/static/5060561020071026863490/
分享到:
相关推荐
2. Spring Data Elasticsearch:展示了基本文本搜索、地理空间搜索和分面搜索的示例。使用了High Level REST Client作为模板和仓库的后端。 - example:展示了使用基本文本搜索、地理空间搜索和分面搜索的示例。 -...
Spring Boot和Spring JDBC模板该项目演示了Spring Boot使用JDBC模板与MySQL数据库进行通信。 博客文章: :
首先, 我需要在你心里建立起 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接口...
Hello Spring Boot 示例、使用热部署、添加REST支持 2018-2018030802:02-ch02-aop 第二章《Spring Boot 基础》学习源码 在 Spring Boot 中使用 AOP 2018-2018030901:03-ch03-mvc 第三章《MVC 框架》学习源码 ...
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)中
: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. 批处理...
java-数据库访问 以下是使用 java 技术连接到数据库的...================ JDBCSpringTemplateExample - 使用 Spring Framework 模板来简化使用 JDBC 的数据访问的示例 JDBC-example - 使用纯 JDBC 连接到数据库的示例
该示例程序将基于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/目录...
├── zheng-admin -- 后台管理模板 ├── zheng-ui -- 前台thymeleaf模板[端口:1000] ├── zheng-config -- 配置中心[端口:1001] ├── zheng-upms -- 用户权限管理系统 | ├── zheng-upms-common -- upms...
rapid-framework是一个以spring为核心的项目脚手架(或者称为胶水框架),框架将各个零散的框架(struts,strust2,springmvc,hibernate,ibatis,spring_jdbc,flex)搭建好,并内置一个代码生成器,辅助项目开发,可以生成...
主要为大家详细介绍了SpringBoot实现发送邮件任务,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下