博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【JAVA】Srping和传统JDBC实现数据库操作
阅读量:6095 次
发布时间:2019-06-20

本文共 4733 字,大约阅读时间需要 15 分钟。

@[TOC]

前言

学习完了和之后,那我们就可以进行数据库的操作了。

创建数据库

首先创建我们的数据库(这里我使用的是Mysql),为了演示方便,我这里简单的创建一个spring数据库,然后数据库有一个user用户表:

  1. 创建一个名为spring的数据库。
  2. 创建一个名为user的数据表,表包括id、email、name、password四个字段。
CREATE TABLE `user` (  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,  `email` varchar(255) DEFAULT NULL,  `name` varchar(255) DEFAULT NULL,  `password` varchar(255) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1;复制代码

创建实体类

创建一个实体类和数据库的表相对应(模型用来储存要操作的数据)。

package cn.zhenta.www.service.impl.Entity;public class User {    int id;    String email;    String name;    String password;    public User(String email, String name, String password){        this.email = email;        this.name = name;        this.password = password;    }    public int getId(){        return id;    }    public void setId(int id) {        this.id = id;    }    public String getEmail(){        return email;    }    public void setEmail(String email){        this.email = email;    }    public String getName(){        return name;    }    public void setName(String name){        this.name = name;    }    public String getPassword(){        return password;    }    public void setPassword(String password){        this.password = password;    }}复制代码

模型中的成员属性
id
email
name
password分别对应数据表user的
字段,为每个成员属性添加
getter
setter方法,实现对成员属性的操作。

数据访问对象(DAO)模式

DAO(data access object),数据库访问对象,主要的功能就是用于惊险数据库操作的。

UserDao接口

package cn.zhenta.www.service.impl.Dao;import cn.zhenta.www.service.impl.Entity.User;public interface UserDao {    public void inSert(User User);}复制代码

抽象了User的操作,即User可以进行
插入操作(inSert)

UserDao接口的实现

package cn.zhenta.www.service.impl.Dao.impl;import cn.zhenta.www.service.impl.Dao.UserDao;import cn.zhenta.www.service.impl.Entity.User;import javax.sql.DataSource;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;public class UserDaoImpl implements UserDao {    private DataSource dataSource;    public void setDataSource(DataSource dataSource){        this.dataSource = dataSource;    }    public void inSert(User user){        String sql = "INSERT INTO `spring`.`user` (`email`, `name`, `password`) VALUES (?, ?,?)";        Connection conn = null;        try{            conn = dataSource.getConnection();            PreparedStatement ps = conn.prepareStatement(sql);            ps.setString(1, user.getEmail());            ps.setString(2, user.getName());            ps.setString(3, user.getPassword());            ps.executeUpdate();            ps.close();        }catch(SQLException e){            throw new RuntimeException(e);        }finally {            if (conn != null) {                try {                    conn.close();                } catch (SQLException e) {}            }        }    }}复制代码

这里直接用了传统的JDBC,没有使用Spring的JdbcTemplate或者别的ORM框架。
private DataSource dataSource;这里对

数据源配置

复制代码

这里为了方便直接使用了
直连的数据源( ),也可以使用连接池的数据源。

复制代码

其中name="dataSource"为向cn.zhenta.www.service.impl.Dao.impl.UserDaoImpl这个类名为dataSource成员属性注入一个iddataSourceref="dataSource")的Bean(通过setter方法即setDataSource),也就是

复制代码

这样在UserDao的实现类UserDaoImpl就能完成了数据源的装配了。

装配Bean

package cn.zhenta.www.service.impl.Config;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.ImportResource;@Configuration@ImportResource(locations = {
"Spring-Datasource.xml"})@ComponentScan(basePackages = {
"cn.zhenta.www.service.impl"})public class Config {}复制代码

@Configuration声明这个是配置类,@ImportResource装配xml配置文件(Spring-Datasource.xml为直连数据源的配置文件),@ComponentScan开启组件扫描。

测试类

package cn.zhenta.www.service.impl.TestC;import cn.zhenta.www.service.impl.Dao.UserDao;import cn.zhenta.www.service.impl.Entity.User;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@ContextConfiguration(classes = cn.zhenta.www.service.impl.Config.Config.class)@RunWith(SpringJUnit4ClassRunner.class)public class TestC {    @Autowired    UserDao userDao;    @Test    public void dd(){        User user = new User("22", "xue8","22");        userDao.inSert(user);    }}复制代码

ContextConfiguration 指定Spring配置信息来源,UserDao userDAO引用UserDao接口,User user = new User("22", "xue8","22")创建一个User实体类中储存我们要保存的数据,userDAO.inSert(user)通过接口的实现类插入数据。

最后我们数据库成功插入了我们插入的数据。

欢迎加入JAVA学习群949419296,一起交流!

转载于:https://juejin.im/post/5befd4c96fb9a049aa6eaa8e

你可能感兴趣的文章
Excel到R中的日期转换
查看>>
检查磁盘利用率并且定期发送告警邮件
查看>>
MWeb 1.4 新功能介绍二:静态博客功能增强
查看>>
linux文本模式和文本替换功能
查看>>
Windows SFTP 的安装
查看>>
摄像机与绕任意轴旋转
查看>>
rsync 服务器配置过程
查看>>
预处理、const与sizeof相关面试题
查看>>
爬虫豆瓣top250项目-开发文档
查看>>
Elasticsearch增删改查
查看>>
oracle归档日志增长过快处理方法
查看>>
有趣的数学书籍
查看>>
teamviewer 卸载干净
查看>>
多线程设计模式
查看>>
解读自定义UICollectionViewLayout--感动了我自己
查看>>
SqlServer作业指定目标服务器
查看>>
UnrealEngine4.5 BluePrint初始化中遇到编译警告的解决办法
查看>>
User implements HttpSessionBindingListener
查看>>
抽象工厂方法
查看>>
ubuntu apt-get 安装 lnmp
查看>>