Spring Boot+Vue全栈应用开发实践 课件10 JDBC Template 操作数据库_第1页
Spring Boot+Vue全栈应用开发实践 课件10 JDBC Template 操作数据库_第2页
Spring Boot+Vue全栈应用开发实践 课件10 JDBC Template 操作数据库_第3页
Spring Boot+Vue全栈应用开发实践 课件10 JDBC Template 操作数据库_第4页
Spring Boot+Vue全栈应用开发实践 课件10 JDBC Template 操作数据库_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

罗荣良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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论