博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从JDBC程序看为什么需要Mybatis
阅读量:5897 次
发布时间:2019-06-19

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

package com.xuebusi.jdbc;import java.sql.*;/** *  从JDBC程序看为什么需要Mybatis * *  1.加载驱动程序和数据库连接所需要的url、用户名和密码都是写死在程序中的, *      后期更换数据库的话还要修改程序。所以最好是定义到外部的配置文件中; * *  2.SQL语句也是写死在程序中: *      (1)后期如果需要修改SQL语句的话,必须修改程序,重新编译; *      (2)无法达到代码重用的作用; *      (3)解决方案:最好将SQL语句也能够写死在配置文件; * *  3.给SQL语句设置参数有问题: *      (1)参数写死了,不便于维护,最好能够从外部传递进来; *      (2)需要判断参数的类型,很繁琐,最好能够自动进行判断; *      (3)需要手动判断参数的位置(角标),繁琐,最好能够自动判断; * *  4.遍历结果集也存在问题: *      (1)需要判断结果字段的类型,麻烦; *      (2)需要手动指定字段名称,麻烦; *      最好能够直接将结果集映射为JavaBean; * *  5.释放资源也有问题,频繁的创建连接和关闭连接,造成资源浪费,影响系统性能,最好能够使用连接池; * *  而Mybatis正好可以解决上述JDBC程序所存在的一系列问题。 * Created by SYJ on 2017/2/14. */public class JdbcTest {    public static void main(String[] args) {        Connection connection = null;        PreparedStatement preparedStatement = null;        ResultSet resultSet = null;        try {            //加载驱动            Class.forName("com.mysql.jdbc.Driver");            //创建数据库连接            String url = "jdbc:mysql://localhost:3306/xuebusi";            String user = "root";            String password = "root";            connection = DriverManager.getConnection(url, user, password);            //创建PreparedStatement            String sql = "SELECT * FROM tb_user WHERE id > ? limit ?";            preparedStatement = connection.prepareStatement(sql);            //给上面的SQL语句设置第一个参数            //注意参数角标是从1开始的            preparedStatement.setLong(1, 1L);            //给上面的SQL语句设置第二个参数,分页参数            preparedStatement.setInt(2, 5);            //执行查询            resultSet = preparedStatement.executeQuery();            //遍历结果集            while (resultSet.next()){                String username = resultSet.getString("username");                String pass = resultSet.getString("password");                String phone = resultSet.getString("phone");                String email = resultSet.getString("email");                Date created = resultSet.getDate("created");                Date updated = resultSet.getDate("updated");                System.out.println("username:" + username + ",password:" + pass + ",phone:"                        + phone + ",email:" + email + ",created:" + created + ",updated:" + updated);            }        } catch (Exception e) {            e.printStackTrace();        } finally {            //释放资源            if (null != resultSet) {                try {                    resultSet.close();                } catch (SQLException e) {                    e.printStackTrace();                }            }            if (null != preparedStatement){                try {                    preparedStatement.close();                } catch (SQLException e) {                    e.printStackTrace();                }            }            if (null != connection){                try {                    connection.close();                } catch (SQLException e) {                    e.printStackTrace();                }            }        }    }}

 

/** 数据库表结构 */CREATE TABLE `tb_user` (  `id` bigint(20) NOT NULL AUTO_INCREMENT,  `username` varchar(50) NOT NULL COMMENT '用户名',  `password` varchar(32) NOT NULL COMMENT '密码,加密存储',  `phone` varchar(20) DEFAULT NULL COMMENT '注册手机号',  `email` varchar(50) DEFAULT NULL COMMENT '注册邮箱',  `created` datetime NOT NULL,  `updated` datetime NOT NULL,  PRIMARY KEY (`id`),  UNIQUE KEY `username` (`username`) USING BTREE,  UNIQUE KEY `phone` (`phone`) USING BTREE,  UNIQUE KEY `email` (`email`) USING BTREE) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COMMENT='用户表';

 

转载地址:http://ctxsx.baihongyu.com/

你可能感兴趣的文章
呼叫中心现场管理人员注意事项
查看>>
nagios监控远程windows服务器
查看>>
lagp,lacp详解
查看>>
J2ee项目性能调优-垃圾收集器(gc)
查看>>
LVS之DR模式原理与实践
查看>>
自动化运维之SaltStack(概述及简单配置实例)
查看>>
导出excel
查看>>
struts2+extjs
查看>>
MariaDB初识
查看>>
php安装swoole扩展支持openssl和wss遇到的坑
查看>>
Apache2.4.33安装无systemctl/service status/state显示
查看>>
花花世界花家姐 舒淇:花花世界花我不会倒追
查看>>
全栈数据之数据挖掘的33个知识点整理
查看>>
Docker的系统资源限制及验证
查看>>
C++基础教程
查看>>
在大公司呆5年,你就废了
查看>>
mac mamp mysql no start servel
查看>>
单例,线程安全
查看>>
Docker简易版:使用更少击键运行Redis,MongoDB
查看>>
javascript身份证简单校验
查看>>