使用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&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&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); }
相关文章推荐
- SpringBoot使用Spring-Data-Jpa实现CRUD操作
- Spring Boot使用Spring Data Jpa对MySQL数据库进行CRUD操作
- 使用c3p0技术实现对数据库crud操作的自定义封装
- 使用JDBC连接MySQL数据库--典型案例分析(六)----实现账户转账操作
- Spring Boot整合Mybatis并完成CRUD操作的实现示例
- Asp.net Webform 使用Repository模式实现CRUD操作代码生成工具
- 番外 02: Spring 之使用 JAVA 操作Mysql数据库(为何要用ORM)Spring整合 Mybatis前基础
- 使用myeclipse 应用struts2 + spring + hibernate 实现CRUD
- 使用Struts2和jQuery EasyUI实现简单CRUD系统(六)——复选框进行多选删除操作
- Struts学习总结(九)---使用Struts2实现用户信息的CRUD操作(三:修改操作)
- 番外 02: Spring 之使用 JAVA 操作Mysql数据库(为何要用ORM)Spring整合 Mybatis前基础
- 以用户登录、注册、添加删除修改为例,解析jdbcTemplate使用方式以及spring注解实现CRUD
- spring使用AOP做实现操作记录的功能
- 使用MyBatis对表执行CRUD操作——基于XML的实现
- Spring+Jersey+JPA+Hibernate+MySQL实现CRUD操作案例
- JDBC学习笔记 -- day04 使用jdcb实现CRUD操作
- 番外 02: Spring 之使用 JAVA 操作Mysql数据库(为何要用ORM)Spring整合 Mybatis前基础
- Spring Boot中使用jdbctemplate 操作MYSQL数据库实例
- 使用myeclipse 应用struts2 + spring + hibernate 实现CRUD
- spring-jdbctemplate对数据库的crud操作---idea实现