MyBatis(一):JDBC使用存在的问题
JDBC使用步骤:
a:加载 JDBC 驱动程序
b:创建数据库的连接对象Connection
c:根据链接获取Statement
d:拼接SQL语句及设置参数
e:执行SQL并获取结果集
f:关闭使用的JDBC对象
具体代码如下
public static void main(String[] args) {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
// 加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
// 通过驱动获取数据库链接
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8","root","111222");
String sql = "select * from user where name = ?";
preparedStatement = connection.prepareStatement(sql);
// 设置参数(序号从1开始)
preparedStatement.setString(1,"rangers");
// 执行SQL 获取结果集
resultSet = preparedStatement.executeQuery();
User user = new User();
while (resultSet.next()){
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
String address = resultSet.getString("address");
// 封装实体
user.setId(id);
user.setName(name);
user.setAddress(address);
}
System.out.println(user.toString());
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// 关闭连接对象
preparedStatement.close();
connection.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
JDBC存在问题及解决办法
- 存在问题:
- 数据库连接URL、用户名、密码与Java代码混淆在一起
- 数据库连接创建、释放频繁造成系统资源浪费,影响服务器性能
- SQL语句与Java代码混淆在一起
- 使用PreparedStatement设置参数存在硬编码
- 对结果集解析存在硬编码
- 解决思路
- 使用数据库连接池解决连接频繁创建、释放问题
- 将SQL语句抽取到XML配置文件中,将SQL与Java代码剥离
- 使用Java 中的反射、内型等技术,对参数设置、结果集封装进行自动映射
- 存在问题:
MyBatis(一):JDBC使用存在的问题的更多相关文章
- Mybatis解决jdbc编程的问题
1.1.1 Mybatis解决jdbc编程的问题 1. 数据库链接创建.释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题. 解决:在SqlMapConfig.xml中配置 ...
- Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案
转自http://www.cnblogs.com/fnz0/p/5713102.html 不知道自己什么时候才有这种钻研精神- -. 1 背景 系统中需要批量生成单据数据到数据库表,所以采用 ...
- JavaWeb_(Mybatis框架)JDBC操作数据库和Mybatis框架操作数据库区别_一
系列博文: JavaWeb_(Mybatis框架)JDBC操作数据库和Mybatis框架操作数据库区别_一 传送门 JavaWeb_(Mybatis框架)使用Mybatis对表进行增.删.改.查操作_ ...
- MyBatis、JDBC相关知识
引言 在mybatis的基础知识中我们已经可以对mybatis的工作方式窥斑见豹.但是,为什么还要要学习mybatis的工作原理?因为,随着mybatis框架的不断发展,如今已经越来越趋于自动化,从代 ...
- 为什么使用Mybatis对JDBC进行包装探究
一.原生JDBC在实际生产中使用存在的影响性能的问题 首先分析使用JDBC的代码: Connection connection = null; PreparedStatement preparedSt ...
- MyBatis通过JDBC生成的执行语句问题
我们编程的过程中大部分使用了很出色的ORM框架,例如:MyBatis,Hibernate,SpringJDBC,但是这些都离不开数据驱动JDBC的支持.虽然使用起来很方便,但是碰到一些问题确实很棘手, ...
- MyBatis知多少(17)MyBatis和JDBC
有了MyBatis,就不再需要编写JDBC代码了.像JDBCT这样的API的确非常强大,但使用起来总不免觉得太过繁琐.代码清单给出了一个使用JDBC的示例. 从这个例子中很容易看出,JDBC API会 ...
- MySQL 存储过程实例 与 ibatis/mybatis/hibernate/jdbc 如何调用存储过程
虽然MySQL的存储过程,一般情况下,是不会使用到的,但是在一些特殊场景中,还是有需求的.最近遇到一个sql server向mysql迁移的项目,有一些sql server的存储过程需要向mysql迁 ...
- 关于 MyBatis MyBatis-Spring Jdbc 批量插入的各种比较分析
因为目前SME项目中编写了一套蜘蛛爬虫程序,所以导致插入数据库的数据量剧增.就项目中使用到的3种DB插入方式进行了一个Demo分析: 具体代码如下: 1: MyBatis 开启Batch方式,最普通的 ...
- Mybatis和JDBC区别
今天面试中问了这个问题,当时答的不好,现在整理一下. JDBC是Java提供的一个操作数据库的API: MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了 ...
随机推荐
- Dapr微服务应用开发系列0:概述
题记:Dapr是什么,Dapr包含什么,为什么要用Dapr. Dapr是什么 Dapr(Distributed Application Runtime),是微软Azure内部创新孵化团队的一个开源项目 ...
- 【ybt金牌导航1-2-5】【luogu P3287】优美玉米 / 方伯伯的玉米田
优美玉米 / 方伯伯的玉米田 题目链接:ybt金牌导航1-2-5 / luogu P3287 题目大意 有一个数组,你可以每次给一个区间里面的值加一,要你使得最后剩下的最长单调不下降子序列最长. 思路 ...
- Python——Django框架——django-simple-captcha(验证码)
一.引用 包 pip install django-simple-captcha 二.将captcha加入setting的 INSTALLED_APPS 三.运行python manager.py m ...
- Windows10电脑优化和使用
本文将结合自身经验和短视频软件中的优化技巧,推荐一些Win10系统的优化和使用小技巧. 电脑优化 新电脑调出我的电脑等桌面图标: 右键桌面,选择个性化,左侧选择主题,在相关的设置中找到桌面图标设置,将 ...
- Java 并发机制底层实现 —— volatile 原理、synchronize 锁优化机制
本书部分摘自<Java 并发编程的艺术> 概述 相信大家都很熟悉如何使用 Java 编写处理并发的代码,也知道 Java 代码在编译后变成 Class 字节码,字节码被类加载器加载到 JV ...
- window下安装docker教程
Wi10系统下安装Docker 准备工作: 查看是否带有Hyper-V 1.第一步 2.第二步 第三步 第四步 第五步确认是否有Hyper-V(可以理解为windows自带虚拟机功能) ...
- Deep Learning Specialization 笔记
1. numpy中的几种矩阵相乘: # x1: axn, x2:nxb np.dot(x1, x2): axn * nxb np.outer(x1, x2): nx1*1xn # 实质为: np.ra ...
- CSS & new class name
CSS & new class name { test: /\.((s*)css|sass)$/, // test: /\.(css|scss|sass)$/, use: ExtractTex ...
- how to convert a number to a number array in javascript without convert number to a string
how to convert a number to a number array in javascript without convert number to a string 如何在不将数字转换 ...
- Java Hipster
Java Hipster JHipster JHipster is a development platform to quickly generate, develop, & deploy ...