博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring学习笔记之六(数据源的配置)
阅读量:5778 次
发布时间:2019-06-18

本文共 3907 字,大约阅读时间需要 13 分钟。

 

 1.前言

上一篇博客分析了,Spring中实现AOP的两种动态代理的机制,以下这篇博客。来解说一下Spring中的数据源的配置。

 2.DAO支持的模板类

Spring提供了非常多关于Dao支持的模板类,比如HibernateTemplate、JdbcTemplate等,以下以后者为例。来看一个Demo

package com.test;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.jdbc.datasource.DriverManagerDataSource;public class JDBCTest {	public static void main(String[] args) {		//创建一个DataSource的对象,封装数据库连接的信息		DriverManagerDataSource dataSource=new DriverManagerDataSource();				//为其指定连接数据库的信息		dataSource.setDriverClassName("com.mysql.jdbc.Driver");		dataSource.setUrl("jdbc:mysql://localhost:3306/test");		dataSource.setUsername("root");		dataSource.setPassword("");				//使用模板类,必须先有一个模板类的对象,必须为其提供数据库相关的连接信息		JdbcTemplate template=new JdbcTemplate(dataSource);		//运行操作		template.execute("insert into news_title values('54','54','354','6345')");	}}

 3.数据源配置

上面则仅仅是简单的利用了一个JDBCTemplate。而在Spring中为我们提供了非常多Dao的模板类,例JdbcTemplate、HibernateTemplate、SqlMapClientTemplate(过时)、JpaTemplate (过时)等,以下以JdbcDaoSupport为例,来看一下详细的数据源的配置。

IDAO配置

IDAO是底层的接口类,提供了数据訪问的功能

package cn.itast.tx.account;public interface AccountDao {	public void inMoney(String in,Double money);	public void outMoney(String out,Double money);}

DAO实现了IDAO,封装了详细的数据訪问的功能

package cn.itast.template.jdbc;import java.sql.ResultSet;import java.sql.SQLException;import java.util.List;import org.springframework.jdbc.core.RowMapper;import org.springframework.jdbc.core.support.JdbcDaoSupport;import cn.itast.template.jdbc.vo.UserModel;public class UserDaoImpl extends JdbcDaoSupport{	/*	//继承了DAO支持抽象类后。将自己主动为其提供注入的方法	//能够为其注入模板对象也能够为其注入数据源	private JdbcTemplate jdbcTemplate;	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {		this.jdbcTemplate = jdbcTemplate;	}	*/	public void add(UserModel um){		//String sql = "insert into tbl_user values(null,'"+um.getUserName()+"',"+um.getAge()+")";		//获取模板对象的方法 this.getJdbcTemplate()		//this.getJdbcTemplate().execute(sql);		String sql = "insert into tbl_user values(null,?,?)";		this.getJdbcTemplate().update(sql, um.getUserName(),um.getAge());	}	public void delete(UserModel um){		String sql = "delete from tbl_user where uuid = "+um.getUuid();		this.getJdbcTemplate().execute(sql);	}	public void update(UserModel um){		//String sql = "update tbl_user set userName = '"+um.getUserName()+"' ,age = "+um.getAge()+" where uuid = "+um.getUuid();		//this.getJdbcTemplate().execute(sql);		String sql = "update tbl_user set userName= ?

, age= ?

where uuid = ?

"; this.getJdbcTemplate().update(sql, um.getUserName(),um.getAge(),um.getUuid()); } public String getNameByUuid(Long uuid){ String sql = "select userName from tbl_user where uuid = ?"; return this.getJdbcTemplate().queryForObject(sql, String.class, uuid); } public Long getCount(){ String sql = "select count(uuid) from tbl_user"; return this.getJdbcTemplate().queryForLong(sql); } public UserModel get(Long uuid){ String sql = "select * from tbl_user where uuid = ?"; RowMapper<UserModel> rm = new RowMapper<UserModel>() { public UserModel mapRow(ResultSet rs, int rowNum)throws SQLException { UserModel um = new UserModel(); um.setUuid(rs.getLong("uuid")); um.setUserName(rs.getString("userName")); um.setAge(rs.getInt("age")); return um; } }; return this.getJdbcTemplate().queryForObject(sql,rm,uuid); } public List<UserModel> getAll(){ String sql = "select * from tbl_user"; RowMapper<UserModel> rm = new RowMapper<UserModel>() { public UserModel mapRow(ResultSet rs, int rowNum)throws SQLException { UserModel um = new UserModel(); um.setUuid(rs.getLong("uuid")); um.setUserName(rs.getString("userName")); um.setAge(rs.getInt("age")); return um; } }; return this.getJdbcTemplate().query(sql, rm); } } </span>

详细的数据源的注入

因为JdbcDaoSupport须要DataSource的注入

分析:上述仅仅是一个简单的数据源的注入,Spring为我们提供了非常多。可是全部的配置方式都是一致的。

转载地址:http://ihkyx.baihongyu.com/

你可能感兴趣的文章
【和小强学移动app测试3】adb命令使用汇总(持续更新)
查看>>
msdb数据库里的表究竟存储什么信息
查看>>
创建动态组-以OU为单位
查看>>
VS2012 编译程序时报无法载入PDB文件错误解决方式
查看>>
C random C ++rand函数应用
查看>>
Ubuntu9.04更新源
查看>>
ComboBox控件
查看>>
document.querySelector和querySelectorAll方法
查看>>
两个有序数组的中位数
查看>>
什么是家?
查看>>
iOS应用程序多语言本地化解决方案
查看>>
使用SQLCMD在SQLServer执行多个脚本
查看>>
Sql Server系列:聚合函数
查看>>
careercup-栈与队列 3.4
查看>>
Linux学习(一):linux更改ip地址命令_更改DNS_更改默认网关_更改子网掩码_主机名...
查看>>
111
查看>>
最简单的视音频播放示例4:Direct3D播放RGB(通过Texture)
查看>>
PLSQL_基础系列06_判断操作NVL / NULLIF / COALESCE / NVL2(案例)
查看>>
C#软件监控外部程序运行状态
查看>>
使用 WorkflowIdentity 和版本控制
查看>>