您当前的位置: 首页 >  数据库

Charge8

暂无认证

  • 0浏览

    0关注

    447博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Spring使用JdbcTemplate访问数据库

Charge8 发布时间:2018-08-26 13:25:33 ,浏览量:0

       Spring JDBC是Spring所提供的持久层技术,它的主要目的降低JDBC API的使用难度,以一种更直接、更简洁的方式使用JDBC API。

       Spring JDBC中,仅仅需要做那些和业务相关的DML操作的事儿而将获取资源、Statement创建、释放资源以及异常处理等繁杂乏味的工作交给Spring JDBC.

一、导入简单使用 JdbcTemplate

1. 导包 


    org.springframework
    spring-jdbc
    5.0.8.RELEASE



    org.springframework
    spring-tx
    5.0.8.RELEASE

2. 核心配置文件 applicationContext.xml

   db.properties

jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test_spring5?useUnicode=true&characterEncoding=utf8&useSSL=true
jdbc.user=root
jdbc.password=123456


c3p0.initialPoolSize=5
c3p0.acquireIncrement=5
c3p0.maxPoolSize=20
c3p0.minPoolSize=5
c3p0.maxStatements=200
c3p0.maxStatementsPerConnection=5

applicationContext.xml 



	
	
	
	
	
	
	
		
		
		
		
		
		
		
		
		
		
		
	

	
	
		
	
	

 

3. 测试类

jdbcTemplate对象的调用方法查看

 

 1) 增删改 都使用 update 方法

        @Test
	public void test() throws SQLException {
		// 1.初始化ioc容器(装对象的容器)
		ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
	
		//2. 获取jdbcTemplate对象
		JdbcTemplate jdbcTemplate = (JdbcTemplate) context.getBean("jdbcTemplate");
		//增删改
		String sql = "insert into t_user(username,password) values(?,?)";
		jdbcTemplate.update(sql, "lisi","lisi123");

		String sql2 = "update t_user set password=? where id=?";
		jdbcTemplate.update(sql2, "123456",3);

		String sql3 = "delete from t_user where id=3";
		jdbcTemplate.update(sql3);

}

2) 查询一条数据, 返回值为对应对象的集合

        @Test
	public void test() throws SQLException {
		// 1.初始化ioc容器(装对象的容器)
		ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
	
		//2. 获取jdbcTemplate对象
		JdbcTemplate jdbcTemplate = (JdbcTemplate) context.getBean("jdbcTemplate");
				
		String sql = "select * from t_user where id=?";
		RowMapper rowMapper = new BeanPropertyRowMapper(User.class);
		User user = jdbcTemplate.queryForObject(sql, rowMapper,1);
		System.out.println(user);
}

3)查询多条数据,返回值为map的集合

        @Test
	public void test() throws SQLException {
		// 1.初始化ioc容器(装对象的容器)
		ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
	
		//2. 获取jdbcTemplate对象
		JdbcTemplate jdbcTemplate = (JdbcTemplate) context.getBean("jdbcTemplate");
		
		//查询多条数据, 
		String sql = "select * from t_user where id>?";
		RowMapper rowMapper = new BeanPropertyRowMapper(User.class);
		//List userlist = jdbcTemplate.query(sql,rowMapper,0); //自动映射成对象List集合
		List userlist = jdbcTemplate.queryForList(sql,0);//自动映射成多个Map对象
		System.out.println(userlist);//[{id=1, username=admin, password=admin123}, {id=2, username=lisi, password=lisi123}]

		//自动映射成单个Map对象, 多个会报错
		String sql2 = "select * from t_user where id=?";
		Map usermap = jdbcTemplate.queryForMap(sql2,1);
		System.out.println(usermap);//{id=1, username=admin, password=admin123}
)

4) 查询一个值,如:某列的一个值,总条数

	@Test
	public void test() throws SQLException {
		// 1.初始化ioc容器(装对象的容器)
		ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
	
		//2. 获取jdbcTemplate对象
		JdbcTemplate jdbcTemplate = (JdbcTemplate) context.getBean("jdbcTemplate");
		
		//查询一个值,如:某列的一个值,总条数
		String sql = "select count(id) from t_user";
		Long count = jdbcTemplate.queryForObject(sql, Long.class); //返回值类型的大CLass
		System.out.println(count);  //2
	}

 

二, 项目中使用

     Dao 类中 注入 jdbcTemplate, 或者 写一个util类 提供static方法,通过类名.方法名访问,

@Repository("userDao")
public class UserDaoImpl implements UserDao{
	@Autowired
	private JdbcTemplate jdbcTemplate;

	public User getUser(int id) {
		String sql = "select * from t_user where id=?";
		RowMapper rowMapper = new BeanPropertyRowMapper(User.class);
		User user = jdbcTemplate.queryForObject(sql, rowMapper,id);
		return user;
	}
}

      测试类 访问DAO类

	@Test
	public void test() throws SQLException {
		// 1.初始化ioc容器(装对象的容器)
		ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
	
		UserDao userDao = (UserDao) context.getBean("userDao");
		User user = userDao.getUser(1);
		System.out.println(user);//User [id=1, username=admin, password=admin123]
	}

 

     参考文章: https://blog.csdn.net/yangshangwei/article/details/78119011?locationNum=1&fps=1

 

ends ~

关注
打赏
1664721914
查看更多评论
立即登录/注册

微信扫码登录

0.0377s