码迷,mamicode.com
首页 > 数据库 > 详细

对原生态jdbc(单独使用jdbc开发)问题总结

时间:2016-05-13 04:05:04      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:

在写这个程序之前需要创建一个java工程,这是前提

接着加入mysql的驱动包,我用的数据库是5.1版本的,所以驱动包也是5.1版本的,jdk是1.7

创建数据库位mybatis,表名位user


package com.mybatis.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

/**
 * JDBC操作数据库
 * @author Administrator
 *
 */
public class JDBCTest {

	public static void main(String[] args) {
		
		//数据库链接
		Connection connection=null;
		//预编译的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", "123456");
			//定义sql语句,?表示占位符
			String sql="select * from user where id=?";
			//获取预处理的statement
			preparedStatement=connection.prepareStatement(sql);
			//设置sql参数,第一个参数是sql中的参数的序号(从1开始),第人体各参数是设置的值
			preparedStatement.setInt(1, 1);
			//向数据库发出sql请求,查询结果集
			resultSet=preparedStatement.executeQuery();
			//遍历查询结果集
			while (resultSet.next()) {
				System.out.println(resultSet.getString(2));
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			try {
				//关闭连接
				resultSet.close();
				preparedStatement.close();
				connection.close();
			} catch (Exception e2) {
				e2.printStackTrace();
			}
			
		}
		
		
	}
}


根据以上编码步骤,我们得到以下结论:

1、  加载数据库驱动

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

3、  创建jdbcstatement对象

4、  设置sql语句

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

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

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

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


以上是一个简单的用jdbc操作数据库的例子,那么来简单的说下这样操作数据库会有一些怎样的问题。

1、数据库连接,使用时就创建,不适用就释放,对数据库进行频繁的开启和关闭操作,这是种资源的浪费,影响数据库性能。

设想:使用数据库连接池管理数据库连接。

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

设想:将sql语句配置在xml配置文件中,即使sql变化,也不需要对java代码进行修改重新编译。

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

设想:将sql语句及占位符和参数全部配置在xml中。

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

设想:将结果集映射成java对象。

对原生态jdbc(单独使用jdbc开发)问题总结

标签:

原文地址:http://blog.csdn.net/hsl_1990_08_15/article/details/51337477

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!