您的位置:首页 > 编程语言 > Java开发

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

2019-06-03 16:25 771 查看
版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41083009/article/details/90754236

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="userDa
4000
o"></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);

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: