Spring框架的JDBCTemplate

package com.ghgj.Druid;

import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;

public class JDBCTemplate {
public static void main(String[] args) {
//增删该只需要用到update()这个方法就行,不需要是放,也不需要连接,连接在数据库连接池已经帮我们做好啦
JdbcTemplate template=new JdbcTemplate(DruidUtiles.getdataSource());
/template.update(“insert into t_testuser values(null,?,?)”,“小二”,“xiaoyi”);/

	//查询
	/*
	 * template.query查询到的是一个list集合,但是我们要把它存到User对象里面去
	 * 用到new BeanPropertyRowMapper<User>来做到关系映射
	 * 这里需要创建一个User类来装,把list集合存放到User对象里面去,方便在本类中使用到数据时,就可以直接从user对象中拿
	 * 把一条条记录映射到一个个对象去
	 * 这时list集合里面存放的就是一个个对象
	 */
	/*List<User> query = template.query("select * from t_testuser",new BeanPropertyRowMapper<User>(User.class));
	System.out.println(query);*/
	
	/*
	 * queryForList()方法使用
	 * list里面装的是一个个Map集合
	 */
/*	List<Map<String,Object>> list = template.queryForList("select * from t_testuser");
	for (Map<String, Object> map : list) {
		Set<Entry<String,Object>> entry= map.entrySet();
		for (Entry<String, Object> entry2 : entry) {
			System.out.println(entry2.getKey()+"===="+entry2.getValue());
		}
	}*/
	//只能查询一个键值对,单条数据
	Map<String, Object> map = template.queryForMap("select * from t_testuser where id=?",4);
	System.out.println(map.get("id"));
	System.out.println(map.get("t_username"));
	System.out.println(map.get("t_password"));
}

}
//注意,JdbcTemplate template=new JdbcTemplate(DruidUtiles.getdataSource());这里面需要一个数据库连接池,他来帮我们实现自动连接功能.所以需要创建一个JDBCUtils工具类。
package com.ghgj.Druid;

import java.io.IOException;
import java.sql.Connection;
import java.util.Properties;

import javax.sql.DataSource;

import com.alibaba.druid.pool.DruidDataSourceFactory;

public class DruidUtiles {
/*
* 抽取Druid的工具类
*/
private static DataSource dataSource;
static{
Properties properties=new Properties();
try {
properties.load(DruidUtiles.class.getClassLoader().getResourceAsStream(“druid.properties”));
dataSource = DruidDataSourceFactory.createDataSource(properties);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
public static DataSource getdataSource(){
return dataSource;//对外提供一个数据库连接池
}
}

SpringJDBC思想是:类中的字段名必须和数据库中的表的列名是相同的,因为用到new BeanPropertyRowMapper来做到关系映射。Spring只会通过列明来找set方法,例如表的列名是:password,那么就要通过getPassword来找到对应关系,而且Spring是通过空参构造来拿到对象的,通过反射拿到类的对象,所以必须提供空参构造。

发布了19 篇原创文章 · 获赞 0 · 访问量 401

猜你喜欢

转载自blog.csdn.net/weixin_45014243/article/details/102996580