public interface bookDao {
}
@Repository
public class bookDaoImpl implements bookDao{
//注入JdbcTemplate
@Autowired
private JdbcTemplate jdbcTemplate;
}
@Service
public class service {
//注入dao
@Autowired
private bookDao bookDao;
}
添加记录
对相应数据库表创建实体类
public class book {
private int id;
private String name;
private int status;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
}
编写service和dao
在dao进行操作
update(String sql,Object…args)
参数1:sql语句
参数2:可变参数,设置sql语句值
@Service
public class service {
//注入dao
@Autowired
private bookDao bookDao;
//添加新方法
public void bookAdd(book book){
bookDao.bookAdd(book);
}
}
public interface bookDao {
public void bookAdd(book book);
}
@Repository
public class bookDaoImpl implements bookDao{
//注入JdbcTemplate
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public void bookAdd(book book) {
//创建sql语句
String sql="insert into book values(?,?,?)";
Object[] args={book.getId(),book.getName(),book.getStatus()};
//调用方法实现
int update=jdbcTemplate.update(sql,args);
System.out.println(update);
}
}
测试类
public class test1 {
public static void main(String[] args) {
ApplicationContext context=new ClassPathXmlApplicationContext("src/jdbcTemplate/bean1.xml");
service bookService=context.getBean("service",service.class);
book book1=new book();
book1.setId(2);
book1.setName("MySql");
book1.setStatus(1);
bookService.bookAdd(book1);
}
}
结果
修改和删除记录
修改和删除操作一样,唯一改变的地方为sql语句的改变以及参数值的改变
//bookDaoImpl
@Override
public void updateBook(book book) {
String sql="update book set name=?,status=? where id=?";
Object[] args={book.getName(),book.getStatus(),book.getId()};
//调用方法实现
int update=jdbcTemplate.update(sql,args);
System.out.println(update);
}
@Override
public void deleteBook(String id) {
String sql="delete from book where id=?";
Object[] args={id};
//调用方法实现
int update=jdbcTemplate.update(sql,args);
System.out.println(update);
}
查询
查询返回某个值
场景:查询数据库有多少条记录
实现
//service
//查询返回某个值
public int findCount(){
return bookDao.selectCount();
}
//bookDao
int selectCount();
//bookDaoImpl
@Override
public int selectCount() {
String sql="select count(*) from book";
int count=jdbcTemplate.queryForObject(sql,Integer.class);
return count;
}
调用的函数jdbcTemplate.queryForObject(String sql, class requiredType);
参数1:sql语句
参数2:返回类型class
查询返回对象
场景:查询图书详情
实现
//service
//查询返回对象
public book findOne(String id){
return bookDao.findObj(id);
}
//bookDao
book findObj(String id);
//bookDaoImpl
@Override
public book findObj(String id) {
String sql="select * from book where id=?";
return jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper(book.class),"2");
}
//service
//查询返回集合
public List findList(){
return bookDao.findAll();
}
//bookDao
List findAll();
//bookDaoImpl
@Override
public List findAll() {
String sql="select * from book";
return jdbcTemplate.query(sql,new BeanPropertyRowMapper(book.class));
}
public class test1 {
public static void main(String[] args) {
ApplicationContext context=new ClassPathXmlApplicationContext("src/jdbcTemplate/bean1.xml");
service bookService=context.getBean("service",service.class);
// int count=bookService.findCount();
// System.out.println(count);
// System.out.println(bookService.findOne("2"));
System.out.println(bookService.findList());
}