龙空技术网

如何使用 Spring 对数据库进行 CURD?

CSDN 179

前言:

此刻大家对“mysql怎么连接本地数据库填写的数据库名字斜杠后面”都比较关注,你们都想要知道一些“mysql怎么连接本地数据库填写的数据库名字斜杠后面”的相关内容。那么小编同时在网络上汇集了一些有关“mysql怎么连接本地数据库填写的数据库名字斜杠后面””的相关知识,希望大家能喜欢,兄弟们快快来学习一下吧!

作者 | 阿文,责编 | 郭芮

头图 | CSDN 下载自视觉中国

出品 | CSDN(ID:CSDNnews)

作为一名程序员,CURD(增删改查)是一件必不可少的事情,甭管你是初级程序员还是高级程序员都会和数据库打交道。那么在Java中如何通过Spring 框架来对数据库进行操作呢?本文将带你一起来学习。

Spring框架针对数据库提供了JdbcTemplate 类,JdbcTemplate 是Spring 数据抽象层的基础,其他更高层次的抽象类都是构建在其基础之上,JdbcTemplate 是Spring JDBC的核心类。JdbcTemplate 继承自抽象类JdbcAccessor,同时实现了JdbcOperations 接口,JdbcTemplate定义在了JdbcTemplate类中从而可以使用增删改查来对数据库进行操作。JdbcTemplate 的直接父类是JdbcAccessor,它提供了一些访问数据库时所需要使用的公共属性,包括DataSource以及SQLExceptionTranslator 等。前者用于获取数据库连接以及引入对数据库连接的缓冲池以及分布式事务等支出。后者是对SQLException 进行转译工作。

首先,我来说下本次文档所需要准备的工具,具体如下:

idea 社区版

maven,idea 自带的

mysql 或Mariadb

接下来,我们先简单介绍下Spring JDBC 模块,它主要包括core、dataSource、object、support四个包,分别提供的功能如下:

core 包括JDBC的核心功能,例如JdbcTemplate类、simpleJdbcInsert类、simpleJdbcCall 类以及NamedParameterJdbcTemplate类。

dataSource 包括了访问数据库的实用工具类。

object 以OOP的方式访问数据库,它允许执行查询操作并将返回结果作为业务对象,可以在数据表和业务对象的属性直接映射查询关系。

support 包括core 和object包的支持类,例如提供一些SQLException类。

我们了解了这些模块的功能,接来下我们看看怎么去配置JDBC,下面是 JDBC的XML配置文件:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns=""

xmlns:xsi=""

xsi:schemaLocation="

">

<!--1配置数据源 -->

<bean id="dataSource"

class="org.springframework.jdbc.datasource.DriverManagerDataSource">

<!--数据库驱动 -->

<property name="driverClassName" value="com.mysql.jdbc.Driver" />

<!--连接数据库的ur1 -->

<property name="url" value="jdbc:mysql://localhost:3306/spring_db" />

<!--连接数据库的用户名 -->

<property name="username" value="root" />

<!--连接数据库的密码 -->

<property name="password" value="root" />

</bean>

<!--2配置JDBC模板 -->

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">

<!--默认必须使用数据源 -->

<property name="dataSource" ref="dataSource" />

</bean>

</beans>

在上述xml 文件中的beans中定义了两个bean,分别是dataSource、jdbcTemplate。

其中dataSource的类是由org.springframework.jdbc.datasource.DriverManagerDataSource 提供,包含了4个属性分别对应的是:

driverClassName,它是数据库的驱动,值是com.mysql.jdbc.Driver;

url 数据库的访问地址,如上所示,jdbc:mysql://localhost:3306/spring_db 中的localhost 为你的数据库地址 3306 为数据库的连接断开,斜杠后面的spring_db 表示需要连接的数据库名称;

username 数据库的用户名;

password 数据库的密码;

下面我们通过实例的方式来讲解如何通过JDBC来对数据库进行操作,我们需要进行以下准备工作。

首先,我们需要配置maven的pom.xml 下载所需要的jar包,包括spring-jdbc、mysql-connector-java:

 <dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-jdbc</artifactId>

<version>4.3.6.RELEASE</version>

</dependency>

<!-- -->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>8.0.19</version>

</dependency>

第二步,需要有一个可以反问的数据库,比如我的数据库设置密码为root

mysqladmin -u root password root

第三步.创建一个spring_db 的表,并且需要授权用户远程访问,如果是本地这一步可以不用做

MariaDB [(none)]> create database spring_db;

Query OK, 1 row affected (0.000 sec)

第四步,在idea 工程中新建一个com.ssm.jdbc 的包,并在该包中创建一个JdbcTempTest的测试类,首先我们加载xml 配置,配置文件就是上面的xml配置文件,我们创建一个数据表为user_table,使用jdbctemp.execute(String s) 方法执行SQL语句。

 @Test

public void TestJdbcTemplate {

//加载配置

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("jdbc.xml");

//获取JdbcTemplate实例

JdbcTemplate jdbctemp = (JdbcTemplate) applicationContext.getBean("jdbcTemplate");

jdbctemp.execute("create table user_table(" +

"id int primary key auto_increment," +

"username varchar(80)," +

"password varchar(40))");

}

我们执行该测试类,然后进入数据库,我们可以看到该表已经被创建出来了:

MariaDB [(none)]> use spring_db;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

MariaDB [spring_db]> show tables;

+---------------------+

| Tables_in_spring_db |

+---------------------+

| user_table |

+---------------------+

1 row in set (0.000 sec)

MariaDB [spring_db]>

下面,我们通过jdbc 来实现增删改查操作,首先,我们要创建一个类,名字为User,这个User 类中包含了用户的id、用户名和密码信息,并设置其set和get属性:

package com.ssm.jdbc;

public class User {

private Integer id;

private String username;

private String password;

public Integer getId {

return id;

}

public void setId(Integer 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;

}

public String toString {

return "User [id=" + id + ", username=" + username + ", password=" + password + "]";

}

}

然后我们创建一个UserDao 接口,该接口定义了添加、更新、删除、根据ID查询和查询所有用户的方法:

package com.ssm.jdbc;

import java.util.List;

public interface UserDao {

public int addUser(User user);

public int updateUser(User user);

public int deleteUser(int id);

//通过id查询用户

public User findUserById(int id);

//查询所有用户

public List<User> findAllUser;

}

接下来,我们来对UserDao的接口进行实现,在这个方法中我们对具体的增删改查逻辑进行设置,直接看代码吧:

package com.ssm.jdbc;

import org.springframework.jdbc.core.BeanPropertyRowMapper;

import org.springframework.jdbc.core.JdbcTemplate;

import org.springframework.jdbc.core.RowMapper;

import java.util.List;

public class UserDaoImpl implements UserDao {

private JdbcTemplate jdbcTemplate;

public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {

this.jdbcTemplate = jdbcTemplate;

}

@Override

public int addUser(User user) {

String sql="insert into user_table(username,password) value(?,?)";

Object obj=new Object{

user.getUsername,

user.getPassword

};

int num=this.jdbcTemplate.update(sql,obj);

return num;

}

@Override

public int updateUser(User user) {

String sql="update user_table set username=?,password=? where id=?";

Object params=new Object{

user.getUsername,

user.getPassword,

user.getId

};

int num=this.jdbcTemplate.update(sql,params);

return num;

}

@Override

public int deleteUser(int id) {

String sql="delete from user_table where id=?";

int num=this.jdbcTemplate.update(sql,id);

return num;

}

@Override

public User findUserById(int id) {

String sql="select * from user_table where id=?";

RowMapper<User> rowMapper=new BeanPropertyRowMapper<User>(User.class);

return this.jdbcTemplate.queryForObject(sql,rowMapper,id);

}

@Override

public List<User> findAllUser {

String sql="select * from user_table";

RowMapper<User> rowMapper=new BeanPropertyRowMapper<User>(User.class);

return this.jdbcTemplate.query(sql,rowMapper);

}

}

然后我们在jdbc.xml 中加入bean,加入UserDao:

 <!-- 定义id为userDao的Bean -->

<bean id="userDao" class="com.ssm.jdbc.UserDaoImpl">

<!--将 jdbcTemplate注入到 userDao实例中 -->

<property name="jdbcTemplate" ref="jdbcTemplate" />

</bean>

好了,一切准备就绪,我们接来下通过测试类来测试下具体的增删改查。

首先来测试下添加用户方法,如图下所示:

 @Test

public void addUserTest{

//加载jdbc.xml 配置文件

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("jdbc.xml");

//获取UserDao实例

UserDao userDao = (UserDao) applicationContext.getBean("userDao");

//创建user实例

User user = new User;

//设置属性

user.setUsername("张三");

user.setPassword("123");

//添加用户

int num = userDao.addUser(user);

if (num > 0) {

System.out.println("Success insert "+num+" data");

}else {

System.out.println("erro");

}

}

更新用户:

 @Test

public void updateUserTest{

//加载jdbc.xml 配置文件

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("jdbc.xml");

//获取UserDao实例

UserDao userDao = (UserDao) applicationContext.getBean("userDao");

//创建user实例

User user = new User;

//设置属性

user.setId(1);

user.setUsername("李四");

user.setPassword("12345");

//更新用户信息

int num = userDao.updateUser(user);

if (num > 0) {

System.out.println("Success update "+num+" data");

}else {

System.out.println("erro");

}

}

删除用户:

 @Test

public void delUserTest{

//加载jdbc.xml 配置文件

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("jdbc.xml");

//获取UserDao实例

UserDao userDao = (UserDao) applicationContext.getBean("userDao");

//删除,传入ID值

int num = userDao.deleteUser(1);

if (num > 0) {

System.out.println("Success delete "+num+" data");

}else {

System.out.println("erro");

}

}

查询用户信息,包括了根据ID查询和查询所有:

@Test

public void findUserTest{

//加载jdbc.xml 配置文件

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("jdbc.xml");

//获取UserDao实例

UserDao userDao = (UserDao) applicationContext.getBean("userDao");

//根据ID查询用户

User user = userDao.findUserById(2);

System.out.println(user);

}

@Test

public void findAllUserTest{

//加载jdbc.xml 配置文件

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("jdbc.xml");

//获取UserDao实例

UserDao userDao = (UserDao) applicationContext.getBean("userDao");

//根据ID查询用户

List<User> list = userDao.findAllUser;

for (User user:list){

System.out.println(user);

}

}

好了,以上就是关于如果使用Spring JDBC 操作数据库实现增删改查的方法。

☞AI 世界的硬核之战,Tengine 凭什么成为最受开发者欢迎的主流框架?

☞说了这么多 5G,最关键的技术在这里

☞360金融新任首席科学家:别指望AI Lab做成中台

☞AI图像智能修复老照片,效果惊艳到我了

☞程序员内功修炼系列:10 张图解谈 Linux 物理内存和虚拟内存

☞当 DeFi 遇上 Rollup,将擦出怎样的火花?

标签: #mysql怎么连接本地数据库填写的数据库名字斜杠后面 #spring操作数据库