您的位置:首页 > 其它

【Mybatis进阶】-- 原生态jdbc程序开发的短板

2016-04-06 10:09 337 查看
     
我们都知道,MyBatis是一个优秀的持久层框架。那么为什么会有mybatis?选择使用mybatis有哪些好处?它对持

久层做了哪些优化?在解答这些问题之前,我们先看一下使用原生jdbc开发项目存在哪些问题!

public static void main(String[] args) {
// 数据库连接
Connection connection = null;
// 预编译的statement,使用预编译的statement提高数据库性能
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", "mysql");
//定义sql语句?表示占位符
String sql="select * from user where username=?";
//获取预处理statement
preparedStatement=connection.prepareStatement(sql);
//设置参数,第一个参数为sql语句中参数序号,第二个为设置的参数值
preparedStatement.setString(1, "王五");
//向数据库发出sql执行查询,查询出结果集
resultset=preparedStatement.executeQuery();
//遍历查询结果集
while (resultset.next()) {
System.out.println(resultset.getString("id")+""+resultset.getString("username"));

}

} catch (Exception e) {
e.printStackTrace();
}finally{
//释放资源
if(resultset!=null){
try {
resultset.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
if(preparedStatement!=null){
try {
preparedStatement.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
if(connection!=null){
try {
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
}


jdbc编程步骤

1、加载数据库驱动

2、创建并获取数据库链接

3、创建jdbc statement对象

4、设置sql语句

5、设置sql语句的参数(使用preparedStatement)

6、通过statement执行sql并获取结果

7、对sql执行结果进行解析处理

8、释放资源(resultSet、preparedstatement、connection)

jdbc原生态开发缺点

1、数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响

  数据库性能。

2、将sql语句硬编码到java代码中,如果sql 语句修改,需要重新编译java代码,不利于系统维护。

3、向preparedStatement中设置参数,对占位符号位置和设置参数值,硬编码在java代码中,不利于系统维护。

4、从resutSet中遍历结果集数据时,存在硬编码,将获取表的字段进行硬编码,不利于系统维护。

 


  不难总结出,原生态jdbc开发项目,可扩展性和可重复利用性差,系统性能低,不利于项目维护。而想做一个

好的系统,这是都是基础保证。mybatis对这些问题进行了优化。下篇博文将对mybatis框架进行详细介绍。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: