Spring怎样进行数据库编程

39次阅读
没有评论

共计 6428 个字符,预计需要花费 17 分钟才能阅读完成。

本篇文章给大家分享的是有关 Spring 怎样进行数据库编程,丸趣 TV 小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着丸趣 TV 小编一起来看看吧。

  前言

先入门,把核心理解后再回过头来看这些我觉得效果更好,不知道说的对不对,要是理解不当,还望指教。此篇为 Spring 的数据库编程,主要讲 jdbcTemplate,让初学者直接上手。

数据库切入

数据库编程是互联网编程的基础,Spring 框架为开发者提供了 JDBC 模板模式,即 jdbcTemplate,它可以简化许多代码,需要提醒的是 jdbcTemplate 在实际应用中并不常用,但我觉得对新手来说苍蝇再小也是肉,要想往前走,就得把这些小肉先吃了。

Spring JDBC 配置

使用 Spring JDBC 操作数据库,需要对其进行配置,配置如下

!-- 配置 spring-jdbcTemplate--   !-- 配置数据源 --   bean id= dataSource   "MySQL" target="_blank" href="https://www.yisu.com/mysql/">MySQL 数据库驱动 --   property name= driverClassName  value= com.mysql.jdbc.Driver /property   !-- 连接数据库的 URL--   property name= url  value= jdbc:mysql://localhost:3306/bbb?useUnicode=true amp;characterEncoding=UTF-8 /property   !-- 连接数据库的用户名 --   property name= username  value= root /property   !-- 连接数据库的密码 --   property name= password  value= root /property   /bean   !-- 配置 JDBC 模板 --   bean id= jdbcTemplate   >

配置 JDBC 模板时需要将 dataSource 注入到 jdbcTemplate, 而在数据访问层 (Dao 类) 需要使用 jdbcTemplate 时也需要将 jdbc  Template 注入到对应的 Bean 中,我在这演示用最简单的注解注入

@Repository(userDao) public class UserDaoImpl implements UserDao { @Autowired // 使用配置文件中的 JDBC 模板  private JdbcTemplate jdbcTemplate; }

Spring Jdbc Template 的常用方法

在上面我们获取了 JDBC 模板,下面我来说如何使用它。首先需要了解 JdbcTemplate 常用的方法,该类的常用方法是 update 和 query.

1、public int update(String sql,Object args[])

该方法可以对数据表进行增加、修改、删除等操作。使用 args[]设置 SQL 语句中的参数,并返回更新的行数。

示例如下:

public void add() { String insertSql =  insert into user values(null,?,?)  Object parem1[] = { 成功 , 123456  jdbcTemplate.update(insertSql,parem1); System.out.println(UserDao 中的添加功能实现了  }

2、public List query(String sql,RowMapper rowMapper,Object args[])

该方法可以对数据表进行查询操作,rowMapper 将结果集映射到用户自定义的类中(前提是自定义类中的属性要与数据表的字段对应)。

示例如下:

public void query() { String selectSql =  select * from user  RowMapper User  rowMapper = new BeanPropertyRowMapper User (User.class); List User  list = jdbcTemplate.query(selectSql,rowMapper,null); System.out.println(UserDao 中的查询功能实现了  }

案例辅助

Pom.xml

dependencies   dependency   groupId junit /groupId   artifactId junit /artifactId   version 4.11 /version   scope test /scope   /dependency   dependency   groupId javax.servlet /groupId   artifactId javax.servlet-api /artifactId   version 3.1.0 /version   /dependency   dependency   groupId javax.servlet /groupId   artifactId jstl /artifactId   version 1.2 /version   /dependency   dependency   groupId mysql /groupId   artifactId mysql-connector-java /artifactId   version 5.1.38 /version   /dependency   !--spring 核心依赖 --   dependency   groupId org.springframework /groupId   artifactId spring-core /artifactId   version 5.1.5.RELEASE /version   /dependency   dependency   groupId org.springframework /groupId   artifactId spring-beans /artifactId   version 5.1.5.RELEASE /version   /dependency   dependency   groupId org.springframework /groupId   artifactId spring-context /artifactId   version 5.1.5.RELEASE /version   /dependency   dependency   groupId org.springframework /groupId   artifactId spring-aop /artifactId   version 5.1.5.RELEASE /version   /dependency   dependency   groupId org.springframework /groupId   artifactId spring-jdbc /artifactId   version 5.1.5.RELEASE /version   /dependency   dependency   groupId org.springframework /groupId   artifactId spring-web /artifactId   version 5.1.5.RELEASE /version   /dependency   dependency   groupId org.springframework /groupId   artifactId spring-webmvc /artifactId   version 5.1.5.RELEASE /version   /dependency   dependency   groupId org.springframework /groupId   artifactId spring-expression /artifactId   version 5.1.5.RELEASE /version   /dependency   dependency   groupId org.springframework /groupId   artifactId spring-tx /artifactId   version 5.1.5.RELEASE /version   /dependency   !-- 日志相关 --   dependency   groupId commons-logging /groupId   artifactId commons-logging /artifactId   version 1.2 /version   /dependency   /dependencies

spring-config.xml

?xml version= 1.0  encoding= UTF-8 ?   beans xmlns= http://www.springframework.org/schema/beans  xmlns:xsi= http://www.w3.org/2001/XMLSchema-instance  xmlns:context= http://www.springframework.org/schema/context  xmlns:tx= http://www.springframework.org/schema/tx  xmlns:mvc= http://www.springframework.org/schema/mvc  xsi:schemaLocation= http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd    !-- 配置注解要扫描的包 --   context:component-scan base-package= com.my /context:component-scan   mvc:annotation-driven /mvc:annotation-driven   !-- 将指定类 TestDaoImpl 配置给 Spring, 让 Spring 创建其实例 --   bean id= testDIDao   >

User

package com.my.pojo; public class User { private int id; private String username; private String password; public User() { } public User(int id, String username, String password) { this.id = id; this.username = username; this.password = password; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return  User{  +  id=  + id +  , username=  + username +   +  , password=  + password +   + }  } }

UserDao

package com.my.dao; public interface UserDao { public void add(); public void delete(); public void update(); public void query(); }

UserDaoImpl

@Override public void update() { String updateSql =  update user set username=? , password=? where id =?  Object parem3[] = {修改 , 654321 ,3}; jdbcTemplate.update(updateSql,parem3); System.out.println(UserDao 中的修改功能实现了  } @Override public void query() { String selectSql =  select * from user  RowMapper User  rowMapper = new BeanPropertyRowMapper User (User.class); List User  list = jdbcTemplate.query(selectSql,rowMapper,null); System.out.println(UserDao 中的查询功能实现了  for (User user : list){ System.out.println(user); } } }

测试 Test3

package com.my.test; import com.my.dao.UserDao; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test3 { @Autowired private UserDao userDao; public static void main(String[] args) { ApplicationContext appCon = new ClassPathXmlApplicationContext( spring-config.xml  // 从容器中获取目标对象  UserDao userDao = (UserDao) appCon.getBean(userDao  //userDao.add(); userDao.delete(); userDao.update(); userDao.query(); } }

测试结果

以上就是 Spring 怎样进行数据库编程,丸趣 TV 小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-18发表,共计6428字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)