this.userId = userId;
}
public void setUsername(String username) {
this.username = username;
}
public void setUstatus(String ustatus) {
this.ustatus = ustatus;
}
}
2、编写service和dao
(1)在dao进行数据库添加操作
(2)调用JdbcTemplate对象里面update方法实现添加操作
-
有两个参数
-
第一个参数:sql语句
-
第二个参数:可变参数,设置sql语句值
package com.haust.spring5.dao;
import com.haust.spring5.entity.Book;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
@Repository
public class BookDaoImpl implements BookDao {
//注入JdbcTemplate
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public void add(Book book) {
//创建sql语句
String sql = “insert into t_book values (?,?,?)”;
//2、调用方法实现
int update = jdbcTemplate.update(sql,book.getUserId(),book.getUsername(),book.getUstatus());
System.out.println(update);
}
}
3、测试类
package com.haust.spring5.test;
import com.haust.spring5.entity.Book;
import com.haust.spring5.service.BookService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestBook {
@Test
public void testJdbcTemplate(){
ApplicationContext context =
new ClassPathXmlApplicationContext(“bean1.xml”);
BookService bookService = context.getBean(“bookService”, BookService.class);
Book book = new Book();
book.setUserId(“1”);
book.setUsername(“java”);
book.setUstatus(“a”);
bookService.addBook(book);
}
}
1、修改
@Override
public void updateBook(Book book) {
String sql = “update t_book set username=?,ustatus=? where userid=?”;
Object[] args ={book.getUsername(),book.getUstatus(),book.getUserId()};
int update = jdbcTemplate.update(sql,args);
System.out.println(update);
}
2、删除
@Override
public void deleteBook(String id) {
String sql = “delete from t_book where userid=?”;
int update = jdbcTemplate.update(sql,id);
System.out.println(update);
}
1、查询表里面有多条记录,返回某个值
2、查询JdbcTemplate实现查询返回某个值代码
有两个参数
第一个参数:sql语句
第二个参数:返回类型Class
@Override
public int selectCount() {
String sql = “select count(*) from t_book”;
Integer count = jdbcTemplate.queryForObject(sql,Integer.class);
return count;
}
1、场景:查询图书详情
2、JdbcTemplate实现查询返回对象
有三个参数
第一个参数:sql语句
第二个参数:RowMapper,是接口,返回不同类型数据,使用这个接口里面实现类完成数据封装
第三个参数:sql语句值
@Override
public Book findBookInfo(int id) {
String sql = “select * from t_book where userid=?”;
Book book = jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper(Book.class),id);
return book;
}
1、场景:查询图书列表分页
2、调用JdbcTemplate方法实现查询返回集合
有三个参数
第一个参数:sql语句
第二个参数:RowMapper是接口,针对返回不同类型数据,使用这个接口实现类完成数据封装
第三个参数:sql语句值
// 查询返回集合
@Override
public List findAllBook() {
String sql = “select * from t_book”;
//调用方法
List bookList = jdbcTemplate.query(sql,new BeanPropertyRowMapper(Book.class));
return bookList;
}
1、批量操作:操作表里面多条记录
2、JdbcTemplate实现批量添加操作
batchUpdate
有两个参数
第一个参数:sql语句
第二个参数:List集合。添加多条记录数据
3、JdbcTemplate实现批量修改操作
@Override
public void batchUpdateBook(List<Object[]> batchArgs) {
String sql = “update t_book set username=?,ustatus=? where userid=?”;
int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs);
System.out.println(Arrays.toString(ints));
}
4、JdbcTemplate实现批量删除操作
@Override
public void batchDeleteBook(List<Object[]> batchArgs) {
String sql = “delete from t_book where userid = ?”;
int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs);
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://img-blog.csdnimg.cn/img_convert/0a9f9d496aec28fab6c02d4e0451777d.jpeg)
独家面经总结,超级精彩
本人面试腾讯,阿里,百度等企业总结下来的面试经历,都是真实的,分享给大家!
Java面试准备
准确的说这里又分为两部分:
- Java刷题
- 算法刷题
Java刷题:此份文档详细记录了千道面试题与详解;
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
享给大家!
[外链图片转存中…(img-jZOkSjEQ-1713684667485)]
[外链图片转存中…(img-HSpkrXaJ-1713684667485)]
[外链图片转存中…(img-7VmUmZx1-1713684667485)]
[外链图片转存中…(img-H34TuMBN-1713684667485)]
Java面试准备
准确的说这里又分为两部分:
- Java刷题
- 算法刷题
Java刷题:此份文档详细记录了千道面试题与详解;
[外链图片转存中…(img-Af4VCnrv-1713684667485)]
[外链图片转存中…(img-jFXGKQQT-1713684667486)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!