012_JDBC模板

一. Spring的JDBC的模板

1. Spring对持久层也提供了解决方案: ORM模块和JDBC的模板。

2. Spring提供了很多的模板用于简化开发:

3. Spring的JDBC模板的jar包:

. Spring的JDBC的模板简单使用例子

1. 新建一个名为SpringJdbc的Java工程, 同时拷入相关jar包

2. 创建SpringJdbc.java 

package com.lywgames.springjdbc;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

public class SpringJdbc {
	public static void main(String[] args) {
		// 创建连接池
		DriverManagerDataSource dataSource = new DriverManagerDataSource();
		dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
		dataSource.setUrl("jdbc:mysql://192.168.25.138:3306/studyjdbc?useSSL=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai");
		dataSource.setUsername("root");
		dataSource.setPassword("lyw123456");
		// 创建jdbc模板
		JdbcTemplate jdbcTemplate = new JdbcTemplate();
		jdbcTemplate.setDataSource(dataSource);
		Long count = jdbcTemplate.queryForObject("select count(*) from user", Long.class);
		System.out.println("count = " + count);
	}
}

3. 查看user表

4. 运行项目

. Spring的JDBC的模板属性注入方式例子

1. 新建一个名为SpringJdbcProperty的Java工程, 同时拷入相关jar包

2. 创建User.java

package com.lywgames.springjdbc;

import java.io.Serializable;
import java.sql.Timestamp;

public class User implements Serializable {
	private static final long serialVersionUID = 1L;

	private Integer id;
	private String username;
	private String password;
	private Timestamp registertime;

	public User() {
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	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 Timestamp getRegistertime() {
		return registertime;
	}

	public void setRegistertime(Timestamp registertime) {
		this.registertime = registertime;
	}

	@Override
	public String toString() {
		return "id=" + id + ",username=" + username + ",password=" + password + ",registertime=" + registertime;
	}

}

3. 创建SpringJdbc.java

package com.lywgames.springjdbc;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import javax.annotation.Resource;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

/**
 * Spring单元测试, 还必须引入aop模块
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class SpringJdbc {
	// 注入Jdbc模板属性
	@Resource(name = "jdbcTemplate")
	private JdbcTemplate jdbcTemplate;
	
	@Test
	public void getAdminUserList() {
		List<User> list = jdbcTemplate.query("select * from user", new MyRowMapper());
		for (User user : list) {
			System.out.println(user);
		}
	}
	
	public static void main(String[] args) {
		ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
		JdbcTemplate jdbcTemplate = context.getBean(JdbcTemplate.class);
		User user = jdbcTemplate.queryForObject("select * from user where id=?", new MyRowMapper(), 1000);
		System.out.println(user);
		context.close();
	}
	
}

class MyRowMapper implements RowMapper<User>{
	@Override
	public User mapRow(ResultSet rs, int rowNum) throws SQLException {
		User account = new User();
		account.setId(rs.getInt("id"));
		account.setUsername(rs.getString("username"));
		account.setPassword(rs.getString("password"));
		account.setRegistertime(rs.getTimestamp("registertime"));
		return account;
	}
}

4. 在src目录下创建jdbc.properties数据库连接配置文件

5. 在src目录下创建applicationContext.xml

6. 引入JUnit

7. 运行项目

8. JUnit运行项目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值