mybatis入门(一):jdbc的缺点
mybatis的基础内容
1.mybatis的框架原理
2.mybatis开发dao两种方法:
a.原始dao开发方法(程序需要编写dao接口和dao实现类)
b.mybatis的mapper接口(相当于dao接口)代理开发方法
3.mybatis配置文件:SqlMapConfig.xml
4.mybatis核心:
mybatis输入映射
mybatis输出映射
5.mybatis的动态sql
mybatis的高级知识
1.高级结果集映射(一对一,一对多,多对多)
2.mybatis延迟加载
3.mybatis查询缓存(一级缓存,二级缓存)
4.mybatis和spring进行整合
5.mybatis的逆向工程
mybatis基础入门:
1.jdbc程序
数据库驱动:
mysql-connect-java-5.1.7-bin.jar:(mysql)
ojdbcl4-10.2.0.1.0.jar
jdbc程序代码问题:
1.数据库连接,使用时创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,
影响了数据库的性能。
解决方案:使用数据库的连接池管理数据库的连接。
2.将sql语句硬编码到java代码中,如果sql语句的修改,需要重新编译java代码,不利于系统的维护
解决方案:将sql语句配置到xml配置文件中,即使sql变化,不需要对java进行重新编译
3.向preparedStatement中设置参数,对占位符位置和参数值,硬编码在代码中,不利于系统的维护。
解决方案:将sql语句和参数值配置到xml中
4.从resultSet中遍历结果集数据时,存在硬编码,将获取表的字段进行硬编码,不利于系统的维护。
解决方案:将查询的结果自动的映射的java的对象
public class JdbcTest {
public static void main(String[] args) {
//数据库连接
Connection connection = null;
//预编译的Statement,使用预编译的statement的可以提高性能,使用statement操作数据库
PreparedStatement preparedStatement = null;
//结果集
ResultSet resultSet = null;
try {
//加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
//通过数据驱动管理类获取数据库链接
connection =DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatisdata?characterEncoding=utf-8","root","root");
//定义sql语句,其中?标识占位符
String sql = "select * from user where id = ?";
//获取预处理statement
preparedStatement = connection.prepareStatement(sql);
//设置参数,第一个参数为sql中参数的序号,第二个参数为设置的参数值
preparedStatement.setInt(1,1);
//向数据库发出sql查询,查询出数据集
resultSet = preparedStatement.executeQuery();
//遍历查询结果
while(resultSet.next()){
System.out.println(resultSet.getString("id")+"->"+resultSet.getString("username")+"->"+resultSet.getString("sex"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
//释放资源
if(resultSet != null){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(preparedStatement!=null){
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(connection != null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
mybatis入门(一):jdbc的缺点的更多相关文章
- JAVAEE——Mybatis第一天:入门、jdbc存在的问题、架构介绍、入门程序、Dao的开发方法、接口的动态代理方式、SqlMapConfig.xml文件说明
1. 学习计划 第一天: 1.Mybatis的介绍 2.Mybatis的入门 a) 使用jdbc操作数据库存在的问题 b) Mybatis的架构 c) Mybatis的入门程序 3.Dao的开发方法 ...
- mybatis系列笔记(1)---mybatis入门
mybatis入门 MyBatis是什么? MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了goog ...
- 第十章 MyBatis入门
第十章 MyBatis入门10.1 MyBatis入门 优点:简单且功能强大.能够完全控制SQL语句.容易维护和修改 缺点:移植性不好 使用步骤: 1.下载 ...
- Mybatis入门看这一篇就够了
什么是MyBatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为 ...
- Mybatis入门程序
作为一个java的学习者,我相信JDBC是大家最早接触也是入门级别的数据库连接方式,所以我们先来回忆一下JDBC作为一种用于执行SQL语句的Java API是如何工作的.下面的一段代码就是最基本的JD ...
- mybatis框架(1)---mybatis入门
mybatis入门 MyBatis是什么? MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了goog ...
- Mybatis入门和简单Demo
一.Mybatis的诞生 回顾下传统的数据库开发,JDBC和Hibernate是使用最普遍的技术,但这两种ORM框架都存在一定的局限性: JDBC:最原生的技术,简单易学,执行速度快,效率高,适合大数 ...
- mybatis入门案例分析
mybatis入门案例分析 一.设计模式分析 public class MybatisTest { public static void main(String[] args) throws Exce ...
- Mybatis入门 Mybatis存在的意义 解决的问题 基本操作
Mybatis入门 Mybatis的作用 解决的问题 基本操作 为什么要学MyBatis 我们链接操作数据库需要做的步骤 package Test; import java.sql.*; public ...
随机推荐
- February 12 2017 Week 7 Sunday
There is no place like home. 任何地方都不能与家相提并论. After tens of years roving outside the hometown, I sudde ...
- 优秀的看图工具推荐 —— XnViewMP
XnViewMP是一款非常棒的完全免费图片浏览器,支持100多种图片格式,XnViewMP还具有浏览器.幻灯片.屏幕捕捉.缩略图制作.批处理转换.十六进制浏览.拖放.通讯录.扫描输入等功能.XnVie ...
- [原]SDL开发教程
SDL开发库:http://www.libsdl.org/ SDL中文开发教程:http://tjumyk.github.io/sdl-tutorial-cn/index.html SDL英文版开发教 ...
- 警告: Request method 'POST' not supported的原因之一
警告: Request method 'POST' not supported是经常遇到的,这里记录一下我经常遇到的一种情况,以免忘记. 我使用拦截器拦截所有请求,然后列出不拦截的请求.有时候由于自己 ...
- DispatcherServlet类的分析
突然发现拿博客园来做笔记挺好的,不会弄丢.下面我把DispatcherServlet类的部分源代码复制到这里,然后阅读,把重要的地方翻译一下,该做笔记的地方做下笔记,蹩脚英语. =========== ...
- CF1063A Oh Those Palindromes
嘟嘟嘟 只要将每一种字母放一块输出就行了. 证明1:比如 1 2 3 4 5 6,那么这个序列对答案的贡献分别是1和5,2和4 ,3和6……如果重新排列成x x x x o o,会发现对 ...
- CF#538(div2) B. Yet Another Array Partitioning Task 【YY】
任意门:http://codeforces.com/contest/1114/problem/B B. Yet Another Array Partitioning Task time limit p ...
- Linux(十一) 文件目录权限 chmod umask chown
一 文件目录权限定义 首先我们先认识一下文件目录的权限定义,请看下面ls -l的结果我们发现一个文件或者目录的前面有10位的信息,第一位表示文件类型,大概有一下几种类型:d 表示目录 - 普通文件 b ...
- 10.spring:常用的数据库代码.....(不长使用了解即可)
测试代码: ApplicationContext ctx = new ClassPathXmlApplicationContext("JDBC.xml"); DataSource ...
- JDBC(6)事务处理&批量处理
事务处理就是当执行多个SQL指令,因某个指令有误,则取消执行所有的命令 它的作用是保证各项的完整性和一致性 JDBC的数据操作时 commit():提交事务 rollback():回退事务 绝位于ja ...