Spring3学习笔记(7)-java装配数据库连接

12 篇文章 0 订阅
4 篇文章 0 订阅

本节目的:

1. 原理介绍

2. 实例

-------------------------------------------------------分割线------------------------------------------------

1.原理介绍:

(1)在这里重点介绍一个DriverManagerDataSource类,该类主要就是装配数据库基本配置,里面有属性:

DriverClassName/Url/username/password 关于这四个属性介绍,参见前面mysql数据库连接实例。

(2)再者使用的就是关于java自动装配过程,参见前面-spring学习笔记(4)

2. 实介绍 

(1)创建mysql数据库test,建立表tb_user

(2)java装配基本配置


import java.sql.SQLException;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

@Configuration
public class DBConfig {

	@Bean(name="TestMysql")
	public JdbcTemplate getMysqlTemplate() throws SQLException{
		
		DriverManagerDataSource source = new DriverManagerDataSource();
		source.setDriverClassName("com.mysql.jdbc.Driver");
		source.setUrl("jdbc:mysql://localhost:3306/test");
		source.setUsername("root");
		source.setPassword("root");
		return new JdbcTemplate(source);
		
	}
	
}

(3)测试执行sql语句

public class TestSQl {
	@Test
	public void Testsql(){
		
		@SuppressWarnings("resource")
		AnnotationConfigApplicationContext ct = new AnnotationConfigApplicationContext(DBConfig.class);
		JdbcTemplate jdbcTemplate =  (JdbcTemplate) ct.getBean("TestMysql");
		
		
		String sql = "select * from  tb_user";
		
		
		 final List<Result> results = new ArrayList<Result>();//在内部匿名类中使用
		    jdbcTemplate.query(sql, new RowCallbackHandler() {
		         
		        @Override
		        public void processRow(ResultSet rs) throws SQLException {
		            // TODO Auto-generated method stub
		           Result result = new Result();
		            result.setUsername(rs.getString("username"));
		            result.setPassword(rs.getString("password"));
		            result.setEmail(rs.getString("email"));
		           
		            results.add(result);
		        }
		    });
		  for (int i = 0; i < results.size(); i++) {
			System.out.println(results.get(i).getUsername()  + ", " + results.get(i).getPassword());
		}
		
	} 

当中涉及的Result类:

public class Result {
	
	private String username;
	private String password;
	private String sex;
	private String question;
	private String answer;
	private String email;
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getQuestion() {
		return question;
	}
	public void setQuestion(String question) {
		this.question = question;
	}
	public String getAnswer() {
		return answer;
	}
	public void setAnswer(String answer) {
		this.answer = answer;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
}

执行结果:


  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值