spring jdbcTemplate类的基本配置及常规用法
1, 引入对应jar包 如下:
2, applicationContext.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 配置数据源 --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <!--数据库驱动--> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <!--连接数据库的url--> <property name= "url" value="jdbc:mysql://localhost/zhuangzi" /> <!--连接数据库的用户名--> <property name="username" value="root" /> <!--连接数据库的密码--> <property name="password" value="root" /> </bean> <!--配置JDBC模板--> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <!--默认必须使用数据源--> <property name="dataSource" ref="dataSource"/> </bean> <!--使用context命名空间,通知spring扫描指定目录,进行注解的解析--> <!-- <context:component-scan base-package="com.ioc"/>--> </beans>
3, 基础实体类Student
package com.ioc; public class Student { private int id; private String names; private String sex; private String blood; private String hobby; private String intro; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getNames() { return names; } public void setNames(String names) { this.names = names; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getBlood() { return blood; } public void setBlood(String blood) { this.blood = blood; } public String getHobby() { return hobby; } public void setHobby(String hobby) { this.hobby = hobby; } public String getIntro() { return intro; } public void setIntro(String intro) { this.intro = intro; } }
4. jdbcTemplate的常规用法:
public class JdbcTemplateTest { @Test public void test(){ // 定义Spring配置文件路径 String xmlPath = "applicationContext.xml"; // 初始化Spring容器,加载配置文件,并对bean进行实例化 ApplicationContext applicationContext = new ClassPathXmlApplicationContext( xmlPath); // 获得personAction实例 JdbcTemplate jdbcTemplate = (JdbcTemplate) applicationContext .getBean("jdbcTemplate"); //修改信息 String sql = "update student set names = ? where id = ?"; int a1 = jdbcTemplate.update(sql, "庄子",3); System.out.println("修改成功"); //删除信息 String sql1 = "delete from student where id = ?"; int a = jdbcTemplate.update(sql1, 7); System.out.println("删除成功"); //添加信息 String sql2 = "insert into student(names,sex,blood,hobby,intro,time)values(" + "?,?,?,?,?,?)"; int a2 = jdbcTemplate.update(sql2,"庄子同学","男","A","聊天","聊天不错",123456789); System.out.println("添加" + a2 + "条记录"); //查询一个值 String sql3 = "select names from student where id = ?"; String s = jdbcTemplate.queryForObject(sql3, String.class, 3); System.out.println(s); //查询一条信息 String sql4= "select * from student where id = ?"; Map<String,Object> map = jdbcTemplate.queryForMap(sql4, 3); System.out.println(map.get("names")); //查询多条信息 String sql5= "select * from student"; List<Map<String,Object>> maps = jdbcTemplate.queryForList(sql5); for(Map m : maps){ System.out.println("姓名:" + m.get("names") + "性别" + m.get("sex")); } //查询一条信息并映射到指定的类的实例中 //RowMapper:行的映射 //Spring 提供了一个便利的RowMapper实现-----BeanPropertyRowMapper //它可自动将一行数据映射到指定类的实例中 它首先将这个类实例化,然后通过名称匹配的方式,映射到属性中去。 String sql6 = "select names,sex,blood from student where id = ?"; RowMapper<Student> rowMapper = new BeanPropertyRowMapper<Student>(Student.class); Student student = jdbcTemplate.queryForObject(sql6, rowMapper,5);//最后一个参数为id值 System.out.println(student.getNames()); /* *查询实体类的集合 */ String sql7 = "select names,sex,blood from student where id > ?"; RowMapper<Student> rowMappers = new BeanPropertyRowMapper<Student>(Student.class); List<Student> students = jdbcTemplate.query(sql7, rowMappers,5);//最后一个参数为id值 for(Student stu : students){ System.out.println(stu.getNames()); } } }
5, 注解使用方法:
@Resource private JdbcTemplate jdbcTemplate;