版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
罗荣良JDBCTemplate操作数据库本节学习目标1.引入JDBC相关依赖2.掌握JdbcTemplate的自动注入3.实现数据的增删改(INSERT/UPDATE/DELETE)4.实现数据的查询(SELECT)与结果映射5.理解Spring对原生JDBC的封装思想痛点回顾:JDBC的繁琐痛点:原生JDBC需要手动写Connection,PreparedStatement,ResultSet处理繁琐的try-catch-finally。解决:Spring提供的一个轻量级工具类。作用:自动管理连接生命周期,只关注SQL语句本身。步骤一:引入依赖pom.xml代码片段:<!--JDBCTemplate依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--MySQL数据库依赖-->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>注意:属性名要和数据库字段名保持一致或驼峰对应下划线步骤二:准备实体类与表publicclassUserimplementsRowMapper<User>{
privateintid;//定义主键id
privateStringaccount;//定义账号
privateStringpassword;//定义密码
publicUser(){
}
publicUser(intid,Stringaccount,Stringpassword){
this.id=id;
this.account=account;
this.password=password;
}
@Override
publicUsermapRow(ResultSetrs,introwNum)throwsSQLException{
Useruser=newUser();
user.setId(rs.getInt("id"));
user.setAccount(rs.getString("account"));
user.setPassword(rs.getString("password"));
returnuser;
}//settergetter。。。步骤三:注入JdbcTemplateSpringBoot启动时已自动配置好,直接@Autowired拿来用。@Service
publicclassUserDao{
@Autowired
privateJdbcTemplatejdbcTemplate;
实战:创建表结构(createtable)利用execute()来创建表。@Autowired
privateJdbcTemplatejdbcTemplate;
//创建表
publicvoidcreateTable(){
Stringsql="CREATETABLE`user`(\n"+
"`id`int(11)NOTNULLAUTO_INCREMENT,\n"+
"`account`varchar(255)NOTNULL,\n"+
"`password`varchar(255)NOTNULL,\n"+
"PRIMARYKEY(`id`)\n"+
")ENGINE=InnoDB;";
jdbcTemplate.execute(sql);;
}实战:插入数据(INSERT)核心方法:update()用于增、删、改。//新增用户
publicintaddUser(Useruser){
Stringsql="INSERTINTOuser(account,password)VALUES(?,?)";
returnjdbcTemplate.update(sql,user.getAccount(),user.getPassword());
}实战:修改与删除(UPDATE/DELETE)都是用update方法//更新用户信息
publicintupdateUser(Useruser){
Stringsql="UPDATEuserSETaccount=?,password=?WHEREid=?";
returnjdbcTemplate.update(sql,user.getAccount(),user.getPassword(),user.getId());
}
//删除用户
publicintdeleteUser(intid){
Stringsql="DELETEFROMuserWHEREid=?";
returnjdbcTemplate.update(sql);
}实战:查询对象(RowMapper)痛点:查询结果是ResultSet,怎么变成User对象?神器:BeanPropertyRowMapper//根据id查询用户
publicUsergetUserById(intid){
Stringsql="SELECT*FROMuserWHEREid=?";
returnjdbcTemplate.queryForObject(sql,newUser(),newObject[]{id});
}场景:查询用户。注意:使用query()查询全部
和queryForObject()查询单条。实战:查询列表(QueryList)//查询所有用户
publicList<User>getAllUsers(){
Stringsql="SELECT*FROMuser";
returnjdbcTemplate.query(sql,newBeanPropertyRowMapper<>(User.class));
}//根据账号和密码查询记录
publicUsergetUserByAccountAndPassword(Stringaccount,Stringpassword){
Stringsql="SELECTid,account,passwordFROMuserWHEREaccount=?andpassword=?";
returnjdbcTemplate.queryForObject(sql,newUser(),newObject[]{account,password});
}JdbcTemplate优缺点分析优点:1.简单、运行速度快
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 领导扶贫纪实工作制度
- 风电维护公司工作制度
- 食品安全生产工作制度
- 黄码医院护士工作制度
- 辽阳市弓长岭区2025-2026学年第二学期三年级语文第八单元测试卷(部编版含答案)
- 绥化市海伦市2025-2026学年第二学期四年级语文第七单元测试卷(部编版含答案)
- 九江市永修县2025-2026学年第二学期三年级语文第八单元测试卷(部编版含答案)
- 常德市安乡县2025-2026学年第二学期三年级语文第七单元测试卷(部编版含答案)
- 农网配电营业工班组协作模拟考核试卷含答案
- 船舶特大型起重机驾驶工达标考核试卷含答案
- 初中英语必背3500词汇(按字母顺序+音标版)
- 建行普惠金融培训
- 高血压病人麻醉管理
- 垃圾分类志愿者培训
- 医院护理质量持续改进项目案例
- 2025年陕西省西安交大少年班自主招生数学试卷(初中组) (解析版)
- 工业厂房硬化地面施工方案
- ig经济考试题目及答案
- 穿越机组装教学课件
- 2025年动漫艺术概论试题及答案
- 精索静脉曲张超声课件
评论
0/150
提交评论