java使用原生MySQL实现数据的增删改查

一、工具类及配置文件准备工作

1.1 引入jar包

使用原生MySQL,只需要用到MySQL连接的jar包,maven引用方式如下:

       <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.48</version>
        </dependency>

1.2 jdbc.properties文件配置

在resources文件夹根目录,新增jdbc.properties配置文件,内容如下:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mydb
user=root
password=123456

1.3 JDBCUtils工具类

在java文件夹中新增 util --> JDBCUtils.java 类,该类中获取jdbc.properties中的值。

JDBCUtils工具类主要作用是简化获取MySQL配置文件、关闭资源。

    private static String url;
    private static String user;
    private static String password;

    static {
        Properties properties = new Properties();
        try {
            properties.load(Mytest.class.getClassLoader().getResourceAsStream("jdbc.properties"));
            url = properties.getProperty("url");
            user = properties.getProperty("user");
            password = properties.getProperty("password");
            Class.forName(properties.getProperty("driver"));
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    // 1.获取jdbc.properties配置文件中的数据库连接
    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(url, user, password);
    }
    // 5.定义关闭资源的方法
    public static void close(Connection conn, Statement stmt, ResultSet rs) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {}
        }
        if (stmt != null) {
            try {
                stmt.close();
            } catch (SQLException e) {}
        }
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {}
        }
    }
    public static void close(Connection conn, Statement stmt) {
        close(conn, stmt, null);
    }

二、原生MySQL实现增删改查

2.1 语法说明

1、通过Connection获取数据库连接对象;

2、定义sql语句(一般可以在Navicat中直接执行);

3、通过获取执行sql的对象 --PreparedStatement;

4、执行sql语句:增删改使用conn的executeUpdate方法(成功返回值为int=1),查询使用executeQuery方法(返回值为ResultSet,建议使用下文的查询方法操作);

5、释放资源(执行SQL时定义的stmt、获取连接时的conn)。

2.2 新增数据 -- insertUser()

在java文件夹中新增MyService.java类,将获取数据库连接抽取出来,方法如下:

    private Connection conn;
    {
        try {
            conn = JDBCUtils.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

在MyService.java类中新增 insertUser方法,具体如下

String sql = "INSERT INTO user values (4, ‘腾讯科技‘, ‘xinfeng37812‘, ‘2009-11-16‘, ‘广东省深圳市‘)";
PreparedStatement  stmt = conn.prepareStatement(sql);
int count = stmt.executeUpdate(sql);
JDBCUtils.close(conn, stmt);
return count;

2.2 修改数据 -- updateById()

String sql = "update user set password = 567875 where id = 2";
PreparedStatement stmt = conn.prepareStatement(sql);
int count = stmt.executeUpdate(sql);
JDBCUtils.close(conn, stmt);
return count;

2.3 删除数据 -- deleteUser()

String sql = "delete from user where id = 5";
PreparedStatement  stmt = conn.prepareStatement(sql);
int count = stmt.executeUpdate(sql);
JDBCUtils.close(conn, stmt);
return count;

2.4 查询数据 -- findAll()

前提:新建 entity --> User.java 实体类,并获取getter&setter、toSting方法;

        String sql = "select * from user";
        PreparedStatement stmt = conn.prepareStatement(sql);
        ResultSet count = stmt.executeQuery(sql);
        User user = null;
        List<User> arr = new ArrayList<>();
        while(count.next()){
            Long id = count.getLong("id");
            String username = count.getString("username");
            String password = count.getString("password");
            Date birthday = count.getDate("birthday");
            String address = count.getString("address");
            user = new User();
            user.setId(id);
            user.setUsername(username);
            user.setPassword(password);
            user.setBirthday(birthday);
            user.setAddress(address);
            arr.add(user);
        }
        JDBCUtils.close(conn, stmt, count);
        return arr;

三、原生MySQL语句的缺点

1、每一次查询都要新增通道,关闭通道,效率太低。实际项目中都会用数据库连接池进行优化;

2、实际项目中使用最多的就是查询,但是将查询的ResultSet结果,进行封装的代码过于臃肿。

原文地址:https://www.cnblogs.com/fanbao/p/12331827.html

时间: 2024-09-30 18:17:31

java使用原生MySQL实现数据的增删改查的相关文章

Node.js + MySQL 实现数据的增删改查

通过完成一个 todo 应用展示 Node.js + MySQL 增删改查的功能.这里后台使用 Koa 及其相应的一些中间件作为 server 提供服务. 初始化项目 $ mkdir node-crud && cd $_ $ yarn init -y && npx gitignore node 上面的命令创建了一个空文件夹 node-crud,进入之后初始化一个 package.json 以及创建 .gitignore 文件. 安装 Koa 并创建 app.js 以启动一个

Mybatis学习总结(二)—使用接口实现数据的增删改查

在这一篇中,让我们使用接口来实现一个用户数据的增删改查. 完成后的项目结构如下图所示: 在这里,person代表了一个用户的实体类.在该类中,描述了相关的信息,包括id.name.age.id_num信息.而personMapper则是该实体类的一个配置文件.需要注意的是,在上一篇博文中,namespace属性的值是其本身,而在这一篇中,使用的是接口.那么两者有什么区别呢?使用接口,那么相关的操作方法不用自己去实现,只需要调用该接口的相关的方法就能够实现相应的功能. 那么,在这里就有一个问题,接

基于Java的XML文件模拟数据库进行增删改查操作

我们知道XML文件既可以用来进行数据的传输,也可以配合DTD约束文件用来作为配置文件,当然其本质就是一个加了标签以及众多空格保持格式的字符串,那么就可以用Java进行操作. 本例是使用MyEclipse带入DOM4j解析时要用的jar包的基础上做的:当然DOM4j相对于DOM SAX 等解析方式的方便程度是不言而喻的. 下面是本次用例XML文件 <?xml version="1.0" encoding="UTF-8"?> <persons> 

Mysql的基本操作(增删改查)

以下是MySQL最基本的增删改查语句,创建索引,删除索引,查看索引.数据库里表的关联.很多IT工作者都必须要会的命令,也是IT行业面试最常考的知识点,由于是入门级基础命令 增 > create database school; 创建数据库school > use school; 进入数据库 > create table class (id int,name char(10),score decimal(5,2)); 创建一个表class(id整数 name字符串10个 成绩 数据长度5

数据的增删改查(三层)

进行数据操作必然少了对数据的增删改查,用代码生成器生成的代码不是那么满意!方便在今后使用,这里就主要写“数据访问层(Dal)” 注:这里由于是用于用于测试时,临时建的数据库用于测试使用,在实际使用过程中些许改点参数就可以使用了 /// <summary> /// 是否存在该记录 /// </summary> public bool Exists(long Id) { string sql = "select count(*) Name from t_temp where

yii中数据的"增删改查"相关工作!(此文比较乱,需细看)

使用findByPk()根据数据表主键查询的是对象,不需要使用foreach()循环出来 但是使用findall()和find()查询的是对象类型的数组需要使用foreach()循环出来 ======================================= public function getMinLimit () { $sql = "..."; $result = yii::app()->db->createCommand($sql); $query = $r

ios CoreData框架的使用,对上下文数据的增删改查,表与表之间的关联,1对多,1对1,谓词查询,多表连接

这里是只是代码,因为博客插入图片效果不是很好,我自己写的总结比较详细,有兴趣的朋友可以在评论里留下邮箱,我收到后会发给大家. 转载注明出处,重视原创者的劳动成果,谢谢! - (void)viewDidLoad { [super viewDidLoad]; [self _creatTable];//插入数据 //    [self _query];// 查询数据 // KVC很霸道,即使readonly通过kvc也可赋值,kvo精华 //    Book * book = [[Book alloc

java servlet开发购物车功能,实现增删改查结算等功能。

原文:java servlet开发购物车功能,实现增删改查结算等功能. 源代码下载地址:http://www.zuidaima.com/share/1550463494130688.htm 购物车功能:增删改查,结算等功能,主要技术为:servlet对数据库的访问... 源代码截图:

Mysql学习笔记(三)对表数据的增删改查。

写在前面:(一些牢骚,可以直接跳到分割线后) 太过敏感的人不会快乐,不幸的是我正是这种性格的人. 从培训机构毕业后,迫于经济方面的压力,和当时的班里的一个同学住在了一起,我们在一个公司上班.谁知道这都是不开心生活的源头,从每天早晨开始心情就很糟糕.他是个脾气很慢的人,我是个急脾气,特别是在早上上班的时候.由此种种吧,实在是不胜枚举.算了,还是不说了,太痛苦了,我不太喜欢说别人的坏话.我是学心理学的,已经用各种方法去安慰自己,但是都不太奏效. 回想以往和朋友的交往中,我虽然不算十分合群的人,但绝对