基本的
增,删,改:(只演示增加 因为他们调用的方法都是update方法):
package com.hxzy.spring_jdbc_template; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.datasource.DriverManagerDataSource; public class JDBC_Tamplate { /** * JDBCTamplate spring针对JDBC技术进行 了封装 使我们更容易的对数据库进行crud操作 */ public static void main(String[] args) { //获取数据源对象 DriverManagerDataSource dataSource = new DriverManagerDataSource(); //向里面存取数据 dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/student"); dataSource.setUsername("root"); dataSource.setPassword("gubin"); //获得JDBCTempleat对象 JdbcTemplate template = new JdbcTemplate(dataSource); //编写Sql语句 String sql = "INSERT INTO student VALUES(15,?,?,?,?)"; //使用问号占位符操作 向数据库存取数据 int row = template.update(sql,"赵小凡",25,"男","166555555"); System.out.println("执行成功!有" + row + "行,受到了影响"); } }
执行结果图:
演示:查询的代码:
单一的查询:(查询 返回的结果是一个数值 比如查询总条数)返回结果过为一个值返回一个值 使用queryForObject(sql,String.class)
/** * JDBC Tamplate 查询的操作 */ public static void main(String[] args) { /** * 获得数据源对象 */ JdbcTemplate jdbcTemplate = Utils.getjdbcTemplate(); /** * 查询 返回一个值 queryForObject(sql,String.class) */ String sql = "select count(0) from student"; //查询数据库中的条数 String s = jdbcTemplate.queryForObject(sql,String.class); //返回结果是一个的话 使用qyeryForObject(sql语句,String.class) System.out.println(s); }
查询操作 返回一个对象:
(今天被这个方法恶心到了... 返回的结果只能是1条不能是多条..)不建议使用!!
使用 queryForObject(sql ,new 实现类 )
这个方法使用 需要一个实体类 与数据库表对应 然后需要一个实现类 这个类实现 RowMapper<实体类> 重写 接口的MapRow方法 获得的数据返给对象 进行Set 存入对象
实现:
我的实体类叫 Student 实现类叫StudentImps
Student:
package com.hxzy.spring_jdbc_template.Dao; import lombok.Data; @Data public class Student { private String s_name; private Integer s_id; private Integer s_age; private String s_sex; private String s_phone; }
StudentImpl:
package com.hxzy.spring_jdbc_template; import com.hxzy.spring_jdbc_template.Dao.Student; import org.springframework.jdbc.core.RowMapper; import java.sql.ResultSet; import java.sql.SQLException; public class Studentimpl implements RowMapper<Student> { @Override public Student mapRow(ResultSet resultSet, int i) throws SQLException { //获得数据 int s_id = resultSet.getInt("sid"); int s_age = resultSet.getInt("sage"); String s_name = resultSet.getString("sname"); String s_sex = resultSet.getString("ssex"); String s_phone = resultSet.getString("sphone"); System.out.println("进入了..."); //将数据存入数据库 Student student = new Student(); student.setS_id(s_id); student.setS_age(s_age); student.setS_name(s_name); student.setS_phone(s_phone); student.setS_sex(s_sex); return student; } }
我的JDBCTamplate:
/** * 查询 返回一个对象 */ String sql = "select * from student limit 0,1"; Student student = jdbcTemplate.queryForObject(sql,new Studentimpl()); System.out.println(student);
返回集合操作:
跟上面返回对象的步骤一个 使用 query() 返回的是一个集合 注意 “一个” 集合 只有一个 同样都是 创建实体类 创建实现类 .....
代码:
/** * 查询 返回一个集合 */ String sql = "select * from student limit 0,5"; List<Student> list = jdbcTemplate.query(sql,new Studentimpl()); System.out.println(list);