使用Spring实现mysql数据库的CRUD操作

Spring完成对mysql数据库的crud操作的大致步骤:

用Spring的dataSourse类与数据库连接,把一个POJO bean类按MVC构架分成DAO数据持久化层和逻辑业务层service,用JdbcTemlate类完成数据库的添加修改删除查询操作。


1、接下来我们一步步来,首先看最核心的applicationContext.xml的配置:
(1)创建dataSource对象连接mysql数据库,和hibernate连接数据库差不多。

  	<!-- 创建dataSource对象 -->
  	<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <!-- 注入属性值 -->
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
        <property name="url" value="jdbc:mysql:///employee?serverTimezone=GMT%2b8&amp;useSSL=true"></property>
        <property name="username" value="root"></property>
        <property name="password" value="root"></property>
    </bean>

(2)创建jdbcTemplate对象设置数据源。

  	<!-- 创建jdbcTemplate对象 -->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <!-- 把 dataSource 传递到模板对象里面,设置数据源 -->
        <property name="dataSource" ref="dataSource"></property>
    </bean>

(3)使用mvc构架创建dao对象和service对象,并关联起来。

    <!-- 创建dao 对象 -->
    <bean id="userDao" class="com.dao.UserDao">
        <!-- 注入jdbcTemplate对象 -->
        <property name="jdbcTemplate" ref="jdbcTemplate"></property>
    </bean>
    
    <!-- 创建service 对象,在 service 注入 dao 对象 -->
    <bean id="userService" class="com.service.UserService">
        <!-- 注入dao 对象 -->
        <property name="userDao" ref="userDao"></property>
    </bean>

(4)applicationContext.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
  	
  	<!-- 创建dataSource对象 -->
  	<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <!-- 注入属性值 -->
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
        <property name="url" value="jdbc:mysql:///employee?serverTimezone=GMT%2b8&amp;useSSL=true"></property>
        <property name="username" value="root"></property>
        <property name="password" value="root"></property>
    </bean>
  	
  	<!-- 创建jdbcTemplate对象 -->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <!-- 把 dataSource 传递到模板对象里面,设置数据源 -->
        <property name="dataSource" ref="dataSource"></property>
    </bean>

    <!-- 创建dao 对象 -->
    <bean id="userDao" class="com.dao.UserDao">
        <!-- 注入jdbcTemplate对象 -->
        <property name="jdbcTemplate" ref="jdbcTemplate"></property>
    </bean>
    
    <!-- 创建service 对象,在 service 注入 dao 对象 -->
    <bean id="userService" class="com.service.UserService">
        <!-- 注入dao 对象 -->
        <property name="userDao" ref="userDao"></property>
    </bean>
  	
</beans>

2、编写相关文件。这些代码不复杂,这里不再阐述。

(1)UserService.java

package com.service;

import com.dao.UserDao;

public class UserService {

	private UserDao userDao;

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    public void add(){
        userDao.add();
    }
    
    public void update(){
        userDao.update();
    }
    
    public void delete(){
        userDao.delete();
    }
    
    public void query(){
        userDao.query();
    }
}

(2)UserDao.java

package com.dao;

import java.util.List;
import java.util.Map;
import org.springframework.jdbc.core.JdbcTemplate;

public class UserDao {
	//得到 jdbcTemplate 对象
    private JdbcTemplate jdbcTemplate;
    
    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    public void add(){
        String sql = "insert into user values(?,?)";
        jdbcTemplate.update(sql, "小明", "123");
        List<Map<String,Object>> users= jdbcTemplate.queryForList("select * from user");//纪录查询结果
        System.out.println(users);
    }
    
    public void update(){
    	String sql = "update user set userpass=? where username=?";
    	jdbcTemplate.update(sql, "321", "小明");
    	List<Map<String,Object>> users= jdbcTemplate.queryForList("select * from user");
        System.out.println(users);
    }
    
    public void delete(){
        String sql = "delete from user where username=?";
        jdbcTemplate.update(sql, "小明");
        List<Map<String,Object>> users= jdbcTemplate.queryForList("select * from user");
        System.out.println(users);
    }
    
    public void query(){
    	String sql = "select * from user where username=?";
    	List<Map<String,Object>> users= jdbcTemplate.queryForList(sql,"小明");
    	System.out.println(users);

    }
}

3、单元测试文件(UserTest.java)

package com.test;

import static org.junit.Assert.*;

import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.service.UserService;
public class UserTest {
	@Test
	public void test() {
		fail("Not yet implemented");
	}

	ClassPathXmlApplicationContext l2 = new ClassPathXmlApplicationContext("applicationContext.xml");
	UserService service = l2.getBean("userService",UserService.class);
	
	@Test
	public void add(){
		service.add();
		l2.close();//关闭流
	}
	
	@Test
	public void update(){
		service.update();
		l2.close();
	}
	
	@Test
	public void delete(){
		service.delete();
		l2.close();
	}
	
	@Test
	public void query(){
		service.query();
		l2.close();
	}
}

4、CRUD测试
首先在数据库后台自己创建个表:
create table user(
username varchar(20),
userpass varchar(20)
);

(1)添加一条数据:
在这里插入图片描述

添加用户名为小明,密码为123

    public void add(){
        String sql = "insert into user values(?,?)";
        jdbcTemplate.update(sql, "小明", "123");
        List<Map<String,Object>> users= jdbcTemplate.queryForList("select * from user");//纪录查询结果
        System.out.println(users);
    }

在这里插入图片描述

(2)修改数据:

右键update()单元测试。
查询用户名为小明的用户,把密码修改为321。

    public void update(){
    	String sql = "update user set userpass=? where username=?";
    	jdbcTemplate.update(sql, "321", "小明");
    	List<Map<String,Object>> users= jdbcTemplate.queryForList("select * from user");
        System.out.println(users);
    }

在这里插入图片描述

(3)删除数据

右键delete()单元测试。
删除用户名为小明的信息。

    public void delete(){
        String sql = "delete from user where username=?";
        jdbcTemplate.update(sql, "小明");
        List<Map<String,Object>> users= jdbcTemplate.queryForList("select * from user");
        System.out.println(users);
    }

在这里插入图片描述

(4)查询数据

添加几条不同的数据,然后再查找用户名为小明的数据。

    public void query(){
    	String sql = "select * from user where username=?";
    	List<Map<String,Object>> users= jdbcTemplate.queryForList(sql,"小明");
    	System.out.println(users);

    }

在这里插入图片描述


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值