ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Spring入门案例之JDBC(五)

2020-07-02 17:39:39  阅读:169  来源: 互联网

标签:JDBC 入门 Spring id boolean User import public user


Spring连接数据库的实现增删改查

数据库连接JDBC

JDBC(Java Data Base Connectivity,Java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序,并且可跨平台运行,并且不受数据库供应商的限制。

JDBC连接数据库的流程及其原理如下:

(1)在开发环境中加载指定数据库的驱动程序。不如你使用的是MySQL,那么需要去下载MySQL支持JDBC的驱动程序(mysql-connector-java-5.1.18-bin.jar)。

(2)在Java程序中加载驱动程序。在Java程序中,可以通过“Class.forName("指定数据库的驱动程序")”的方式来加载添加到开发环境中的驱动程序,例如加载MySQL的数据驱动程序的代码为Class.forName("com.mysql.jdbc.Driver")。

(3)创建数据连接对象。通过DriverManager类创建数据库连接对象Connection。DriverManager类作用于Java程序和JDBC驱动程序之间,用于检查所加载的驱动程序是否可以建立连接,然后通过它的getConnection方法根据数据库的URL、用户名和密码,创建一个JDBC Connection对象,例如:Connection connection = DriverManager.getConnection("连接数据库的URL","用户名","密码")。其中URL = 协议名 + IP地址(域名)+端口+数据库名称;用户名和密码是指登录数据库所使用的用户名和密码。

(4)创建Statement对象。Statement类的主要是用于执行静态SQL语句并返回它所生成结果的对象。通过Connection对象的createStatement()方法可以创建一个Statement对象。例如:Statement statement = connection.createStatement()。

(5)调用Statement对象的相关方法执行相对应的SQL语句。通过execuUpdate方法来对数据更新,包括插入和删除等操作;通过调用Statement对象的executeQuery方法进行数据的查询,而查询的结果会得到ResultSet对象,ResultSet表示执行查询数据库返回的数据的集合,ResultSet对象具有可以指向当前数据行的指针。通过该对象的next方法,使得指针指向下一行,然后将数据以列号或者字段名取出,如果next方法返回null,则表示下一行中没有数据存在。

(6)关闭数据库连接。使用完数据库或者不需要访问数据库时,通过Connection的close方法及时关闭数据库连接。

Spring连接数据库程序实现

 Spring中的JDBC连接与直接使用JDBC去连接还是有所差别的,Spring对JDBC做了大量封装,消除了冗余代码,使得开发量大大减少。下面举个例子简单认识Spring中的JDBC操作。

需要的jar包:

 

 

目录结构:

 

 

 

 

一:创建表结构:

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `age` int(100) NULL DEFAULT NULL,
  `birthday` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `tall` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, '张三', 18, '2000-11-12', '180');
INSERT INTO `user` VALUES (2, '李四', 19, '1998-05-23', '178');
INSERT INTO `user` VALUES (3, '王五', 20, '1997-09-03', '189');
INSERT INTO `user` VALUES (4, 'Tom', 21, '1996-01-21', '176');
INSERT INTO `user` VALUES (5, 'Jike', 17, '2001-01-23', '173');

SET FOREIGN_KEY_CHECKS = 1;

  Dao层:

package demo10.dao;

import demo10.pojo.User;



/**
 * @Author
 * @Date 2020/7/2 15:24
 * @Version 1.0
 */
public interface UserDao {
    /*
    * 添加
    * */
    boolean addUser(User user);
    /*
    * 删除
    * */
    boolean deleteUser(Integer id);
    /*
    * 修改
    * */
    boolean updateUser(User user);
    /*
    * 查询
    * */
    User findUserById(Integer id);
}

 Impl:

package demo10.dao.impl;

import demo10.dao.UserDao;
import demo10.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;


/**
 * @Author
 * @Date 2020/7/2 15:35
 * @Version 1.0
 */
public class UserDaoImpl implements UserDao {
    @Autowired
    private JdbcTemplate jdbcTemplate;

    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    @Override
    public boolean addUser(User user) {
        boolean flag = false;
        String addSql = "insert into user values(?,?,?,?,?)";
        int row = jdbcTemplate.update(addSql,user.getId(),user.getName(),user.getAge(),user.getBirthday(),user.getTall());
        if(row > 0){
            flag = true;
        }
        return flag;
    }

    @Override
    public boolean deleteUser(Integer id) {
        boolean flag = false;
        String deleteSql = "delete from user where id = ?";
        int row = jdbcTemplate.update(deleteSql,id);
        if(row > 0){
            flag = true;
        }
        return flag;
    }

    @Override
    public boolean updateUser(User user) {
        boolean flag = false;
        String updateSql = "update user set name = ?,age = ?,birthday = ? ,tall =? where id = ?";
        int row = jdbcTemplate.update(updateSql,user.getName(),user.getAge(),user.getBirthday(),user.getTall(),user.getId());
        if(row > 0){
            flag = true;
        }
        return flag;
    }

    @Override
    public User findUserById(Integer id) {
        User user = new User();
       // String findAllSql="select * from user where id=?";
        return user;
    }
}

  Pojo:

package demo10.pojo;

/**
 * @Author
 * @Date 2020/7/2 15:21
 * @Version 1.0
 */
public class User {
    private Integer id;
    private String name;
    private Integer age;
    private String birthday;
    private String tall;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getBirthday() {
        return birthday;
    }

    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }

    public String getTall() {
        return tall;
    }

    public void setTall(String tall) {
        this.tall = tall;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", birthday='" + birthday + '\'' +
                ", tall='" + tall + '\'' +
                '}';
    }
}

  Service:

package demo10.service;

import demo10.pojo.User;

import java.util.List;

/**
 * @Author
 * @Date 2020/7/2 15:41
 * @Version 1.0
 */
public interface UserService {
    /*
     * 添加
     * */
    boolean addUser(User user);
    /*
     * 删除
     * */
    boolean deleteUser(Integer id);
    /*
     * 修改
     * */
    boolean updateUser(User user);
    /*
     * 查询
     * */
    User findUserById(Integer id);
}

  ServiceImpl:

package demo10.service.impl;

import demo10.dao.UserDao;
import demo10.pojo.User;
import demo10.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;


/**
 * @Author
 * @Date 2020/7/2 15:42
 * @Version 1.0
 */
public class UserServiceImpl implements UserService {
    /*
    * Spring自动注入
    * */
    @Autowired
    private UserDao userDao;

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

    @Override
    public boolean addUser(User user) {
        return userDao.addUser(user);
    }

    @Override
    public boolean deleteUser(Integer id) {
        return userDao.deleteUser(id);
    }

    @Override
    public boolean updateUser(User user) {
        return userDao.updateUser(user);
    }

    @Override
    public User findUserById(Integer id) {
        return userDao.findUserById(id);
    }
}

  junit:

package demo10.junit;

import demo10.pojo.User;
import demo10.service.UserService;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * @Author
 * @Date 2020/7/2 15:56
 * @Version 1.0
 */
public class UserTest {

    private ApplicationContext ac;
    User user = new User();

    /**
     * 加载配置文件
     */
    @Before
    public void into(){
        ac = new ClassPathXmlApplicationContext("jdbc.xml");
    }
    @Test
    public void userAddTest(){
        user.setId(7);
        user.setName("BEYOND");
        user.setAge(48);
        user.setBirthday("1975-06-25");
        user.setTall("176");
        UserService userService = (UserService)ac.getBean("userService");
        boolean boo = userService.addUser(user);
        System.out.println(boo);
    }
    @Test
    public void userDeletsTest(){
        UserService userService=(UserService)ac.getBean("userService");
        boolean boo = userService.deleteUser(176);
        System.out.println(boo);
    }
    @Test
    public void userUpdate(){
        User user = new User();
        user.setId(7);
        user.setName("dupo");
        user.setAge(23);
        user.setBirthday("1997-06-13");
        user.setTall("178");
        UserService userService = (UserService)ac.getBean("userService");
        boolean boo = userService.updateUser(user);
        System.out.println(boo);
    }
    @Test
    public void userFindAll(){

    }
}

  

 

 

 

—————————————————————————————————————— 完毕--————————————————————————————————————————————————

标签:JDBC,入门,Spring,id,boolean,User,import,public,user
来源: https://www.cnblogs.com/dp06134816-login/p/13226011.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有